WeBinstruments

Инструментарий для веб-мастеров

 

Техподдержка и
сопровождение
сайтов


на сайте на всех сайтах для веб разработчиков везде
 
 Скрипты
  PHP скрипты   
  Flash скрипты   
  Javascript скрипты   

 Софт
  Инструменты SEO   
  Разработка сайтов   
  Серверное ПО   

 Документация
  MySQL   
  PHP   
  HTML   
  Протоколы и сервисы Internet   

 Статьи
  PHP   
  MySQL   
  Сервер   
  еще...   

 Услуги и сервисы
  Домены   
  Хостинги   
  Блоки для сайта   

 Новости


 Контакты
  icq: 158325531
  email:
  все контакты: здесь




Atom все поступления
Раздел Статьи
Раздел Файлы
Раздел Новости
Раздел Услуги и сервисы
комментарии



 Партнеры
купить пилки для лобзика настольного.


Главная / Статьи / HTML / Как сделать потоковое видео на сайте.


Как сделать потоковое видео на сайте.

11.02.2009 (последний раз редактировалось 02.01.2012)
сайт автора: http://webi.ru
публикация данной статьи разрешена только со ссылкой на сайт автора статьи

Видео на сайте
Как организовать потоковое видео на своем сайте или проигрывание mp3 файлов?
Как транслировать онлайн вещания (rtmp потоки), а так же ролики из Youtube?

В этой статье я расскажу как установить на сайте плеер и показывать видео прямо с вашего сайта.
Разговор пойдет только об установке и настройке плеера, а уж как вы будете грузить файлы на свой сайт, это уже другая тема.

Воспроизведение видео на сайте делится на две основных части, трансляция RTMP потока и воспроизведение обычного файла.

1.
RTMP поток. Чаще всего используется для трансляции видео с вебкамер и трансляции телевидения в реальном времени. Иногда используется и для воспроизведения видеофайлов. RTMP канал транслирует информацию со скоростью воспроизведения, поэтому даже при воспроизведении файла его нельзя скачать целиком, можно только записать трансляцию со скоростью воспроизведения.

2.
Потоковое воспроизведение файла.
Обычный стандартный вариант воспроизведения видео. Файл скачивается частями (с вашего сервера или чужого) в буфер и показывается в плеере, то что скачалось.

Вот об этих двух вариантах и расскажу.
Некоторые используют встроенные в систему плееры, и вызывают их с использованием специальной команды, но если кто-то посетит ваш сайт с другой операционной системой, то не увидит уже видео, так как в другой операционке этого плеера может и не быть.
Поэтому я рекомендую использовать плееры JW FLV Media Player или TarantinovFLV.
Будет работать под любой операционной системой и в любом браузере.
Главное, чтобы в браузере был flash и javascript.
Плеер будет загружаться в браузер посетителя с вашего сайта.
JW FLV Media Player способен воспроизводить не только видео, но еще музыку и картинки.
На сайте разработчиков вы найдете всю необходимую информацию на английском, а так же разные версии проигрывателей.

JW FLV Player способен воспроизводить потоковое видео в формате FLV или MP4, а так же RTMP каналы.
FLV достаточно распространный формат для воспроизведения потокового видео в интернете, очень подходит для наших целей.

Воспроизведение видеофайлов.
Как создать FLV.
Для создания flv или MP4, вам потребуется конвертер.
В интернете можно найти большое количество конвертеров, например Total Video Converter.
Очень простой в работе конвертер, открываете любое видео в нем и выбираете в какой формат конвертировать, дальше он все сделает сам.
Если хотите, можете настроить качество конвертируемого видео в настройках.

Итак, видео сконвертировали, теперь скачивайте плеер JW FLV Media Player.
Из всех файлов нужны только player.swf и swfobject.js.
Все остальное можно выбросить.
Загружайте эти два файла и видео куда-то на свой сервер.

Теперь просто втыкаете в нужном месте на странице такой html

<script type="text/javascript" src="swfobject.js"></script>
<div id="player">Здесь можно написать что то, если вдруг не будет грузится плеер. Возможно не включен flash в браузере.</div>
<script type="text/javascript">
var so = new SWFObject('player.swf','mpl','400','250','8');
so.addParam('allowfullscreen','true');
so.addParam('flashvars','file=video.flv');
so.write('player');
</script>


Пример локального воспроизведения файла
Здесь можно написать что то, если вдруг не будет грузится плеер. Возможно не включен flash в браузере.

