¿Cómo puedo fusionar dos archivos mp4 sin perder calidad?

51

Tengo dos archivos mp4 de alta calidad, que son de dos partes del mismo programa.

Quiero fusionarlos en un solo archivo, y generalmente uso VirtualDub para fusionar mis archivos ... Pero parece que no admite mp4.

¿Qué alternativas hay disponibles (especialmente las que no requieren una nueva codificación)?

Paolo Bergantino
fuente
Ver también stackoverflow.com/questions/7333232/…
rogerdpack

Respuestas:

41

Usualmente uso VirtualDub para fusionar mis archivos, pero no parece admitir mp4. Entonces, ¿qué alternativas hay?

Avidemux . Es como VirtualDub, solo que con más formatos compatibles y códecs y filtros incorporados. Siempre lo uso con preferencia; se une a los archivos AVC + AAC.MP4 (sin recodificación) bien para mí.

Para unirse a ellos en AviDemux:

  1. Archivo -> Abrir -> Seleccionar archivo
  2. Archivo -> Agregar -> Seleccionar archivo
  3. Establecer todo para copiar
  4. Archivo -> Guardar -> Nombre de archivo
  5. Espere..

Según los foros de AViDemux, este proceso de unión no tiene pérdidas ( http://www.avidemux.org/smf/index.php?topic=9467.0 )

bobince
fuente
Sí, parece que es excelente para mantener el audio sincronizado con el video, mientras que las respuestas de otras personas a esta pregunta son cuestionables en ese momento.
djangofan
1
Intenté usar Avidemux para unir dos archivos, pero el audio no estuvo sincronizado.
GiddyUpHorsey
Puede tener problemas de sincronización cuando la cantidad de material de audio disponible no coincide con la duración de los fotogramas de video, o si hay algún daño en la transmisión. Es posible que pueda solucionar esto con las funciones de 'corrección de transmisión' de VideoRedo o ProjectX.
bobince
1
Sin embargo, este método ha funcionado: superuser.com/a/255566/1780 Hooray!
Christopher Galpin
44
Si usa AviDemux para unir dos archivos Mp4, no olvide seleccionar la opción Mp4 Demux en la esquina inferior izquierda. ¡De lo contrario, puede intentar convertirlo en un avi!
28

Puedes hacer esto con ffmpeg:

mkfifo temp0 temp1
ffmpeg -i input0.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -y temp0 2> /dev/null & \
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -y temp1 2> /dev/null & \
ffmpeg -f mpegts -i "concat:temp0|temp1" -c copy -absf aac_adtstoasc output.mp4

Esto no vuelve a codificar nada, los coloca en un nuevo contenedor de flujo de transporte, lo que los hace más fáciles de concatenar, y luego los concatena nuevamente en un MP4. Si output.mp4 ya existe, el comando fallará. La versión anterior usa canalizaciones con nombre, si está en un sistema que no admite aquellos que tendría que usar archivos intermedios (como Windows):

ffmpeg -i input0.mp4 -c copy -bsf:v h264_mp4toannexb temp0.ts
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb temp1.ts
ffmpeg -i "concat:temp0.ts|temp1.ts" -c copy -bsf:a aac_adtstoasc output.mp4
maldad
fuente
¿Alguien puede explicar cómo se hace esto en avconvlugar de ffmpeg? Pude completar los primeros dos pasos, pero el último no reconoce la opción-absf
becko
@becko Ver mi edición. Ahora debe usar un especificador de flujo (consulte aquí libav.org/avconv.html#Advanced-options ).
slhck
2
1 sólo para referencia en el futuro, se puede sustituir avconvpor ffmpeglos comandos anteriores y funcionará.
Becko
15

Demuxer Concat

El concat demuxer se agregó a ffmpeg 1.1. Si su versión de ffmpeg es antigua, obtenga el binario estático más nuevo desde aquí: http://www.ffmpeg.org/download.html

Instrucciones

Cree un archivo mylist.txtcon todos los archivos que desea concatenar en el siguiente formulario (se ignoran las líneas que comienzan con un guión):

# this is a comment
file '/path/to/file1'
file '/path/to/file2'
file '/path/to/file3'

Tenga en cuenta que estos pueden ser caminos relativos o absolutos. Luego puede codificar sus archivos con:

ffmpeg -f concat -i mylist.txt -c copy output

Es posible generar este archivo de lista con un bash for loop, o usando printf. Cualquiera de los siguientes generaría un archivo de lista que contiene cada * .wav en el directorio de trabajo:

for f in ./*.wav; do echo "file '$f'" >> mylist.txt; done
printf "file '%s'\n" ./*.wav > mylist.txt

Fuente: wiki de ffmpeg

erik
fuente
8

YAMB junto con MP4BOX es una buena opción.
Descargue ambos y descomprímalos (no se necesita instalación y juntos son alrededor de 5 MB), en YAMB elija Configuración y configure la ruta de la carpeta de MP4box.
Para unir archivos mp4, elija Edición> Haga clic para unirse compatible ...

Eran
fuente
1
Parece la mejor solución, mantener el formato de contenedor .mp4 que parecería la opción más atractiva para el autor ^^
Oskar Duveborn
1
Después de la dificultad, utilicé esta configuración: MP4Box_path = E: \ Software \ Video Editing \ Yamb-2.1.0.0_beta2 \ MP4Box \ MP4Box.exe en un intento de fusionar 4 archivos MP4 de 500 MB generados a partir de AVIDemux. No funcionó. El programa permaneció allí durante 45 minutos sin hacer nada hasta que finalmente me di por vencido.
djangofan
1
Tuve problemas para usar este método debido a problemas de sincronización de audio. fue una pesadilla ... no intentarlo de nuevo.
djangofan
6

SUPER © (codificador y reproductor de reproductor universal simplificado) proporciona el siguiente proceso de salida adicional:

Se puede procesar cualquier archivo multimedia de entrada compatible:

      o Join Format-Identical Files.
      o Mux Video & Audio Streams.
      o DeMux Extract Streams. 

Por supuesto, MP4 es un formato compatible.

SUPER © es un programa gratuito.


fuente
55
Su interfaz de usuario es la más horrible que he visto en mi vida. No estoy bromeando, es simplemente horrible. Lo enfatizo una vez más: no puedo nombrar una interfaz peor, lo digo en serio, nunca he visto nada por debajo del "umbral SUPER".
Camilo Martin el
5

Intente usar el contenedor de video Matroska.

En primer lugar, necesitas mkvtoolnix . Descárguelo e instálelo, luego debe iniciar la GUI de mkvmerge (a menos que desee herramientas de línea de comandos, lo cual está bien para mí, aunque es posible que desee ver la sección de enlace de archivos de la documentación de mkvmerge ).

Agregue su primer archivo haciendo clic en "Agregar". Luego, haga clic en "agregar" y abra su segundo archivo. Establezca el archivo de salida, presione "Iniciar muxing" en la parte inferior, ¡y listo!

Si el contenedor no es adecuado para sus necesidades, puede volver a codificarlo o tratar de convertirlo a otro formato ... ¡Aunque MKV es un contenedor encantador!

Gran descubrimiento o desarrollo, progreso, ruptura, penetracion
fuente
tiene que ser muxed? no puedo unirme sin muxing?
djangofan
Bueno, si estás usando un contenedor MKV, técnicamente lo estás remux. Pruébalo, no hay penalización en tiempo real ...
Avance el
1

Si puede reproducirlos en su sistema / tener un códec instalado, Windows Movie Maker puede ser la forma más rápida (y gratuita) de unir los dos archivos. Luego puede usar Virtualdub para convertir a un formato diferente.

William Hilsum
fuente
Audacity parece ser para archivos de audio. Este es un archivo de video.
Paolo Bergantino
Lo siento mucho, leí mal, acabo de ver la parte MP y mi cerebro a través de la audacia.
William Hilsum
Editando respuesta ...
William Hilsum
AFAIK, Movie Maker no es compatible con mp4 y la conversión a un formato diferente significa pérdida de calidad que la pregunta especifica como no deseada.
Eran
Probé MovieMaker en Windows7 y el audio se desincronizó al unir archivos MP4 en un WMV. Esta opción no funcionará.
djangofan
1

Otra solución es Open Video Joiner . También hace efectos de transición.

ingrese la descripción de la imagen aquí

harrymc
fuente
Sin embargo, es un shareware. y por 30 $ no es barato sólo para archivos de vídeo de combinación
Eran
Se decía que era freeware. Lo siento si me engañé.
harrymc