
Resumen:Tengo una película antigua que descargué de YouTube hace algunos años y la guardé como flv. Quiero extraer un clip de 13 minutos. Para hacer eso, usé ffmpeg para convertirlo a mp4 para poder cargarlo en DaVinci, donde extraje el clip. Luego usé Handbrake para comprimirlo. Pero cuando hice eso, HandBrake redujo significativamente el tamaño del fotograma y el clip comprimido queda algo borroso en comparación con el original.
¿Por qué HandBrake fuerza esa reducción en el tamaño del cuadro y cómo puedo lograr que se produzca en el tamaño de cuadro correcto?
Detalles:
El archivo flv tiene 268 MB, duración 107 minutos, tamaño de fotograma 318x240, velocidad de fotogramas 25:
Elcomando ffmpegSolía convertir a mp4:
ffmpeg -i input.flv -c copy output.mp4
Eso tomó aproximadamente un segundo. El resultado es 264 MB:
Lo cargué en DaVinci, extraje el clip y luego lo rendericé como mp4, H.265, 318x240, 25 fps:
El resultado de eso es 51,4 MB, 13:19 mm:ss. MediaInfo informa que es HEVC, lo que entiendo significa que está en H.265, como solicité:
La relación tamaño-tiempo es mucho mayor que la de la película completa:
- Película: 264 MB / 107 minutos = 2,5 MB/min.
- Vídeo: 51,4 MB / 13,33 min. = 3,9 MB/min.
Cuando cargo el clip en HandBrake, me dice que la fuente es 318x240, 25 fps. Aunque está en H.265, HandBrake me dice que está en H.264. Entonces HandBrake también contradice su información fuente al decir en "Pistas" que es 30 fps y que el tamaño es 234x174.
========================
En la pestaña "Video" de Handbrake, el codificador aparece como H.264 y la velocidad de fotogramas es 30. La RF es 22:
========================
Cambié eso a 265 y 25:
========================
La pestaña "Dimensiones" vuelve a decir que el tamaño es 318x240, pero luego dice que:
El tamaño escalado y el tamaño de almacenamiento final son 234x174. Intenté hacer clic en varias cosas y no puedo cambiar el tamaño de salida.
========================
Cuando ejecuto eso, la salida es de 22 MB, lo cual es una buena reducción en el tamaño del archivo:
- Clip comprimido: 22 MB / 13,33 min. = 1,7 MB/min.
Pero el tamaño del marco es 234x174:
El vídeo está algo borroso en comparación con el original, lo que parece que bien podría deberse al tamaño reducido del fotograma.
Clip renderizado por DaVinci.
Esto podría dar una pista del problema. La imagen ocupa menos que la ventana completa del reproductor. ¿DaVinci redujo la escala del vídeo?
Clip comprimido por HandBrake:
¿Por qué HandBrake fuerza esa reducción en el tamaño del cuadro y cómo puedo lograr que se produzca en el tamaño de cuadro correcto?
Respuesta1
Editar del autor de la pregunta: acepté esta respuesta porque me dio lo que necesitaba. Pero vea más detalles en la respuesta adicional que también di.
Puede resultar útil recordar que Handbrake es en gran medida una máscara para FFMPEG con algunos ajustes preestablecidos relativamente fáciles de usar. Su proceso actualmente va FFMPEG > DaVinci > FFMPEG, sin ningún motivo real que podamos ver para los pasos adicionales. Así que omita todos los pasos intermedios y simplemente use FFMPEG para recortar el video. Aquí hay otra pregunta que puede cubrir los aspectos básicos de su necesidad:https://stackoverflow.com/questions/21420296/how-to-extract-time-accurate-video-segments-with-ffmpeg
Especifique la hora de inicio -ss 00:00:00
y finalización del clip con -to 00:00:00
. Como este ejemplo de la pregunta que he vinculado justo arriba:
ffmpeg -y -i [INPUT.file] -ss 00:42:42 -to 00:84:84 -codec copy [OUTPUT.file]
Al hacer esto, eliminas toda posibilidad de problemas causados por los múltiples pasos que estás utilizando actualmente.
Respuesta2
Acepto la respuesta de "music2myear" porque me dio lo que necesitaba. Pero por alguna razón, supuse que no me importaba el tamaño del archivo de salida. Pero eso sí me importa, que es la razón por la que estaba ejecutando HandBrake.
Entonces cambié el codec
parámetro en esa respuesta. Aquí hay un resumen de mis resultados:
Clip de DaVinci en H.265: 51,4 MB
Clip de DaVinci y luego HandBrake: 22,0 MB (borroso)
Clip de FFmpeg con
-codec copy
: 29,5 MBClip de FFmpeg con
-codec:v hevc -codec:a copy
: 15,2 MB
Ambos resultados de FFmpeg parecen tener buena calidad. El que tenía códec copy
tardó aproximadamente un segundo, el que tenía hevc
aproximadamente un minuto.
El resultado de mFFmpeg con códec hevc
dio una muy buena reducción en el tamaño del archivo:
- Película: 264 MB / 107 minutos = 2,5 MB/min.
- Clip de DaVinci: 51,4 MB / 13,33 min. = 3,9 MB/min.
- Clip de FFMpeg con códec
hevc
: 15,2 MB / 13,33 min = 1,1 MB/min.
Entonces, no tengo una respuesta a por qué HandBrake (o la combinación de DaVinci y HandBrake) estaba reduciendo el tamaño del cuadro. Pero sí tengo una respuesta sobre cómo obtener resultados de buena calidad con el tamaño de fotograma correcto (y un tamaño de archivo eficiente), que esutilizar FFmpeg directamente.
Respuesta3
Esta es una solución alternativa, más que una respuesta exacta: realice todo el proceso en un solo paso utilizando una GUI que brinde control completo de cómo se guarda la salida.
Dos editores de vídeo gratuitos y de código abierto.corte de tiroytiro abierto(ambas disponibles en Linux y Mac, así como en versiones de Windows, y ambas aplicaciones de Windows se ejecutan envino, también en esta máquina Ubuntu), por ejemplo, puede abrir archivos de video FLV, editarlos y guardar la salida editada en varios formatos y con resolución y calidad ajustables. Hay muchoseditores de vídeo alternativos, también.
La captura de pantalla de arriba es delExportar vídeo OpenShotdiálogo, ycorte de tiroofrece un control aún más granular de la producción. Se seleccionan los segmentos a editar, se aplican filtros comoAfilar, si lo desea, y exporta con gama de colores (por ejemplo, Broadcast, MPEG o JPEG), resolución, velocidad de cuadros, compresión, etc. bajo control del usuario, todo con una sola herramienta. Ninguno de los programas es intimidante de usar, ya que se preestablecen valores predeterminados razonables.