2011-09-27 19 views
8

Quiero combinar dos videos mp4 para formar un solo video mp4 usando ffmpeg.Combinando dos videos de ffmpeg

lo he intentado hasta ahora es

ffmpeg -i input1.mp4 -i input2.mp4 output.mp4 

Pero, cada vez que tengo el video con el códec de vídeo de la primera entrada y no a la inversa. ¿Cómo puedo combinarlos? Cualquier idea sobre esto será muy apreciada.

+1

¿Qué quiere decir con "códec de video de primera entrada y no la otra"? ¿Son diferentes formatos de video? ¿Obtienes los contenidos de ambos videos en la salida? – TheJuice

+0

Proporcione más detalles. ¿Cómo esperas combinarlos? ¿Secuencialmente? ¿O quieres tener dos transmisiones de video paralelas en un archivo? MP4 es solo un contenedor. ¿Los códecs reales son los mismos? Dé la salida de 'ffprobe' para sus dos archivos. – misha

+0

ambos videos tienen el mismo formato y recibo solo el primer video en el archivo ouptput que recibo. – Astha

Respuesta

5

Lea FFMPEG FAQ para obtener información sobre cómo unir archivos.

Desafortunadamente, como está utilizando archivos MP4, la concatenación simple no funcionará para usted porque el formato MP4 contiene una sección de "encabezado" (aunque no necesariamente tiene que estar al principio del archivo) que describe y contiene desplazamientos en los datos multimedia. Tendrá que transcodificar ambos archivos a un formato que pueda concatenarse y luego generar un archivo MP4 a partir de ese formato (lo que generará una sección de encabezado apropiada).

5

No puede concatenar archivos .mp4 pero puede concatenar archivos .mpg. Intenta convertir ambos videos a .mpg primero usando ffmpeg. Luego, ejecute un comando simple de linux cat en ambos archivos .mpg para crear un archivo combinado .mpg. Después de eso, convierta el archivo .mpg concatenado a .mp4 usando ffmpeg. Este es un enfoque indirecto, pero funciona. Puede usar "pipes con nombre" para reducir la cantidad de comandos pero el resultado es el mismo.

3

Puede hacerlo con ffmpeg, pero también hay una pequeña herramienta, llamada MP4Box (parte de GPAC), que puede concatenar múltiples archivos MP4.

En su caso, la sintaxis es

MP4Box -cat input1.mp4 -cat input2.mp4 output.mp4 
+2

Puede hacer esto con 'ffmpeg' usando el [demult. Concat] (https://trac.ffmpeg.org/wiki/Concatenate#demuxer) (use si sus entradas tienen el mismo formato, etc. y desea [transmisión] copia] (http://ffmpeg.org/ffmpeg.html#Stream-copy)) o [concat filter] (http://ffmpeg.org/ffmpeg-filters.html#concat) (use si desea volver codificar, y/o si sus entradas no tienen los mismos formatos, base de tiempo, etc.). – LordNeckbeard

+0

Hola, muchas gracias. Acabo de probar varios archivos mp4 de mi GoPro usando mp4box. Estoy sorprendido de lo bien que funcionó. Se combinaron impecablemente. – daniel

5

Como respuestas anteriores muestran, es necesario convertir primero a un formato intermedio. Si el MP4 contiene h264 flujo de bits, puede utilizar:

ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts input1.ts 
ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts input2.ts 
ffmpeg -i "concat:input1.ts|input2.ts" -c copy output.mp4 

Una respuesta más detallada se puede encontrar here.