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)


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.


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.