¿Cómo convierto audio en video (es decir, muestro las formas de onda en un video)?

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?

Audacity debería mostrarte la onda de sonido; podrías grabar - visualmente - la ola.
Vale la pena mencionar que la herramienta de "visualizador" que probablemente esté buscando es un osciloscopio , que puede informar su búsqueda.
Puede usar ffmpegpara convertir directamente - ffmpeg convertir audio en video Usando filtros puede obtener un video estéticamente agradable.

Respuestas (7)

Puede usar ffmpegpara crear video a partir de audio usando varios filtros.


ahistograma

Convierta el audio de entrada en una salida de video y muestre el histograma de volumen.

ahistograma

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 ahistogramdocumentación para obtener más opciones y ejemplos.


afasímetro

Convierta el audio de entrada en una salida de video, mostrando la fase de audio.

afasímetro

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 aphasemeterdocumentación para obtener más opciones y ejemplos.


avectorscopio

un filtro de vectorescopio

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 avectorscopedocumentación para obtener más opciones y ejemplos.


showcqt

mostrar filtro

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 showcqtdocumentación para obtener más opciones y ejemplos.


Mostrar frecuencias

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.

Mostrar frecuencias

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 showfreqsdocumentación para obtener más opciones y ejemplos.


espectáculoespectro

imagen de espectro de espectáculos

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 showspectrumdocumentación para obtener más opciones y ejemplos.


ondas de espectáculo

filtro de ondas de espectáculo

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 showwavesdocumentación para obtener más opciones y ejemplos.


Mostrar volumen

filtro de volumen de presentación

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 showvolumedocumentación para obtener más opciones y ejemplos.


notas

  • Consulte FFmpeg Wiki: Guía de codificación H.264 para obtener información más detallada sobre la calidad de salida.

  • format=yuv420pse 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 copypara 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.


Conseguirffmpeg

Siempre debe usar una versión reciente ya que el desarrollo es muy activo. Los enlaces a compilaciones ffmpegpara 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 .

El OP probablemente querrá ver las otras respuestas que se vinculan a los tutoriales de After Effects, pero estos excelentes ejemplos de ffmpeg son realmente útiles aquí. ¡Gracias!
@LordNeckbeard OP aquí. Ha pasado un tiempo, pero he vuelto, y esta es una gran respuesta.
Acabo de crear una pregunta superuser.com/questions/1184922/… ¿Cómo puedo establecer una imagen de fondo?
Para la instalación de Ubuntu simplemente use sudo apt install ffmpeg. Incluye ffplayy ffprobeque 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.

Adobe After Effects tiene un visualizador, consulte

También hay complementos como aquí para Photoshop.

Buena suerte con tu proyecto.

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!

Texto

#!/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)

Debe renunciar a su propiedad de este programa, ya que de lo contrario es una promoción ilegal.
Gracias @FlorianClaaßen, ahora lo he agregado.