Размещение видео-роликов на сайте
Размещение видео-роликов на сайте
Рассмотрим два способа: простой и сложный.
Установка дополнения Flowplayer
Простой способ подходит для тех, кто не хочит особо заморачиватся, и состоит в установке дополнения Flowplayer из репозитория и его вызова, например так:
Здесь всё понятно — указываем путь к .flv файлу и остальные параметры вывода. У меня почему-то конфликтовал данный проигрыватель или сам сниппет с шаблоном на бутстрепе. А так в этом способе одни плюсы — проигрыватель поддерживается всеми браузерами, отзывчивый, легко настраивается под нужды пользователя, можно его встраивать, кастомизировать. Подробнее на официальном сайте
Создание HTML5 роликов
Для любителей сложного и детального представляю второй способ. Итак создадим собственный HTML5 элемент видео на нашей странице для вывода видеороликов. Перед этим давайте разберёмся с видеоформатами для сети и кодеками для них. Более подробно можете почитать на Хабре (ссылки внизу) либо на официальных сайтах данных кодеков.
Типы видеоформатов и кодеков и программы для них
Видео файл в любом из видео форматов, следует воспринимать как zip-архив содержащий видео поток и аудио поток. Вот главные три видео формата для сети, которые поддерживаются на данный момент основными браузерами:
Формат | Видеокодек | Аудиокодек |
---|---|---|
mp4 | H.264 | AAC |
.ogg/.ogv | Theora | Vorbis |
.webm | VP8 | Vorbis |
Для чего эта информация? После монтажа вы получите видео, например, в .avi формате. Далее необходимо его перекодировать в эти три формата с соответствующими кодеками для вывода на сайте. Для этого можно использовать, как это делаю я (моя ОС — Linux Mint Cinnamon), программу Transcoder либо WinFF для любителей MS Windows.
Настройка .htaccess
Видео должно передаваться с сервера с коректными MIME Types в заголовках, поэтому укажем их в .htaccess:
AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/webm .webm
Для тех кто пользуется NGINX будет полезна эта ссылка https://github.com/bentruyman/html5-boilerplate/...
Типовая вставка HTML5 video
Теперь можно вставить сам код для вывода HTML5 видео:
<video poster="assets/img/July.jpg" controls="controls" preload="none">
<source type="video/mp4" src="assets/videos/July.mp4" />
<source type="video/webm" src="assets/videos/July.webm" />
<source type="video/ogg" src="assets/videos/July.ogg" />
</video>
Как видно мы можем дополнительно к видео указать постер (плейсхолдер) — изображение для вывода в режиме перед проигрыванием ролика и некоторые другие параметры. Укажем также ширину и высоту. Чтобы видео проигрывалось браузерами не поддерживающими video теги будем использовать Flash плеер, который поддерживает проигрывание .mp4 видео:
<video width="640" height="360" poster="assets/img/July.jpg" controls="controls" preload="none">
<source type="video/mp4" src="assets/videos/July.mp4" />
<source type="video/webm" src="assets/videos/July.webm" />
<source type="video/ogg" src="assets/videos/July.ogg" />
<object width="640" height="360" type="application/x-shockwave-flash" data="flashmediaelement.swf">
<param name="movie" value="flashmediaelement.swf" />
<param name="flashvars" value="controls=true&file=assets/videos/July.mp4" />
<img src="assets/img/July.jpg" width="360" height="360" title="Нет возможности проиграть видео" />
</object>
</video>
Внимательные читатели заметят название плеера — flashmediaelement и именно этот проигрыватель я буду использовать с последующей его настройкой.
HTML5 проигрыватель MediaElementjs
Демо проигрывателя есть на официальном сайте — mediaelementjs.com. Сам проигрыватель «из коробки» выглядит очень достойно. Скачать можно по ссылке с гитхаба. В демо можно взять файлы стилей (вставляйте в head сайта):
<link rel="stylesheet" href="assets/src/css/mediaelementplayer.css">
<link rel="stylesheet" href="assets/src/css/mejs-skins.css">
И скрипты (я обычно вставляю в низ сайта):
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript" src="assets/src/js/mediaelement-and-player.min.js"></script>
<script>
$('audio,video').mediaelementplayer({
success: function(player, node) {
$('#' + node.id + '-mode').html('mode: ' + player.pluginType);
}
});
</script>
Если вы хотите использовать другой скин из предлагаемых, то просто поменяйте класс для тега video class="mejs-ted"
.
Далее можно применить MIGX или создать свой сниппет для более удобной работы с видеороликами.
Продолжение следует...
Список источников информации:
http://www.webmproject.org/about/faq/
http://praegnanz.de/html5video/
http://habrahabr.ru/post/104591/
04-12-2013 htaccess HTML5 video сниппеты дополнения Виктор Матушевский
Осип
17.01.2014 12:55Здравствуйте подскажите пожалуйста, куда кидать папку с самим проигрывателем и наведите на мысль как можно организовать загрузку видеороликов через TV или есть какая-нибудь альтернатива? Буду очень вам благодарен если подскажете...
Viktor Matushevskyi
17.01.2014 18:07Папку - куда хотите, главное указать потом правильно пути к файлам.
Через ТВ, можно через MIGX.
вася протеинов
16.02.2014 11:01Про первый способ. Пытался tv параметры использовать, для указания папки с видео, и так как там нет параметра ввода "видео", использовал файл, но видео не подгружалось.
`
&title=`Test Video`
&time=`1:25`
&autoplay=`true`
&loop=`false`
&class=`myVideos`
что я делаю не так?
просто очень не хочется, каждый раз с путями париться.
вася протеинов
16.02.2014 11:11либо может как-нить эту строку изменить
'url' => $modx->getOption('url', $scriptProperties, '' ),
вася протеинов
16.02.2014 11:22небольшое дополнение как-то криво опубликовалось
[ [ ! f l o w p l a y e r ?
& m u l t i=`true`
& u r l=`[ [ *video ] ]`
& t i t l e=`Test Video`
& t i m e=`1:25`
& a u t o p l a y=`true`
& l o o p=`false`
] ]
Осип
17.01.2014 18:23Спасибо
Aleksandr D
17.03.2014 15:19понравился mediaelementjs.com - но стал вопрос, нужен ли он?? До этого ролики использовали с Ютюба? в чем разница
Aleksandr D
17.03.2014 15:19понравился mediaelementjs.com - но стал вопрос, нужен ли он?? До этого ролики использовали с Ютюба? в чем разница