Пример воспроизведения ролика youtube
Здесь можно написать что то, если вдруг не будет грузится плеер. Возможно не включен flash в браузере.

Пример воспроизведения RTMP
Здесь можно написать что то, если вдруг не будет грузится плеер. Возможно не включен flash в браузере.

Если вы все сделали правильно, то вы увидите черное окно плеера, при нажатии на воспроизведение начнет показывать видео.

Разбор этого кода.

<script type="text/javascript" src="swfobject.js"></script>
Загрузка вспомогательного класса, который упрощает использование флеш на сайте. Указывайте путь где лежит этот файл.

var so = new SWFObject('player.swf','mpl','400','250','8');
Указываем теперь этому классу где лежит плеер и задаем настройки флеш.

Краткий синтаксис класса SWFObject:

var so = new SWFObject(swf, id, width, height, version, background-color);
swf - Путь к плееру.
id - ID вашего объекта (что угодно можно указать).
width - Ширина плеера.
height - Высота плеера.
version - Требуемая версия флеш.
background-color - Цвет фона.

so.write('player');
Здесь указываем в каком месте загрузить плеер.
В конкретном примере плеер грузится между тегами
<div id="player"></div>

so.addParam('allowfullscreen','true');
Разрешить использовать полноэкранный режим.
Для выключения нужно установить false.

so.addParam('flashvars','file=video.flv');
А это вызов самого видео файла, может быть не только локальный, можно указать удаленный файл через http://.

so.addParam('flashvars','file=http://www.youtube.com/watch?v=O6ExAru7s58');
А вот так можно вызвать ролик youtube. Вместо имени файла указываете страницу youtube где размещен ролик.

so.addParam('flashvars','file=2x2.sdp&provider=rtmp&streamer=rtmp://213.21.0.16/2x2');
А вот так вызывается RTMP поток. Тут добавлены две переменные provider и streamer. О них ниже.

А сейчас об остальных настройках плеера.
Все настройки плееру передаются через so.addParam('flashvars','[...]');
Передача параметров происходит по принципу переменных в ссылках.
Например, если вам нужно чтобы при загрузке страницы видео начинало воспроизводится автоматически, нужно изменить наш пример так:
so.addParam('flashvars','file=video.flv&autostart=true');
То есть за автоматическое воспроизведение отвечает параметр autostart=true.
Параметры указываются через &.
Если в параметрах встречаются данные символы, их нужно заменять.
? > %3F
= > %3D
& > %26
Все файлы, которые можно вызывать в параметрах могут быть удаленными, то есть можно указывать полный адрес через http://

Переменные плеера JW FLV:

Название Описание Возможные значения
     
Общие переменные
image Путь к файлу изображения, которое показывается в плеере, когда не идет показ видео(превью для видео)  
start(0) С какой секунды начинать воспроизведение  
duration(0) Максимальная продолжительность в секундах. Если не указать, воспроизводится до конца.
 
link Ссылка. Если указать ссылку, то в панели плеера появится значек ссылки, при нажатии откроется указанная страница в браузере.  
file Файл для показа в плеере(музыка mp3, изображение или видео). Либо плейлист. Про плейлисты ниже.  
provider Указывает, какой тип данных будет обрабатываться. По умолчанию определяет тип по расширению файла, но если плеер не может опознать тип содержимого, можно указать вручную. video - стандартный видео файл FLV / MP4.
sound - музыкальный MP3 файл.
image - JPG/GIF/PNG изображение.
youtube - видео из YouTube.
http - FLV/MP4 видео файл, воспроизводимый в псевдопотоке.
rtmp - воспроизведение RTMP потока.
streamer Указывается RTMP канал для воспроизведения, например
file=2x2.sdp&provider=rtmp&streamer=rtmp://213.21.0.16/2x2
указан файл, тип содержимого и адрес канала
 
     
Цвета
backcolor Цвет контрольной панели, на которой находятся кнопочки управления, а так же фон плейлиста.  
frontcolor Цвет содержимого контрольной панели(кнопочки, тексты и т.д.), а так же цвет текстов в плейлисте  
lightcolor Цвет некоторых элементов, например цвет громкости звука(включенного), цвет строки, показывающей пройденное время ролика после ползунка  
screencolor Цвет фона дисплея плеера  
     
