/ Статьи / Видео / WebM - новый формат видео от Google /

WebM - новый формат видео от Google

Дата публикации: April 29, 2011, 1:32 p.m.
Теги: видео, webm, vp8, google,
Автор: Brainsburn

WebM logo

В последнее время в Интернете все больше пишут о новом формате WebM и видеокодеке VP8. Лично я сперва не очень любил WebM, поскольку он является практически копией формата MKV (Matroska), VP8 основан на Theora, а в качестве аудиокодека в WebM используется Vorbis. Если говорить проще, моя нелюбовь к WebM обосновывалась так: Google просто взяли готовый MKV и сказали, что придумали новый формат для видео. Т.е. по сути они могли бы помочь развитию MKV и Theora, но не сделали этого.

Но я ошибался. По крайней мере, на официальном сайте Matroska по поводу WebM было написано следующее:

"Сегодня - важный день в истории Matroska. После большой работы разработчиков и сообщества, Matroska был выбран в качестве основы для нового формата - WebM.

WebM предназначен для web-медиа. Это подмножество Matroska, в котором оставлены только необходимые функции, которые могут быть нужны для Сети. Этот формат уже поддерживается тремя популярнейшими веб-браузерами - Firefox, Chrome и Opera. Наши утилиты mkvalidator и mkclean уже поддерживают формат WebM; в наборе утилит mkvtoolnix поддержка нового формата будет добавлена уже в следующем релизе.

Вся команда Matroska взволнована и желает новому формату долгую и плодотворную жизнь."

Источник: http://www.matroska.org/news/webm-matroska.html

Free Software Foundation так же поддерживает WebM и даже переименовала свою кампанию PlayOgg в PlayFreedom.

Теперь немного об истории VP8. Все начиналось с кодека VP3, созданного компанией On2 Technologies. Он развивался, выходили новые версии, которые использовались в Macromedia Flash, Skype и еще много где. VP3 почти 10 лет назад выпустили под лицензией BSD и назвали его Theora. В 2010 году Google купила On2 и открыла исходные коды видеокодека после открытого письма из FSF, в котором Google предлагалось заменить H.264 на VP8, а вместо Flash на веб-ресурсах использовать возможности HTML5.

По поводу Theora я могу сказать следующее. Как ни крути, Theora хуже чем H.264. Я сжимал некоторое количество видео этими кодеками и могу сказать, что отличия были заметны на глаз. Поэтому я очень надеюсь, что Google сможет сделать VP8 таким, чтобы он был по крайней мере не хуже H.264.

Уже сейчас получать видео WebM/VP8/Vorbis можно при помощи ffmpeg. Чтобы в ffmpeg появилась эта возможность, надо сперва собрать и установить libvpx ( http://code.google.com/p/webm/downloads/list ), а затем собрать ffmpeg с опцией --enable-libvpx. Ну и конечно, в ffmpeg должна быть поддержка Vorbis, т.е. собран он должен быть с опцией --enable-libvorbis.

В простейшем случае, команда будет такой:
$ ffmpeg -i 1.mkv -f webm -vcodec libvpx -vb 1000k -acodec libvorbis -ab 90k -ac 2 out.webm
Однако, лучше использовать как минимум еще две опции: qmin и qmax, которые позволят лучше контролировать битрейт:
$ ffmpeg -y -i 1.mkv -f webm -vcodec libvpx -vb 500k -acodec libvorbis -ab 90k -ac 2 -qmin 10 -qmax 42 1.webm
Возможен и более продвинутый вариант:
$ ffmpeg -y -i 1.mkv -threads 8 -f webm  -vcodec libvpx -deinterlace -g 120 -level 216 -profile 0 -qmax 42 -qmin 10 -rc_buf_aggressivity 0.95 -vb 2M -acodec libvorbis -ab 90k -ac 2 1.webm
С этими параметрами надо играть очень осторожно и лучше их вообще не трогать, если не знаете точно, что надо делать.

Основным весомым недостатком VP8 на данный момент является низкая скорость сжатия. Кодек Theora далеко не самый быстрый, но в VP8 видео сжимается раза в 3-4 медленнее, чем в Theora. Я не проводил тестирования, но нескольких минут поисков по сети хватило, чтобы понять, что VP8 работает, наверное, медленней всех остальных аналогичных кодеков. VP8 не идеален и он, к сожалению, хуже H.264 на данный момент. К тому-же, последняя версия libvpx содержит баг, который не позволяет собрать ffmpeg с поддержкой VP8, поэтому мне пришлось устанавливать libvpx из git - она такого бага не имеет. Ну что ж, в Google тоже работают люди, а людям свойственно делать ошибки.

Сравнивать VP8 и H.264 не хочется, потому-что VP8 еще слишком молод, но можно сделать небольшое сравнение VP8 и Theora. Я просто сжал исходное видео высокого качества этими кодеками с дефолтными настройками и одинаковым битрейтом, и теперь можно сравнить два скриншота из этих видео.

Скриншот из видео, сжатого в Theora:
Theora

Скриншот из видео, сжатого в VP8:
WebM VP8

На первый взгляд разницы никакой, но если увеличить скриншоты на 200-300%, то отставание Theora по качеству становится заметным. Особенно, если присмотреться к открытому участку неба - у VP8 этот участок выглядит немного лучше. Таким образом, VP8 уже сейчас пусть немного, но опережает Theora. Весомым недостатком кодека остается низкая скорость сжатия. Поэтому хочется пожелать кодеку VP8 быстрейшего развития и оптимизации кода, и тогда, может быть, он приблизит мир чуточку ближе к открытым стандартам.






Возможно, эти материалы Вас заинтересуют:


Рекомендовать эту страницу:

Комментарии:(7)

# Sergey Sept. 21, 2011, 1:33 a.m.
Надо уметь VP готовить)

