Tengo que crear un video. Parte de esto implica "mostrar" una entrevista de radio. En lugar de tener una pantalla negra y escuchar el audio, me gustaría tener una forma de onda variable en la pantalla y un título.
¿Hay alguna herramienta gratuita o barata que pueda usar que haga esto?
Si le pido a un amigo que lo haga, ¿hay algo en Adobe Creative Suite que pueda hacer el trabajo?
Puede usar ffmpeg
para crear video a partir de audio usando varios filtros.
Convierta el audio de entrada en una salida de video y muestre el histograma de volumen.
ffmpeg
ffmpeg -i input.flac -filter_complex \
"[0:a]ahistogram,format=yuv420p[v]" \
-map "[v]" -map 0:a output.mp4
ffplay
ffplay -f lavfi "amovie=input.flac, asplit [a][out1]; [a] ahistogram [out0]"
Consulte la ahistogram
documentación para obtener más opciones y ejemplos.
Convierta el audio de entrada en una salida de video, mostrando la fase de audio.
ffmpeg
ffmpeg -i input.wav -filter_complex \
"[0:a]aphasemeter=s=1280x720:mpc=cyan,format=yuv420p[v]" \
-map "[v]" -map 0:a output.mp4
ffplay
ffplay -f lavfi "amovie=input.wav, asplit [a][out1]; [a] aphasemeter=s=1280x720:mpc=cyan [out0]"
Consulte la aphasemeter
documentación para obtener más opciones y ejemplos.
Convierta el audio de entrada en una salida de video, que representa el alcance del vector de audio.
ffmpeg
ffmpeg -i input.mp3 -filter_complex \
"[0:a]avectorscope=s=1280x720,format=yuv420p[v]" \
-map "[v]" -map 0:a output.mp4
ffplay
ffplay -f lavfi "amovie=input.mp3, asplit [a][out1]; \
[a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]"
Consulte la avectorscope
documentación para obtener más opciones y ejemplos.
Convierta el audio de entrada en una salida de video que represente el espectro de frecuencia con escala de tonos musicales.
ffmpeg
ffmpeg -i input.mp4 -filter_complex \
"[0:a]showcqt,format=yuv420p[v]" \
-map "[v]" -map 0:a output.mp4
ffplay
ffplay -f lavfi "amovie=input.mp4, asplit [a][out1]; [a] showcqt [out0]"
Consulte la showcqt
documentación para obtener más opciones y ejemplos.
Convierta el audio de entrada en una salida de video que represente el espectro de potencia de audio. La amplitud de audio está en el eje Y mientras que la frecuencia está en el eje X.
ffmpeg
ffmpeg -i input.mp4 -filter_complex \
"[0:a]showfreqs=mode=line:fscale=log,format=yuv420p[v]" \
-map "[v]" -map 0:a output.mp4
ffplay
ffplay -f lavfi "amovie=input.mp4, asplit [a][out1]; [a] showfreqs=mode=line:fscale=log [out0]"
Consulte la showfreqs
documentación para obtener más opciones y ejemplos.
Convierta el audio de entrada en una salida de video, que representa el espectro de frecuencia de audio.
ffmpeg
ffmpeg -i input.oga -filter_complex \
"[0:a]showspectrum=s=1280x720,format=yuv420p[v]" \
-map "[v]" -map 0:a output.mp4
ffplay
ffplay -f lavfi "amovie=input.oga, asplit [a][out1]; \
[a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]"
Consulte la showspectrum
documentación para obtener más opciones y ejemplos.
Convierta el audio de entrada en una salida de video, que representa las ondas de muestra.
ffmpeg
ffmpeg -i input.m4a -filter_complex \
"[0:a]showwaves=s=1280x720:mode=line:rate=25,format=yuv420p[v]" \
-map "[v]" -map 0:a output.mp4
ffplay
ffplay -f lavfi "amovie=input.m4a, asplit [a][out1]; [a] showwaves [out0]"
Consulte la showwaves
documentación para obtener más opciones y ejemplos.
Convierta el volumen de audio de entrada en una salida de video.
ffmpeg
ffmpeg -i input.mka -filter_complex \
"[0:a]showvolume=f=1:b=4:w=720:h=68,format=yuv420p[vid]" \
-map "[vid]" -map 0:a output.mp4
ffplay
ffplay -f lavfi "amovie=input.mka, asplit [a][out1]; [a] showvolume=f=255:b=4:w=720:h=68 [out0]"
Consulte la showvolume
documentación para obtener más opciones y ejemplos.
Consulte FFmpeg Wiki: Guía de codificación H.264 para obtener información más detallada sobre la calidad de salida.
format=yuv420p
se asegura de que libx264 use un formato de píxeles que sea compatible con reproductores malos como QuickTime.
En lugar de volver a codificar de forma predeterminada, puede usar -c:a copy
para transmitir copiar el audio si el formato de su contenedor de salida es compatible con el formato de audio. Piense en la copia de flujo (re-muxing) como copiar y pegar, sin volver a codificar.
ffmpeg
Siempre debe usar una versión reciente ya que el desarrollo es muy activo. Los enlaces a compilaciones ffmpeg
para Windows, OS X y Linux están disponibles en la página de descargas de FFmpeg . O puede seguir una guíaffmpeg
paso a paso para compilar .
sudo apt install ffmpeg
. Incluye ffplay
y ffprobe
que es todo lo que necesitaba por ahora. Tus técnicas de visualización parecen prometedoras cuando tocas una canción. Cuando la canción está en pausa, se mostrará la carátula del álbum en su lugar.Entendí bastante bien tu pregunta. Si está tratando de crear un patrón de forma de onda que se mueva de acuerdo con el tono y el bajo de su audio, puede probar este enlace.
http://www.videocopilot.net/tutorial/audio_to_animation/
Adobe After Effects te permite hacerlo fácilmente. Puede jugar junto con los efectos de partículas para obtener una forma de onda de aspecto más sólido.
¡Buena suerte!
Muchos reproductores de música tienen visualizadores. Reproduzca el audio en uno de ellos y use un capturador de pantalla para grabar el video.
También puede intentar usar gstreamer como se describe en http://www.vidarholen.net/contents/blog/?p=23
Otra opción es Sonic Candle, http://sourceforge.net/projects/soniccandle/
Después de leer la gran respuesta de LordNeckbeard, creé un pequeño script para hacer una visualización con ffmpeg y el filtro showspectrum. También agregué una opción de carga para mí mismo para codificar directamente a mi servidor remoto que tiene una mejor conexión que en casa para cargar videos grandes. ¡También usa el gran script youtube-upload !
EDITAR: ¡la carga directa ralentiza significativamente el proceso de codificación!
#!/bin/bash
# ffmpeg spectrum maker
action=$1
infile=$2
outfile=$3
upload_server="sftp://cloud"
upload_location="/home/master/videos/"
remote_command="youtube-upload --title=\"Remote_upload\" --privacy=\"private\" $upload_location$outfile"
#simple spectrum
filter1="showspectrum=s=1920x1080:slide=scroll:mode=combined:color=intensity:scale=cbrt:saturation=1:win_func=hann[tmp]"
#vertical mirror
filter2="[tmp]crop=iw:ih/2:0:ih/2-3,split[up][tmp];[tmp]vflip[down];[up][down]vstack[tmp]"
#horizontal mirror
filter3="[tmp]crop=iw/2:ih:iw/2:,split[left][tmp];[tmp]hflip[right];[left][right]hstack[tmp]"
#fisheye effect VERY SLOW!!! if used make change the size of the spectrum to (1920*11/10)x(1080*11/10) and use the crop filter below
filter4="[tmp]frei0r=filter_name=defish0r:filter_params=1.5|n[tmp]"
#make sure the resolution has the desired size
filter5="[tmp]crop=1920:1080"
#pass the stream to the output for ffplay
testpass="[tmp]copy[out0]"
vcodec="-codec:v libx264 -pix_fmt yuv420p -tune grain -crf 21 -preset medium -bf 2 -flags +cgop -r 25"
acodec="-codec:a libfdk_aac -b:a 128k -movflags +faststart"
#acodec="-codec:a copy"
extraflags="-movflags +faststart "
if [ "$action" = "test" ]
then
ffplay -f lavfi "amovie=$infile,asplit[a][out1];[a]$filter1;$filter2;$filter3;$testpass"
fi
if [ "$action" = "make" ]
then
ffmpeg -i "$infile" -filter_complex "[0:a]$filter1;$filter2;$filter3" -map [tmp] -map 0:a $vcodec $acodec $extraflags "$outfile"
fi
if [ "$action" = "upload" ]
then
ffmpeg -i "$infile" -filter_complex "[0:a]$filter1;$filter2;$filter3" -map [tmp] -map 0:a $vcodec $acodec $extraflags "$upload_server$upload_location$outfile"
ssh cloud $remote_command
fi
exit
Si tiene acceso a After Effects, hay un complemento llamado Trapcode Keys que puede hacer esto de manera muy efectiva. Los resultados se ven realmente bien: lo he usado en muchos proyectos exactamente para lo que ha descrito, pero no es barato: $ 150 por sí solo, o $ 899 por el Trapcode Suite completo.
Puedes hacerlo gratis usando VEED.IO, este video explica cómo hacerlo (Descargo de responsabilidad, soy el desarrollador de VEED.IO)
boblet
bob guerrero
lewis quaife
ffmpeg
para convertir directamente - ffmpeg convertir audio en video Usando filtros puede obtener un video estéticamente agradable.