2011-05-01 07:45:34 +0000 2011-05-01 07:45:34 +0000
178
178

Cómo fusionar un archivo de audio y video en ffmpeg

Quiero fusionar un archivo de audio (formato .wav o .au) con un archivo de video (formato .mp4).

Por favor, sugiérame cómo lograrlo. Quiero fusionar estos archivos con un nuevo archivo de vídeo .mp4. Un comando ffmpeg sería muy bienvenido.

Respuestas (5)

286
286
286
2011-05-01 09:53:57 +0000

Fusión de video y audio, con recodificación de audio

Vea este ejemplo, tomado de esta entrada de blog pero actualizado para una sintaxis más reciente. Debería ser algo así como:

ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental output.mp4

Aquí, asumimos que el archivo de video no contiene ningún flujo de audio todavía, y que quieres tener el mismo formato de salida (aquí, MP4) que el formato de entrada.

El comando anterior transcodifica el audio, ya que los MP4 no pueden llevar flujos de audio PCM. Puedes usar cualquier otro códec de audio que desees si lo deseas. Vea la AAC Encoding Guide para más información.

Si su flujo de audio o video es más largo, puede agregar la opción -shortest para que ffmpeg deje de codificar una vez que un archivo termine.

Copiar el audio sin recodificar

Si tu contenedor de salida puede manejar (casi) cualquier códec - como MKV - entonces puedes simplemente copiar ambos flujos de audio y video:

ffmpeg -i video.mp4 -i audio.wav -c copy output.mkv

Reemplazar el flujo de audio

Si su vídeo de entrada ya contiene audio, y quiere reemplazarlo, necesita decirle a ffmpeg qué flujo de audio debe tomar:

ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental \
-map 0:v:0 -map 1:a:0 output.mp4

El map opción hace que ffmpeg sólo use el primer flujo de vídeo de la primera entrada y el primer flujo de audio de la segunda entrada para el archivo de salida.

16
16
16
2015-01-10 01:11:26 +0000

Como no se me permite escribir comentarios a la primera respuesta con mi reputación, una adición aquí, porque tuve este problema al codificar webms. Si tu flujo de audio es por ejemplo más largo que el flujo de video , tienes que cortarlo o de lo contrario tendrás el último cuadro de video como imagen fija y audio corriendo.

Para cortar cualquiera de los dos flujos, puedes usar -ss [hh:mm:ss] -t [ss] antes de cada uno de los -i “archivo.ext”. -ss […] definirá el punto de inicio para cortar -t […] definirá la longitud del segmento en segundos

Ejemplo:

ffmpeg.exe -ss 00:00:10 -t 5 -i "video.mp4" -ss 0:00:01 -t 5 -i "music.m4a" -map 0:v:0 -map 1:a:0 -y out.mp4
8
8
8
2015-04-16 07:18:25 +0000

-abre el comando promt (windows+r ->cmd->enter)

-entonces ve al interior de la carpeta donde tienes el archivo de audio y video

aplica este cmd

ffmpeg -i "videoFile.mp4" -i "audioFile.mp3" -shortest outPutFile.mp4

Enter….obtendrás un nuevo archivo llamado outPutFime.mp4 (un archivo fusionado de audio y video)

5
5
5
2015-03-05 15:29:32 +0000

Esto funcionó para mí:

ffmpeg.exe -i AudioT.m4a -i VideoT.mp4 -acodec copy -vcodec copy muxed.mp4
1
1
1
2013-03-12 22:47:37 +0000

Intenta usar el mencoder (Sí, está basado en ffmpeg, pero nunca se sabe). Uso el argumento -audiofile. Sin embargo, generalmente uso ffmpeg, así que toma este consejo con una pizca de sal.

Y, si usas Windows, Mediacoder (que ya no es de código abierto, tristemente) funciona… es básicamente un frontend para un montón de codificadores de gnu y unos pocos no libres.