Я пытаюсь декодировать поток h264 1920x1080 30fps. Отдельные кадры выглядят выдающимися в медиапроигрывателе VLC (пауза воспроизведения), но когда я декодирую с помощью avconv (ffmpeg устарел и заменен на avconv), качество кадра действительно плохое по сравнению (моя основная жалоба - блочность).

Вот как я называю avconv:

avconv -i video.h264 -s 1920x1080 -f image2 temp/images/video-%03d.jpg

Есть ли настройки вывода JPG для avconv? Я прочитал то, что, как я подозревал, было существенными частями документации avconv (а именно, http://libav.org/avconv.html#image2-1), и не смог найти какой-либо способ указать качество вывода jpg.

Кроме того, кажется, что avconv читает весь поток перед тем, как начать его декодирование, поэтому, если поток выполняется, он декодирует только туда, где находился поток, когда avconv запустил процесс декодирования. Есть ли способ обойти это? Другими словами, если 10-секундный поток запускается в t секунд, а avconv запускается в t+1 секунд, avconv будет декодировать только 1 секунду потока.

2 ответа2

1

Вы можете настроить шкалу качества JPEG до наилучшего возможного качества JPEG, используя параметр -q:v 1 :

avconv -i video.h264 -s 1920x1080 -f image2 -q:v 1 temp/images/video-%03d.jpg
0

JPEG - это кодек с потерями, возможно, используйте PNG

ffmpeg -i video.h264 -s 1920x1080 temp/images/video-%03d.png

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .