Vp9 video extensions что это за программа windows 10
Vp9 video extensions что это за программа windows 10
Если ваша задача — получить лучшее качество при наименьшем битрейте, то тут кодек VP9 и приходит на помощь. С помощью него можно кодировать, например, 1080p видео с битрейтом 2500k (2,5 мегабита) и иметь вполне приличное качество. Если видео очень динамичное, битрейт следует поднять до 3000-4000k. Если же с таким битрейтом мы будем кодировать в кодек h264 — получим пиксельную кашу, примерно как на Ютубе. Ютуб далеко не всё видео кодирует в VP9 (webm), многие видео хранятся в кодеке h264/avc — смотреть на них больно.
Однако, кодек VP9 не идеален и есть у него небольшой изъян, связанный с цветовым пространством. Условно, два основных цветовых пространства — это TV (bt601) и PC (bt709). Чем они отличаются? Уровнями черного и белого. Цветовое пространство TV имеет более узкий диапазон цветов 16-235, где 16 — белый, а 235 — черный. Если просматривать такое видео на мониторе ПК, то оно будет блеклое, тусклое, с низким контрастом. Потому что правильное цветовое пространство для PC — 00-255, где 00 — абсолютный белый, а 255 — абсолютный черный. Простыми словами, телевизионное цветовое пространство имеет ограниченный диапазон RGB. А компьютерное — полный.
Проблема кодека VP9 состоит в том, что он умеет работать только с TV пространством, обозначаемое так же, как yuv420. Для многих современных фото и видеокамер — это не проблема, они снимают точно в таком же цветовом поле с поправкой на контраст, картинка с них вполне хорошо смотрится. Но есть старые модели фото-видео камер, которые снимают в цветовом пространстве yuvj420 (pc, bt709) и с них необработанное видео смотрится отлично, сочно, контрастно. Но вот при кодировании в VP9 подобных видео со старых камер, кодек обрезает диапазон цвета с 00-255 до 16-235 и мы получаем тусклую, неконтрастную картинку. Абсолютно черный 255 превращается в тёмно-серый 235.
Как решать эту проблему?
Облазив огромное количество интернет-сайтов, как российских, так и зарубежных, я не нашел практически никакой полезной информации. И вывод напрашивается сам собой: раз кодек не поддерживает yuvj420 (pc, bt709), то и бороться с потерей цвета никак нельзя. Тем не менее, я нашел небольшую уловку, которая работает в актуальных версиях ffmpeg (4.2) и позволяет с помощью фильтра подкрутить контраст на 10%. Вероятно, Ютуб пользуется подобными методами, так как конвертировать PC-стандарт (yuvj420) в TV (yuv420) и не потерять часть цвета — невозможно. Делюсь командой для ffmpeg под Linux, чтобы закодировать видео yuvj420 и не лишиться контраста. Конечно, это лишь уловка, но закодированное видео в yuv420 практически не будет визуально отличаться от исходника и большинство вообще не заметит никакой разницы.
Решение:
-i — входной файл
MVI_9360.MOV — название входного файла, включая расширение
-c:v vp9 — кодек видео VP9
-vf «eq=contrast=1.1:brightness=0:saturation=1» — видеофильтр, контраст, яркость, насыщенность. Единица — это 100%.
-b:v 2000k — примерный битрейт видео установлен в 2000 килобит/c
-c:a libopus — кодек аудиодорожки, кроме libopus может использоваться libvorbis
-b:a 256k — битрейт аудиодорожки установлен в 256 килобит/c
-y — означает yes, полезно в случае перезаписи существующего в каталоге файла с тем же названием.
По поводу кодирования различных видеофайлов с помощью ffmpeg я как-нибудь напишу отдельный пост. А пока, на этом всё. Спасибо за внимание 🙂
На правах автора хочу напомнить, что у нас есть группа вк и телеграм-чат, где можно пообщаться на компьютерную и сетевую тематику.