Я пытаюсь конвертировать видео HEVC в VP9, чтобы их можно было воспроизводить в веб-браузере, сохраняя размер файла примерно одинаковым.
Я изо всех сил пытаюсь создать видео с аналогичным качеством / размером файла.
Вот информация о потоке для одного из видео HEVC, видео которого - 22:49 и 168,7 МБ:
Stream #0:0(und): Video: hevc (Main) (hev1 / 0x31766568), yuv420p(tv, bt709), 1920x1080, 900 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 23.98 tbc (default)
Битрейт составляет 900K, поэтому я подумал, что следующая команда будет использовать тот же битрейт и даст примерно одинаковое качество изображения:
ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -vaapi_device /dev/dri/renderD128 -i "$infile" -vf 'format=nv12,hwupload' -c:v vp9_vaapi -b:v 900K -bf 2 -bsf:v vp9_raw_reorder,vp9_superframe -c:a libvorbis "$outfile"
При этом качество заметно выше, гораздо хуже, и занятые сцены выглядят невероятно блочными, хотя размер файла примерно эквивалентен источнику HEVC.
Если я опущу битрейт и позволю VP9 отработать его
ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -vaapi_device /dev/dri/renderD128 -i "$infile" -vf 'format=nv12,hwupload' -c:v vp9_vaapi -b:v 0 -bf 2 -bsf:v vp9_raw_reorder,vp9_superframe -c:a libvorbis "$outfile"
Качество визуально неразличимо, но размер файла конвертированного видео VP9 достигает 401 МБ, по сравнению с 168 МБ файла HEVC, а во время кодирования битрейт для большей части видео составляет более 3 м.
Я пытался подняться до 1,2M (на 33% выше, чем исходное видео), а VP9 по-прежнему давал очень бланковое видео.
Действительно ли VP9 намного хуже, чем HEVC, или мне не хватает опции? или это потому что я конвертирую из HEVC?