Estoy intentando decodificar una transmisión h264 de 1920x1080 a 30 fps. Los fotogramas individuales se ven excepcionales en el reproductor multimedia VLC (pausando la reproducción), pero cuando decodifico usando avconv (ffmpeg ha quedado obsoleto y reemplazado por avconv), la calidad del fotograma es realmente pobre en comparación (mi queja principal es el bloqueo).
Así es como llamo a avconv:
avconv -i video.h264 -s 1920x1080 -f image2 temp/images/video-%03d.jpg
¿Existe una configuración de salida jpg para avconv? Leí lo que sospechaba que eran las partes más destacadas de la documentación de avconv (es decir,http://libav.org/avconv.html#image2-1), y no pude encontrar ninguna forma de especificar la calidad jpg de salida.
Además, parece que avconv lee la transmisión completa antes de comenzar a decodificarla, por lo que si la transmisión está en progreso, solo decodifica donde estaba la transmisión cuando avconv inició el proceso de decodificación. ¿Hay alguna manera de evitar esto? En otras palabras, si una transmisión de 10 segundos de duración se inicia en t segundos y avconv se inicia en t+1 segundos, avconv solo decodificará 1 segundo de la transmisión.
Respuesta1
Puede forzar la escala de calidad JPEG a la mejor calidad JPEG posible utilizando el -q:v 1
parámetro:
avconv -i video.h264 -s 1920x1080 -f image2 -q:v 1 temp/images/video-%03d.jpg
Respuesta2
JPEG es un códec con pérdida, quizás use PNG
ffmpeg -i video.h264 -s 1920x1080 temp/images/video-%03d.png