Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Графика, звук, видео в Linux

Как в Linux кодировать видеозаписи в формате WebM для YouTube

Оригинал: "How to Encode WebM Videos for YouTube in Linux"
Автор: Tavis J. Hampton
Дата публикации: January 26, 2011
Перевод: Н.Ромоданов
Дата перевода: февраль 2011 г.

WebM это новый открытый формат видеофайлов, созданный Google для использования с HTML5. В нем объединены видеокодек VP8 и аудиокодек Ogg Vorbis и все это помещено в контейнер Matroska. Это бесплатный формат с открытым исходным кодом, который предоставляет любому возможность кодирования видео без всяких ограничений и который поддерживается в браузерах (Mozilla Firefox, Google Chrome и Opera).

Недавнее объявление фирмы Google о том, что она прекращает поддержку видеоформата H.264 в браузере Chrome, означает, что в конце концов на YouTube основным видеоформатом для HTML5 будет WebM. Так что для вас сейчас это подходящий момент узнать, как в новом формате кодировать видеозаписи. К тому же формат H.264 запатентован и не является открытым, следовательно, пользователи Linux должны прилагать усилия с тем, чтобы избегать его использовать тогда, когда это возможно.

В настоящее время только фирмы Apple и Microsoft по-прежнему продолжают использовать формат H.264 и отказываются включать в свои браузеры форматы WebM или Ogg Theora (оба формата поддерживаются фирмами Mozilla, Google и Opera). Поскольку WebM и Ogg Theora являются открытыми форматами, Google дал ясно понять, что он будет отдавать предпочтение им перед форматом H.264.

Мы рассмотрим два различных способа: 1) кодирование в командной строке с помощью FFMPEG и 2) кодирование с помощью Arista Transcoder с использованием графического интерфейса.

FFMPEG

Для того, чтобы кодировать видеозаписи в формате WebM, вам необходим пакет ffmpeg версии 0.6 или более поздней. Если в вашем дистрибутиве установлена более ранняя версия, вам необходимо скачать двоичные файлы из альтернативного репозитария или скомпилировать их из исходных текстов. В репозитарии Ubuntu 10.10 Maverick Meerkat уже имеется поддержка формата WebM.

После того как вы установите пакет и будете уверены, что у вас поддерживается работа с библиотекой libvpx, вы можете начать кодирование. В настоящей инструкции предполагается, что кодирование будет выполняться в формате 720p, но вы можете изменить настройки так, как вы пожелаете.

Во-первых, проверьте, задана ли у вас в файле /usr/share/ffmpeg настройка ibvpx-720p. Если у вас эта настройка отсутствует, то создайте такой файл в этом директории и назовите его "libvpx-720p.ffpreset"; его содержимое должно быть следующим (отредактируйте этот файл с правами root):

vcodec=libvpx 
g=120 
rc_lookahead=16 
level=216 
profile=0 
qmax=42 
qmin=10 
vb=2M 
#ignored unless using -pass 2 
maxrate=24M 
minrate=100k

Сохраните файл, а затем одну за другой выполните следующие команды:

ffmpeg -i input.mp4 -s 1280x720 -vpre libvpx-720p -b 3900k -pass 1 -an -f webm -y output.webm
ffmpeg -i input.mp4 -s 1280x720 -vpre libvpx-720p -b 3900k -pass 2 -acodec libvorbis -ab 100k -f webm -y output.webm

Замените "input.mp4" на имя фактически используемого файла с вашей видеозаписью, а "output.webm" замените именем вашего вновь создаваемого файла с видеозаписью в формате WebM. Когда выполнение обеих команд будет завершено, вы должны иметь возможность воспроизводить видеозапись, что можно проверить с помощью Mplayer.

Arista

В приложении Arista Transcoder предоставляется удобный интерфейс для быстрого кодирования видео файлов, в том числе и в формате WebM. Чтобы использовать этот формат, выполните следующие действия:

  1. Выберите исходный файл для кодирования
  2. Выберите тип устройства
  3. Задайте "WebM" в качестве предварительной настройки
  4. Щелкните по кнопке "Add to queue" ("Добавить в очередь")

Arista позволит вам вживую выполнять предварительный просмотр в прямом направлении, а также добавлять в очередь несколько заданий, если вам нужно кодировать несколько файлов или кодировать один и тот же файл в различных форматах.

Оба способа должны предоставить вам возможность получить видеофайлы, готовые для публикации на YouTube или на вашем собственном сайте в HTML5. В моих тестах кодирование с использованием ffmpeg продолжалось дольше, но качество кодирование было выше, чем с использованием Arista Transcoder. Подбор настроек для каждого из способов, возможно, позволит получить лучшие результаты.