Расположение
controlbar (bottom) Расположение панели. bottom-снизу
over-наложено на видео и исчезает при воспроизведении
none-нет панели.
playlist (none) Расположение плейлиста. bottom-снизу
over-располагается на дисплее, при начале воспроизведения исчезает до остановки видео,
right-справа,
none-нет плейлиста.
playlistsize (180) Размер плейлиста. Если плейлист расположен справа, то это ширина плейлиста, если плейлист расположен снизу, тогда это высота  
skin Путь к скину плеера. не много скинов можно скачать здесь http://www.longtailvideo.com/addons/skins  
     
Действие
autostart (false) Автоматическое воспроизведение после загрузки страницы false-нет
true-да
bufferlength (1) Буферизация перед стартом. Количество секунд, которые нужно скачать перед тем, как начать воспроизведение  
displayclick (play) Действие, выполняемое при нажатии на дисплей плеера play-воспроизведение/пауза
link-переход по ссылке указанной в параметре link
fullscreen-переход в полноэкранный режим
none-ничего не делать
mute-выключить звук
next-следующий ролик в плейлисте.
icons (true) Показывать в центре экрана значек воспризведения и буферизации. true-да
false-нет
item (0) Номер ролика в плейлисте, который воспроизводится по умолчанию. отсчет начинается с нуля.  
logo Картинка-логотип jpg, png или gif. В скине по умолчанию крепится в верхний правый угол, но в разных скинах это расположение может меняться  
mute (false) Загрузка плеера с изначально выключенным звуком. false-звук включен
true-звук выключен.
quality (true) Включает улучшеное качество воспроизведения видео при загрузке. Можно переключать правой кнопкой мыши через меню. true-включено
false-выключено
repeat (none) Повтор роликов list-показывает поочереди ролики в плейлисте и остановится при окончании плейлиста.
always
-крутит все ролики в плейлисте по кругу без конца.
single-повторяет один ролик по кругу.
none-нет повтора
resizing (true) Разрешить изменять размер видео в зависимости от размеров плеера. true-да
false-нет
stretching (uniform) Подгоняет размеры видео exactfit-не пропорционально, заполняет весь экран по ширине и высоте.
uniform-пропорционально заполняет экран плеера, показывая всю картинку видео(заполняя большие стороны фоном).
fill-пропорционально заполняет весь экран по минимальным сторонам, уводя часть видео за пределы экрана.
none-не меняет размеры видео.
volume (90) уровень звука плеера при старте. от 0 до 100  
     
Внешние переменные
abouttext При нажатии правой кнопкой мыши будет виден этот тект, как владельца. Вносить сюда свой текст разрешается только при использовании коммерческой лицензии.  
aboutlink Ссылка которая срабатывает при нажатии на тексте abouttext. Тоже менять запрещено без коммерческой лицензии.  

Это почти все настройки, осталось несколько мелких переменных, о них не стал писать, так как не смог протестировать их.
Все переменные описаны здесь http://developer.longtailvideo.com/trac/wiki/FlashVars

Так же можно воспользоваться онлайн конструктором плеера.
Заполняя необходимые поля формы вы в онлайне создаете готовый код плеера для установки на своем сайте.
Конструктор http://www.longtailvideo.com/support/jw-player-setup-wizard

 

А сейчас не много о плейлисте.
Очень удобная вещь.
Можно загрузить не один ролик, а сразу несколько в пределах одного плеера.
Вот пример вывода плеера с плейлистом
so.addParam('flashvars','file=pl.xml&playlist=right');
Здесь уже в переменной file указывается не файл с видео, а xml файл плейлиста.

Пример xml файла плейлиста:

<playlist version="1" xmlns="http://xspf.org/ns/0/">
<title>Example XSPF playlist for the JW Player</title>
<info>http://developer.longtailvideo.com/trac</info>
<tracklist>
<track>
<title>Название</title>
<creator>-----</creator>
<info>http://www.webi.ru/</info>
<annotation>Описание</annotation>
<image>1.jpg</image>
<location>m.flv</location>
</track>

<track>
<title>Название2</title>
<creator>------</creator>
<info>http://www.webi.ru/</info>
<annotation>Описание</annotation>
<image>2.jpg</image>
<location>2.flv</location>
</track>
</tracklist>
</playlist>

Полный формат плейлистов можно найти тут http://developer.longtailvideo.com/trac/wiki/FlashFormats

Этот плеер понимает много форматов xml, я взял самый понятный и простой.
В данном примере два ролика, можете пихать сюда больше.
Как видите в плейлисте все понятно без лишних комментариев.
Самое главное, кодировка файла должна быть UTF-8.

