¿En qué orden debo usar la estabilización y compresión con ffmpeg?

¿En qué orden debo usar la estabilización y compresión con ffmpeg?

Grabo videos de partidos de fútbol en una Canon Vixia que graba a 60 fps HD con compresión h264. Desde la cámara, el resultado son archivos de 20 GB que he estado recomprimiendo (para ahorrar almacenamiento y aumentar la velocidad de carga) usando h265 con una tasa de bits limitada a 7000k y 60 fps, que es de alta calidad para mis necesidades. Utilizo el codificador hevc_amf con una tarjeta gráfica AMD y recomprimirá un vídeo HD de 1h20m en aproximadamente 40m (2x), con lo cual estoy bastante contento.

Recientemente, aprendí a usar vidstab, que realmente limpia bastante bien mi video tembloroso. Ahora me gustaría estabilizarlo con vidstab y recomprimirlo a h265 antes de archivarlo. Estoy buscando algunas recomendaciones sobre cómo secuenciar el flujo de trabajo de la manera más eficiente y al mismo tiempo obtener buenos resultados. ¿Debo 1) primero hacer vidstab en mi archivo 20G original (tanto el paso de detección como el de transformación)? ¿O debería 2) volver a comprimir usando el codificador hevc_amf acelerado por hardware, antes de realizar la estabilización?

  1. Si es la primera opción, una pregunta de seguimiento. Ejecuto vidstabtransform de la siguiente manera:
ffmpeg.exe -i input.mp4 -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 outputstabilized.mp4

Esto es de acuerdo con los documentos de ffmpeg.org. Parece cambiar la tasa de bits de los 30 Mbps originales a aproximadamente 10 Mbps. ¿Porqué es eso? ¿Puedo controlar eso y mantenerlo en la tasa de bits original? ¿Debería? (Además, ¿necesito la máscara de enfoque? ¿Es porque hay un acercamiento inherente con la estabilización?).

La desventaja de este enfoque parece ser que obtendrás una mejor compresión con h265despuésLa estabilización da menos movimiento en los píxeles, pero tal vez no sea una gran diferencia.

  1. Si es la segunda opción, ¿puedo seguir controlando la tasa de bits en la salida de estabilización?

Si alguien tiene otros flujos de trabajo que recomendaría, yo también sería todo oídos. (He pensado en intentar usar mapas de filtros complejos, pero parecen... complejos :) y no he invertido tiempo para comprenderlos).

¡Gracias de antemano!

Respuesta1

Ejecute el vidstabdetectfiltro en el archivo original.

Ejecute vidstabtransformtambién el filtro en el archivo original, pero utilice el codificador HEVC para producir el resultado final. Los filtros se ejecutan antes del codificador, por lo que la transformación estabilizará los fotogramas de la entrada original antes de enviarlos al codificador.

información relacionada