Библиотека сайта rus-linux.net
Как в 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. Чтобы использовать этот формат, выполните следующие действия:
- Выберите исходный файл для кодирования
- Выберите тип устройства
- Задайте "WebM" в качестве предварительной настройки
- Щелкните по кнопке "Add to queue" ("Добавить в очередь")
Arista позволит вам вживую выполнять предварительный просмотр в прямом направлении, а также добавлять в очередь несколько заданий, если вам нужно кодировать несколько файлов или кодировать один и тот же файл в различных форматах.
Оба способа должны предоставить вам возможность получить видеофайлы, готовые для публикации на YouTube или на вашем собственном сайте в HTML5. В моих тестах кодирование с использованием ffmpeg продолжалось дольше, но качество кодирование было выше, чем с использованием Arista Transcoder. Подбор настроек для каждого из способов, возможно, позволит получить лучшие результаты.