Если вы хотите что бы VP7 был на уровне x264 с настройками –profile high –level 5.1 –preset placebo –bframes 7 –ref 3 –merange 16 –me umh –subme 9, то надо первый проход делать с настройками шарп 1, 2 или 3 в зависимости от видео, второй проход шарп 0 и снять галочку Adjust Quantizer - кодек перейдет на кодирование с постоянным квантайзером - квантайзер регулируется выставлением нужного максимального квантазера.

Выше 35 квантайзера VP7 начинает уступать x264, а ниже серьезно превосходить - мне кажется это связанно со слабой фильтрацией шума у VP7, компенсацией движения и трансформацией.

В VP8 наоборот нужно выставлять в первом проходе подавление шума в 5-6 это заставит VP8 выставлять золотые кадры как можно реже. Второй проход можно кодировать как обычно с переменным битрейдом, или с постоянным качеством - второй вариант мне нравится больше. Использование альтернативных фреймов очень эффективно и заметно повышает детализацию. VP8 заметно эффективней VP7 где то от 30 до 50%.

В общем случае VP7/8 больше подходит для небольшого движения в кадре с чистого источника (очень не любят кодировать с H.264) и при низких битрейдах - например веб трансляция или передача типа говорящая голова. Но и для кодировании фильмов они вполне хороши.

# Sergey March 21, 2012, 8:14 p.m.
Дошли руки сделать сравнение VP7 VP8 x264.

http://antiliberal.narod.ru/VP7VP8.html [antiliberal.narod.ru]

Есть и сравнение эффективности кодирования и критика участников проекта WebM.

# Brainsburn March 22, 2012, 5:50 p.m.
Sergey, очень интересно, спасибо!

# Sergey March 22, 2012, 7:11 p.m.
Там конечно в критике субъективное (и немного злое) мнение, но я кодирую в VP несколько лет и наверно имею некоторое право - мне кажется что проект WebM движется не туда и я устал пытаться до них достучатся.

# Максим Землянов May 10, 2012, 1:21 p.m.
Сравнивал VP8 и x264. x264 намного более лучше сжимает статичные видео, такие как видеоуроки или где диктор сидит неподвижно, или анимацию. Такое ощущение что VP8 мало снижает битрейт, там где повторяются одинаковые кадры. Незнаю уж как Google будет бороться с этим недостатком, ведь в сети полно видеоуроков, на которых можно было сэкономить с x264.

# Sergey May 31, 2012, 1:09 p.m.
http://www.youtube.com/watch?v=j4fDzNh_PVY&feature=related [youtube.com]

Не знаю что за видеоуроки у вас, однако на ютубе обзоры софта демонстрируют уверенную победу VP8. Первый полный обзор Windows 8. VP8 283кб/сек H264 731кб/сек. Рисованную анимацию VP8 то же сжимает как правило лучше. Остальное с переменным успехом.

Что касается исправления проблем, то сообществу обитающему при гугле на них как и на пользователей глубоко накласть. Сообщество там давно занято самолюбованием. А ведь из VP8 можно было выжать еще много. Самое главное это конечно 10-bit и тюнингом там можно подтянуть процентов 25%.

# Гость Aug. 17, 2014, 6:23 p.m.
Ссылка по теме. Вот примеры видео в формате webm http://cutsberry.com/albums/20140505090804-8424222759/1NlwFZi85K.webm

Комментировать:

Гость, Вы можете оставить свой комментарий.

Стиль кода:
Имя
Сайт * не обязательное поле
Поставьте галку, если вы - бот
Поставьте галку, если вы - человек

Друзья! Убедительная просьба воздержаться от нецензурной лексики!



Справка:
Если вы хотите использовать в тексте комментария специальные символы, например, [ и ], используйте их внутри тега [code] [/code]
Вы можете использовать теги BBcode. Для оформления кода и подсветки синтаксиса используйте тег [code] или [code=название_языка], например, [code=python]
Ссылки вставляйте так: [url]zenux.ru[/url] или так: http://zenux.ru, но не так: zenux.ru
Текст сообщения должен быть в пределах 3000 символов.




Последние комментарии:

Brainsburn_: “Написание в 1-й” подразумевает “в первой”, а не в... >>>
ZZZ: “Написание в 1-й” подразумевает &ldquo... >>>
SBOdin: Спасибо за полезное руководство... >>>
fanyit: Спасибо за обзор. очень полезно и доступно.... >>>
cheech: Спасибо, статья полезная )... >>>