Основы
Тем кто хочет реализовать видео стриминг для начала нужно ознакомиться с тем какие есть видео форматы и что может, а что не может быть воспроизведено. Существует большое количество видео форматов таких как: .flv, .mp4, .swf и другие. Рассмотрим .flv и .swf, которые являются файлами flash формата. Эти два формата не могут быть воспроизведены с помощью HTML5. Напротив MP4 может проигрываться с помощью HTML5 без flash плеера.
Вы можете найти много статьей и туториалов в сети на тему стриминга .swf и .flv файлов. Обратите внимание на то что .swf плеер не будет воспроизводить .flv файлы. Они оба flash но с разными требованиями. В сети много противоречивой информации на данный счет. Вы лишь потратите свое время пытаясь заставить .swf запустит .flv но в итоге удостоверитесь что это невозможно.
Как реализовать .mp4 в HTML5:
<video id="player" width="100%" height="auto" autoplay="autoplay" controls>
<source src="Name of your file" type="video/mp4" codecs="avc1.42E01E, mp4a.40.2">
</video>
Пару вещей которые стоит запомнить:
- Видео нужно присвоить id
- Нужно добавить расширение файла в source.
- Если вы хотите открыть для пользователя доступ к панели управления тогда разместите тэг controls.
- Нужно разместить полный URL файла в source. Пример: www.mysite.com/video/myvideo.mp4
HTML5 воспроизводит аудио и видео. Вам просто нужно указать тип файла.
Есть интересный момент, когда речь идет о воспроизведении видео в полноэкранном режиме. По умолчанию, большинство браузеров отключают эту функцию, но вы можете обойти это, вставив следующий JavaScript код:
<script type='text/javascript'>
var elem = document.getElementById('player');
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.mozRequestFullScreen) {
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullscreen) {
elem.webkitRequestFullscreen();
} ;
</script>
Причиной того что видео не работает на сайте может быть отсутствие доступа к серверу, некорректное имя файла, не полный исходный URL или просто Apache (если вы используете его), не распознает тип расширения или тип mime.
Настройка Apache Web Server
Вам нужно добавить mime типы в расширение, либо в файл apache.conf или в mime.conf. После внесения измененный перезапустите сервер.
Вот и все. После этого у вас появится возможность транслироваться видео из сайта. Но помните, существуют ограничения на форматы в HTML5, это могут быть .swf или shockwave flash или .flv.
Как реализовать с flash
В сети много различной информации, где большая часть будет о реализации воспроизведения .swf или Shockwave flash формат, используя что-то вроде SWFObject. Вкратце, SWFObject это JavaScript библиотека, которая позволит вам проигрывать только .swf форматы и больше она ничего не делает.
Чтобы реализовать трансляцию для .swf файлов нужно:
1. Загрузить SWFObject из Git или с других источников.
2. Разместить его на странице:
<script type="text/javascript" src="../swfobject.js"></script>
<script type="text/javascript">
swfobject.registerObject("myFlashContent", "9.0.0", "expressInstall.swf");
</script>
Этот код должен быть размещен в шапке файла.
3. Вы можете реализовать его с помощью тэга Object tag или:
<script type="text/javascript">
swfobject.embedSWF("YourContentLocation.swf", "myContent", "300", "120", "9.0.0");
</script>
4. Теперь вам нужно прописать следующее:
<body>
<div id="myContent">
<p>Alternative content</p>
</div>
</body>
5. Это запустит .swf файл на вашей странице. Вы можете управлять многими параметрами, с помощью следующего кода:
var params = {
allowScriptAccess: "sameDomain",
allowFullScreen: "true",
wmode: "opaque",
quality: "high",
menu: "false"
};
FlowPlayer
Если у вас есть много видео, которые сделаны с использованием flash и они в формате .flv, то вам необходимо создать flash плеер. Есть много видео-плееров и услуги, которые доступны по разным ценам. Я выбрал FlowPlayer. Он на рынке достаточно давно и уже обзавелся большим сообществом.
Есть несколько вариантов для реализации FlowPlayer. FlowPlayer.org имеет две версии: флэш-плеер под названием Flowplayer flash и HTML5 implementation. Вторая имеет бесплатный вариант для разработчиков, в то время как для flash нужно купить лицензию.
Flash Flowplayer имеет необходимые файлы для воспроизведения файлов .flv, в то время как, HTML5 плеер стандартные форматы HTML5 файлов (MP4). Итак, почему стоит выбрать версию HTML5? Она предлагает довольно много вещей, с которыми можно заставить ваш плеер делать вещи без самостоятельного программирования. Все зависит от ваших потребностей.
Некоторые встраивают плеер на сайт в то время как хостинг видео находится в другом месте. Мы же встроим видео плеер в наш сайт и разместим файлы локально. Для этого нужно:
1. Убедиться, что следующие файлы загружены:
- flowerplayer-3.2.x.min.js -> есть более поздние версии, так что вам нужно будет загрузить последнюю, если это не сработает вернуться к .12/.13
- flowplayer-controls-3.2.15.swf
- flowplayer-3.2.16.swf
2. В шапку HTML нужно добавить следующее:
<script type='text/javascript' src='../yourdirectory/flowplayer-3.2.12.min.js'></script>
<script type='text/javascript' src='.../yourdirectory/flowpayer.control-3.2.16.swf'></script>
3. В теле вашей веб-страницы, вам нужно установить плеер с src файлом:
<a href="<?php echo $FinalName; ?>"
style="display:block;width:525px;height:425px;"
id="player">
</a>
В этом примере я использовал переменную, основанную на выборе пользователя из предыдущей страницы.
Убедитесь что вы используете полный URL файла: yourwebsite.com/yourfilelocation/nameofyourfile.flv
Не то, что вы создали файл и идентификатор нам нужно установить вверх код, который на самом деле запускает файл.
Вы добавили файл и id, теперь нужно прописать код который запустит файл:
<script language="JavaScript">
flowplayer("player", "../private/flowplayer-3.2.16.swf");
</script>
Итог
После прочтения этой статьи вы должны иметь хорошее понимание ключевых элементов, необходимых для работы mp4 и .flv файлов на вашем сайте. Конечно, вы можете управлять параметрами и делать другие вещи, но целью этой статьи было дать вам, понимание деталей, при настройке стримминга.
Комментарии (10)
AigizK
09.08.2016 17:09Расскажи следующие моменты для HTML5:
1. когда пользователь переключается на fullscreen как подсунуть видео лучшего качества?
2. как отдать начало видео из CDN, и если он продолжает смотреть, то остальные части из своего хранилища
А вообще почитайте блог одноклассников здесь же, они очень подробно писали про свои решения
bugs2bugs
09.08.2016 17:20+2Ни слова про манипуляции с видео, какие есть event'ы, API для работы с видео, возможности прикрутить разные аудио дорожки, субтитры
Хоть пару слов про DRM (widewine, play ready), что в разных браузерах — различные имплементации, организация манифест файла для стриминга
Как организовать fallback на flash или, прости господи, silverlight
uppod — если быстро прикрутить видео на сайт со своего хостинга (уловно-бесплатен)
shaka player — opensource, который достоин отдельной статьи
k0ldbl00d
09.08.2016 17:32+6Воспроизведение файла с сервера — это не «живая видеотрансляция» и не потоковое видео. Увидев заголовок, надеялся увидеть что-то действительно новое, например воспроизведение HLS в Chrome Desktop без использования сторонних библиотек вроде hls.js.
k0ldbl00d
09.08.2016 18:32+4И, как мне показалось, у автора совершенно нет понимания что такое swf и Flash вообще.
serega011
10.08.2016 09:39Ага, заголовок абсолютно не соответствует содержанию статьи. Пришел прочитать про стриминг с сайта, а прочел про то как файл на сайте воспроизвести, что известно уже много лет.
f0rk
09.08.2016 18:29+4Бестолковая статья. Во-первых — не про стриминг, во-вторых — даже описание воспроизведения файлов никуда не годится. Не надо такие писать.
Shannon
В статье всё сумбурно и не содержится полезной информации, только запутывает
Чтобы упорядочить свои знания, стоит проглядеть хотя бы эти ссылки:
http://uppod.ru/help/html5/
http://uppod.ru/help#video