Me gustaría especificar una velocidad de cuadros variable con un valor MÁXIMO, y permitir que libx264 reduzca la velocidad de cuadros como mejor le parezca. La idea aquí es obtener una compresión adicional cuando hay algo así como un marco fijo extendido
En mi opinión, esto puede ser posiblemente de una manera relativamente torpe, pero no es deseable por algunas razones complejas y contrarias a la intuición.
Aunque una transmisión x264 tiene una o más velocidades de fotogramas, la velocidad de fotogramas es más un problema de nivel de contenedor que un códec.
En una codificación VFR passthrough, habrá esencialmente un archivo de texto que detalla cuál es la velocidad de cuadros sobre qué cuadros / tiempos, y al codificar una fuente, una función como tcfile-in o tcfile-out pasa las marcas de tiempo a la codificación , para mapear las ubicaciones de tarifas y mantener el video subjetivamente consistente desde la fuente.
La idea de baja velocidad de fotogramas es lógica, pero no funciona por varias razones. Aunque x264 es compatible con VFR con algunas capacidades, no creo que haya una función de análisis que varíe la velocidad de fotogramas con respecto al movimiento para reducir el tamaño del archivo (de una manera análoga a los muchos controles de velocidad de bits).
La fuente también es un problema: las fuentes VFR conservarán por defecto su variabilidad de trama, pero aparentemente codificar un archivo CFR a una tasa de bits variable (una buena idea a veces, especialmente cuando se necesita telecine) simplemente producirá el mismo CFR.
Esto significa que probablemente tendría que volver a escribir la tasa de bits a mano (es decir, marcas de tiempo de escenas lentas mezcladas en el archivo), o recurrir a un algoritmo de decimación de cuadros como dup, dedup y exactDedup para avisynth . Si su video tiene un movimiento extremadamente bajo, algunos cuadros (¿incluso la mitad?) Se eliminarán. El problema es que estos algoritmos no son avanzados y no toman buenas decisiones con imágenes de la "vida real" en cuanto a qué contribuirá a la mejor codificación.
Además, la eliminación de cuadros que contienen elementos como los cuadros I y B reduce la cantidad de detalles disponibles con el tiempo, lo que hace que el movimiento se vea "escalonado" y puede interferir con los otros parámetros básicos de video y causar artefactos como el alias.
Y debido a la forma en que funcionan los cuantificadores, x264 en realidad disminuirá la tasa de bits de manera desproporcionada en estas escenas de movimiento bajo. A menos que tenga una presentación de diapositivas de imágenes idénticas, habrá movimiento (aunque solo sea grano y otros artefactos) y habrá una pérdida de calidad que no se vería sin cambios drásticos en la tasa de bits.
Y, por último, la razón por la que no hay muchas opciones para hacer lo que desea es que x264 es realmente bueno en la gestión de la tasa de bits simplemente usando la compresión temporal (grabación de cambios en fotogramas parciales). Ir a 1/2 framerate no reducirá el tamaño del archivo a la mitad; El 10% es probablemente una ganancia realista para esperar de movimiento bajo o animación.
En resumen, dejar caer la tasa de bits de sus escenas estáticas hará muy poco para el tamaño de su archivo, pero agregará una gran cantidad de problemas de calidad y sincronización, sin mencionar la incompatibilidad con el software de edición de video.
Si desea probar un decimador, puede limitar la velocidad máxima de fotogramas nuevos utilizando las opciones de niveles , cada una de las cuales tiene una resolución y velocidad de fotogramas máximas. Desafortunadamente, es probable que tenga que trabajar a resoluciones muy bajas para obtener el tipo de velocidad de fotogramas que desea, utilizando perfiles. Vuelve a editar las velocidades a mano, ya sea completamente o para corregir las velocidades de fotogramas que crees que son demasiado altas. De cualquier manera, será necesario hacer malabarismos para mantener el sonido sincronizado con las nuevas velocidades de cuadros si se realizan modificaciones después del proceso de codificación cuando se conserva el archivo tc.
La conclusión es que pasar tiempo optimizando las muchas configuraciones de velocidad de bits producirá mucho más en cuanto a la gestión del tamaño de archivo y mejorará la calidad de su video, en lugar de causar complicaciones con poca ganancia. Preservar el FPS original es probablemente la mejor idea a menos que esté buscando estándares de transmisión o medios. Los reproductores son capaces de reproducir velocidades de bits variables (a diferencia de los editores), y cuantos más cuadros haya en su video, más suave será la reproducción y quizás más pequeño el tamaño del archivo, debido a los pequeños cambios en el movimiento entre cuadros.
Aquí hay una colección de enlaces a información sobre estándares y debates en foros que deberían ayudar con este aspecto confuso de la codificación:
- herramientas de decimación avisynth
- conmutadores fps y -r
- x264 General (tcfile, fps)
- estándares de archivo de código de tiempo
- Niveles y perfiles
- Resumen breve y claro de configuración CFR / VFR (sección "framerate")
doom9, videohelp, & c debates teóricos
1
2
3
4
5
6
7