Конвертация видео для HTML5 в ffmpeg
20 февраля 2013 FFMPEG 6 комментариев 15316 просмотров
С расцветом 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”
6 комментариев

Хорошая статья. Узнал немного нового) Сразу видно, что пишите как для себя судя по качеству изложения.

Famil

По ваш таблицы нужна две видео формат (mp4 и webm) конвертировать видео и он будет играть всех браузерах. Это не так http://ru.wikipedia.org/wiki/HTML5_video

Famil, вообще-то в таблице есть еще и OGV. Это 3 основных формата, которых достаточно, чтобы видео просмотр считался кроссплатформенным.

DeFF

У меня при попытке сконвертить видео через консоль пишет -vcodec: No such file or directory

Не знаю что делать :(

DeFF, проблема скорее всего в том, что у вас не установлен соответствующий кодек для работы с видео (libx264, libtheora, libvpx). Проверьте, как их установить на соответствующую операционную систему.

fDNT

to DeFF на самом деле надо так : ffmpeg -i “originalfilename” -vcodec libx264 -vpre slow -crf 22 “newfilename.mp4” (параметр -i это файл источник)