dadv: (chuck)
Choose your future ([personal profile] dadv) wrote2012-01-06 09:43 pm

HTTP Video Pseudostreaming

Прикрутил к своему апачу поддержку HTTP Pseudostreaming для видео в форматах FLV и MP4.

Немного теории: псевдостримингом называют запрос с сервера и отдачу сервером видеофайлов не только с начала, но и с произвольного смещения (байтового или секундного) через URL вида http://server/file.flv?start=NNN или http://server/file.flv?start=SEC.MS

В ответе сервер отдаёт сначала метаданные, потом видеопоток с указанного места. Для apache-2.2 модуль mod_flvx.so реализует превдостриминг для FLV и mod_h264_streaming.so для MP4. Файлы FLV могут не содержать в себе таблицы смещений ключевых фреймов, которая необходима для псевдостриминга; команда flvtool++ добавляет эту таблицу в FLV-файл. flvtool++ под FreeBSD есть в портах.

В качестве проигрывателя, встраиваемого в веб-страницу (в ЖЖ тоже встраивается) попробовал JW Player 5.8. Не без недостатков, но вполне рабочий. Для пробы переделал несколько своих старых LJ-постов на свой сервер, например.

Методы встраивания плеера через JavaScript, автоматически определяющие поддержку HTML5 или Flash и выдающие подходящий код клиентскому устройству (браузеру или планшетнику) не проходят в ЖЖ. Тут приходится использовать просто <embed>:

<lj-embed>
<embed type="application/x-shockwave-flash"
flashvars="file=http://www.grosbein.net/video/sizo.mp4&provider=http&duration=229"
id="sizo" name="sizo" width="640" height="360"
allowfullscreen="true" allowscriptaccess="always"
src="http://www.grosbein.net/jwp/player.swf" />
</lj-embed>

Определенная корявость плеера компенсируется отсутствием завязки на внешние сервисы, что дорогого стоит. Внезапно не снесут файл, никакой рекламы, кроме нескольких секунд логотипа плеера в начале воспроизведения в уголке.

Музыку тоже воспроизводит, хотя и без pseudostreaming:



Или максимально компактно:


Post a comment in response:

This account has disabled anonymous posting.
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org