Конвертация видео для HTML5 в ffmpeg
20 февраля 2013 FFMPEG 16840 просмотров
С расцветом HTML5 использование flash видеопроигрывателей считается моветоном. HTML5 video куда более приятней и удобней. Но у каждого браузера свои интересы и стандарты, из этого вытекает проблема с форматами видео. Но пользователь этого знать не должен. Под катом инструкция о том как подготовить видео файл для просмотра в HTML5 плеере.

Для начала определимся, какие форматы нам нужны и какие поддерживает наш браузер.

MP4 WebM Ogg
Internet Explorer 9+ Да Нет Нет
Chrome 6+ Да Да Да
Firefox 3.6+ Нет Да Да
Safari 5+ Да Нет Нет
Opera 10.6+ Нет Да Да


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

<video>
    <source src=”file.mp4” type=”video/mp4”/>
    <source src=”file.ogv” type=”video/ogg”/>
    <source src=”file.webm” type=”video/webm”/>
</video>

Следовательно, для лучшей кроссбраузерности мы должны иметь файлы 3-х форматов: mp4, ogv, webm. Вне зависимости от того, какой видео файл загрузит пользователь (будь то avi или mov), мы должны иметь нужные нам форматы.

ffmpeg библиотека позволяет работать с видео, конвертировать его, делать скриншоты и т.д. Для нашего случая нам достаточно знать, как конвертировать.

Я надеюсь, что вы установили ffmpeg и знаете как его вызвать из PHP (system, exec). Также кроме самого ffmpeg вам понадобятся файлы пренастроек (libx264-slow, libx264-baseline).

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

MP4

ffmpeg “original_file_name” -i -vcodec libx264 -vpre slow -crf 22 “new_file_name.mp4”
Для WIndows, возможно, понадобится замена “vpre” на “preset”.

OGV

ffmpeg “original_file_name” -i -vcodec libtheora “new_file_name.ogv”
WEBM

ffmpeg “original_file_name” -i -vcodec libvpx -f webm “new_file_name.webm”