Вот и все.
Установили и настроили видео.


Вот ссылки по теме.
Скачать JW FLV Media Player с нашего сайта

Сайт разработчиков плеера. Здесь несколько вариантов плееров.
http://www.longtailvideo.com/

JW FLV Media Player. Это ссылка конкретно на описаный плеер.
http://www.longtailvideo.com/players/jw-flv-player/

Описание переменных для so.addParam('flashvars','[...]');
http://developer.longtailvideo.com/trac/wiki/FlashVars

Онлайн конструктор.
Легкий способ создать необходимые настройки
http://www.longtailvideo.com/support/jw-player-setup-wizard

Форматы поддерживаемых файлов(плейлистов, видео, аудио, изображений)
http://developer.longtailvideo.com/trac/wiki/FlashFormats

Скины
http://www.longtailvideo.com/addons/skins

Правила создания своих скинов
http://developer.longtailvideo.com/trac/wiki/SkinningThePlayer

 




Комментарии

RSS комментарии


28.02.2009 Дмитрий
Спасибо болльшое! Плеер понравился!



06.03.2009 Алексей
А что делать если плеер не находит файл? файл видео в том же каталоге что и сайт.



14.03.2009 Дмитрий
я талкнулся с такой же проблемой, в свое время.

Это проблема сконфигурацией сервера вашего, думаю. Попробуйте проста скачать по HTTP и просмотреть.... если не открывает, то оратитесь к провайдеру чтобы прописал mime-type для FLF.
Как вариант написать свою настройку в .htaccess



15.03.2009 Ростиcлав
Здравствуйте, очень понравилась статья, для себя открыл, что плеер можно подгружать динамически с помощью скрипта, а не вручную. Скажите пожалуйста, возможно ли подгружать в один и тот же плеер другие flv-файлы с помощью обычных текстовых ссылок? Если в атрибут href писать url flv-файла, то браузер предлагает такой файл просто скачать. Если я правильно понимаю, необходимо этот адрес передать плееру. Не силен в JavaScript, если это несложно, приведите пожалуйста пример кода такой ссылки.



19.03.2009 админ
Вообще помоему должна быть встроенная фишка приема имени файла в ссылке, но я точно не помню.
Если намудрить на javascript то можно сделать так.
Вот функция для получения нужной переменной из ссылки
function getUrlVar(name)
{
name = name.replace(/[[]/,"[").replace(/[]]/,"]");
var regexS = "[?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if(results == null) return "";
else return results[1];
}
Теперь задать параметр можно так
so.addParam('flashvars',"file="+getUrlVar('file'));
И теперь вызываем в ссылку имя файла.
site/asd.html?file=video.flv




30.03.2009 Valeriy
Сервер на WIN 2003 (родной IIS).
Плевр не находит файл, файл в том же каталоге что и плевр. Пробовал указывать и через ../ и через http://... Результат тот же. Тыкните пожалуйста носом где и куда мне копать.




02.04.2009 alex
Valeriy, похоже на отсутствие mime-type для FLV



02.04.2009 finn101
Для того чтого Плеер находил файл, нужно в - *.xml файл вставить значение <file>*.mp3</file> притом файл как *.mp3 ,так и *.xml обезательно назвать цыфрой, тоесть 1.mp3, 2.xml

ВОТ ПРИМЕР
-----
1)ФАЙЛ *.HTML
000000000000000000
<html>
<head>

<title>Мой первый шаг </title>



</head>

<body>

<script type="text/javascript" src="swfobject.js"></script>
<div id="player">Здесь можно написать что то, если вдруг не будет грузится плеер. Возможно не включен flash в браузере.</div>
<script type="text/javascript">
var so = new SWFObject('player.swf','mpl','400','250','8');
so.addParam('allowfullscreen','true');



so.addParam('flashvars','file=pl.xml&playlist=right&autostart=true&');


so.write('player');

</script
00000000
1)ФАЙЛ *.XML
------------
<rss version="2.0" xmlns:jwplayer="http://developer.longtailvideo.com/trac/wiki/FlashFormats">
<channel>
<title>Example RSS feed with jwplayer extensions</title>
<item>
<title>FLV Video</title>



<file>3.mp3</file>
<image>4.JPEG </image>

