FFMPEG/x264: ¿puedo usar el paso 1 de una sesión de codificación como paso 2 para otra?

FFMPEG/x264: ¿puedo usar el paso 1 de una sesión de codificación como paso 2 para otra?

Pregunta:

¿Es legal utilizar una codificación "pase 1" de un vídeo fuente con una resolución/tasa de bits como entrada para una codificación "pase 2" de la misma fuente en unadiferenteresolución/tasa de bits? Lo probé yvereeeeemspara funcionar, pero no estoy del todo seguro de que así sea en el caso general: el perfil de transmisión (elección de fotograma I/P/B, etc.) se ve diferente al uso de los mismos parámetros para ambas pasadas, pero también parece "suficientemente bueno".

Estoy en el punto en el que necesito una respuesta autorizada sobre este caso.

Por quéen tarnation 1¿Podrías hacer eso?

Porque la codificación de dos pasos corrige un error enloquecedor en FFMPEG (x264, en realidad) que probablemente no se solucionará pronto: dependiendo de la velocidad de su máquina, el primer ~1 segundo aproximadamente de video a menudo tendrá una apariencia muy inapropiada. tasa de bits. Esto se reproduce muy fácilmente con un flujo fuente de alta tasa de bits transcodificado a una tasa de bits baja en una máquina muy rápida (como unaEC2 c4.8xgrande). Una MacBook Pro i7 de cuatro núcleos inactivaNO ESsuficiente para reproducir este error.

Será o seráEXTREMADAMENTEalto:

  • CBR de un solo paso sinVBVespecificado

    (ignore el hecho de que CBR sin VBVno es CBR en absoluto)

o demasiado bajo:

  • CBR de un solo paso conVBV
  • VBR de un solo paso:Escala QconVBVy tasa máxima

Tanto las mediciones de calidad VIFp como SSIM muestran que las tasas de bits más bajas/altas realmente corresponden a una calidad innecesariamente reducida/aumentada (es decir, la tasa de bitsno debehan sido mayores o menores).

Hacer una codificación CBR de dos pasadas funcionaexcelentey resuelve el problema... si tienes tiempo para ello. Lamentablemente, no puedo permitirme la latencia de una codificación de dos pasos para una única resolución.

Entonces, ¿qué es lo que quieres hacer?

Actualmente estoy realizando una transcodificación inicial a una resolución más baja (480). Esto cubrirá tantos dispositivos de reproducción como sea posible. Me gustaría usarlo como mi paso 1. Dado que la resolución 480 apesta de todos modos, puedo publicar ese video del paso 1 como mi 480, independientemente de cualquier tasa de bits tonta en el primer segundo del video.

entonces me gustaría usarel 480 pase 1 infoy solo paso 2 en mis resoluciones más altas. En el caso CBR/VBV, esto sería:

ffmpeg -i source.mp4 -pass 1 -vf  scale=852:480 -c:v libx264 -b:v 1000k ... 480.mp4
ffmpeg -i source.mp4 -pass 2 -vf scale=1280:720 -c:v libx264 -b:v 2500k ... 720.mp4

barney google

información relacionada