Потоковое видео в игровой среде с использованием videojs

Недавно я работал с моим другом над веб-приложением в игровой среде 1.2.4, где мы пытались передать видео, хранящееся в каталоге /public проекта, с помощью проигрывателя videojs. Это видео было в формате .mp4, но я думаю, что это не имеет отношения к этому вопросу. Мы обращались к видео напрямую, без использования каких-либо скриптов на стороне сервера. Мы обнаружили 2 проблемы, возникшие во время наших тестов.

  1. Видео никогда не буферизировалось до конца. Только несколько секунд вперед всегда сохранялись в буфере.

  2. При воспроизведении видео, если мы нажмем паузу, а затем воспроизведем, воспроизведение видео полностью прервется. Иногда это будет буферизовать видео навсегда, в других случаях это будет выглядеть так, как будто оно продолжается с воспроизведением видео, но оно будет показывать только черный экран и без звука.

Когда мы попробовали тот же скрипт videojs с файлами, хранящимися не в веб-приложении, а обслуживаемыми с некоторых других серверов, он работал без нареканий. Даже если другой сервер был просто котом, работающим на том же компьютере. Поэтому я предполагаю, что это должно быть проблемой с игрой сервера, используемой для запуска своих приложений. Мы запускали приложение с помощью команды «play run» и с настройками по умолчанию. Кто-нибудь может объяснить это странное поведение? Что-то нужно в настройках указать или это просто баг? Спасибо.


person Laky    schedule 22.04.2012    source источник
comment
как вы получаете доступ к видео? вы поместили его в папку /public/ или вы транслируете его через контроллер?   -  person Dominik Dorn    schedule 22.04.2012
comment
Как я сказал в вопросе, мы помещаем видео в папку /public/. Если быть точным, я думаю, что это был /public/images/. Мы не использовали код контроллера, мы обращались к нему напрямую.   -  person Laky    schedule 22.04.2012


Ответы (1)


Я думаю, что это проблема с поддержкой range в netty / контроллере воспроизведения, обрабатывающем общую папку. ( http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35 )

Вы должны быть в состоянии проверить это с помощью curl.. например. как описано в этом посте >http://linuxandfriends.com/2008/11/01/curl-split-a-file-and-download-simultaneous-from-multiple-locations/

Однако в рабочей вы обычно запускаете игру с lighttpd/nginx (чтобы разрешить привязку порта 80), поэтому файлы из общей папки обслуживаются чем-то другим, а не играй... тогда у тебя не должно быть проблем.

person Dominik Dorn    schedule 22.04.2012
comment
Спасибо, я думал, что это будет что-то в этом роде, но мне было любопытно, в чем именно была проблема. Я постараюсь проверить это в ближайшее время и потом приму ваш ответ, если он окажется правильным. - person Laky; 24.04.2012