<description>Big Buck Bunny is a short animated film by the Blender Institute, part of the Blender Foundation.</description>
<enclosure url="D:23.mp3"type="video/x-flv " length="1192846" />
<jwplayer:author>the Peach Open Movie Project</jwplayer:author>

<jwplayer:type>lighttpd</jwplayer:type>
<jwplayer:duration></jwplayer:duration>


</item>
</channel>
</rss>



02.04.2009 Valeriy
alex
02-04-2009
похоже на отсутствие mime-type для FLV
_______________
Да. В этом была вся проблема.



03.04.2009 Valeriy
Создал файл play.asp который генерирует плейлист. В конце файла методом
<!-- #include file="../mediaplayer/player.asp" -->
ввожу файл со скриптлм плеера. Передаю в него плейлист и для проверки печатаю его под плеером (у меня это строка <% response.write dictEnvironment("LIST") %>).
Запускаю файл play.asp, он генерирует извлекая из базы Access плейлист, передает его в файл player.asp, где запускает плеер и выводит мой плейлист. Формат плейлиста что отображается на моей ВЕБ страничке полностью соответствует тому примеру что привел здесь автор статьи. Вроде все работает замечательно.
Далее нужно вставить в плеер мой плейлист. Пользуюсь примером из этого сайта:
Вместо: so.addParam('flashvars','file=pl.xml&playlist=bottom');
Ставлю:
so.addParam('flashvars','file=<% response.write dictEnvironment("LIST ") %>&playlist=bottom');

и естественно ничего не работает. Плейлист не отображается.
Вопрос: Можно ли плейлист подавать не с файла (в данном примере это pl.xml) а таким методом как я? Если да то что тогда писать вместо file= ?




19.05.2009 grizli
Скажите пожалуйста, как можно приспособить этот проигрыватель для воспроизведения онлайн видео с IP-камеры?
Спасибо!



26.05.2009 Sheva
Подскажите, если в курсе дела, если нет интернета как подгружать к примеру в локалке плагины? Они ведь подгружаются с plugins.longtailvideo.com как быть если выхода в интернет нет?
Понадобился показ субтитров а плеер в локалке их не желает подгружать бес соответствующего плагина. Просится в инет за плагином :)



26.05.2009 Sheva
Похоже здесь ответа мы не найдем. А жаль.



28.05.2009 Дмитрий
У меня не отображает почемуто:
This div will be replaced



var s1 = new SWFObject('/pl/player.swf','ply','470','320','9','#ffffff');
s1.addParam('allowfullscreen','true');
s1.addParam('allowscriptaccess','always');
s1.addParam('wmode','opaque');
s1.addParam('flashvars','file=http://content.longtailvideo.com/videos/flvplayer.flv');
s1.write('mediaspace');
(вот так отображает, хотя ставлю четко как написано и директории свои)
А через embed... другой плеер грузит - вчем дело подскажите



31.05.2009 wapec
Проблема, как и у Дмитрия постом выше - подскажите нам!



03.06.2009 Никита
А вот у меня такая проблема когда видео играет жмёш на паузу и сразу изчезает звук и ролик не останавливаетса а матает с большой скоростью вперёд ! помогите пожалуйста исправить ошибку чтобы ролик останавливался когда жмёш на паузу ! <br><br><script type="text/javascript" src="swfobject.js"></script>
<div id="http://filmsonline.do.am/_flv.swf">Здесь можно написать что то, если вдруг не будет грузится плеер. Возможно не включен flash в браузере.</div>
<script type="text/javascript">
var so = new SWFObject('player.swf','mpl','600','400','8');
so.addParam('allowfullscreen','true');
so.addParam('flashvars','file=http://filmsonline.do.am/_flv.swf');
so.write('http://filmsonline.do.am/_flv.swf');
</script>



03.06.2009 Влад
Этожэ очень лехко !



04.06.2009 Никита
Ну помог бы тогда если это лехко ! Выручите пожалуйста а то мне самому не как



10.06.2009 Барик
Люди будьте так любезны помоч тупоголовому как зделать 10 серий примерно в одном плеере
и если возможно поподробней а то я чайник в этом деле



22.06.2009 гисс
У меня при параметре start отличном от 0 начинает с нуля воспроизведение
s10731.addVariable('start','200');


1 2 3 4 5 6 7 8 9 >>>

Добавить свой комментарий


Ваше имя(* обязательно)


Текст сообщения(* обязательно)









 
 
  запомнить

 
Copyright © 2003-2014 WeBi Constructor
Rambler's Top100