FFMPEG Splitting MP4 con la misma calidad

51

Tengo un gran archivo MP4. Estoy intentando dividirlo en archivos más pequeños.

ffmpeg -i largefile.mp4 -sameq -ss 00:00:00 -t 00:50:00 smallfile.mp4

Pensé que usar -sameq mantendría la misma configuración de calidad. Sin embargo, no debo entender lo que eso hace.

Estoy buscando mantener la misma calidad (audio / video) y compresión con los archivos divididos. Sin embargo, esta configuración hace que los archivos divididos sean mucho más grandes.

¿Qué marca (s) debo configurar para mantener la misma calidad y atributos en los archivos divididos mientras mantengo la misma relación calidad / tamaño?

Por ejemplo, si mi archivo original tiene aproximadamente 12 GB y 1920x1080 con una velocidad de bits de 10617 kbps y una velocidad de fotogramas de 23 cuadros / seg y audio de 6 canales con 317 kbps, me gustaría que los archivos divididos sean iguales solo un tercio de este tamaño ( si lo divido en tres pedazos)

Chris Weber
fuente
3
Para su información, cualquiera que lea esto: No lo use -sameq, no significa "misma calidad" .
Zaz

Respuestas:

81

Si solo desea dividir el video sin volver a crear eco, use el copycódec para audio y video. Prueba esto:

ffmpeg -ss 00:00:00 -t 00:50:00 -i largefile.mp4 -acodec copy \
-vcodec copy smallfile.mp4

Tenga en cuenta que esto solo crea la primera división. El siguiente se puede hacer con un comando que comienza con ffmpeg -ss 00:50:00.

Esto se puede hacer con un solo comando:

ffmpeg -i largefile.mp4 -t 00:50:00 -c copy smallfile1.mp4 -ss 00:50:00 -c copy smallfile2.mp4

Esto creará smallfile1.mp4, que terminará a los 50 minutos en el video de largefile.mp4 y smallfile2.mp4, comenzando a los 50 minutos y terminando al final de largefile.mp4.

fideli
fuente
2
Usando este método en un archivo mp4, obtengo los primeros dos segundos de cada archivo creado como un cuadro congelado (el audio se reproduce normalmente). ¿Alguna razón conocida para esto?
Ron Harlev
Suena como un error. Actualiza a la última versión de ffmpeg.
Robert
@Robert He actualizado muchas veces desde 2010. Gracias.
fideli
@RonHarlev Este es el comportamiento esperado actualmente. Sin volver a codificar, solo puede cortar videos en "fotogramas clave". Los cuadros entre cuadros clave no llevan suficiente información por sí solos para construir una imagen completa. Ver: trac.ffmpeg.org/wiki/Seeking#Seekingwhiledoingacodeccopy
Philip Thrasher
3

Una forma alternativa de hacerlo es:

// create a 2-min clip
ffmpeg -i input.mp4 -ss 00:10:00 -to 00:12:00 -c copy output.mp4

/**
* -i  input file
* -ss start time in seconds or in hh:mm:ss
* -to end time in seconds or in hh:mm:ss
* -c codec to use 
*/

La calidad del archivo permanece igual porque usamos -c copypara copiar las transmisiones de audio + video originales a la salida.

Referencia, lista de comandos FFmpeg de uso común: DigitalFortress

Niket Pathak
fuente