2013-04-05 4 views
1

Я прочитал https://developers.google.com/tv/android/articles/hls?hl=en и не понял, что означает «Адаптивная потоковая передача - автоматически адаптируется к пропускной способности или доступности полосы пропускания.»? Работает ли он только тогда, когда игрок начинает играть или играет слишком часто?Как реализовать плавный поток?

В моей практике видео начинается с качества в соответствии с текущей полосой пропускания; Для exmaple .m3u8 файл содержит список ссылок и полосы пропускания:

#EXTM3U 
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=1950000 
http://link1.M3U8 
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=1500000 
http://link2.M3U8 
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=1200000 
http://link3.M3U8 
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=950000 
http://link4.M3U8 
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=800000 
http://link5.M3U8 
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=700000 
http://link6.M3U8 

Например моей текущей пропускной способность 1600000, игрок (VideoView) начинает воспроизведение видео с линии 2. Во время воспроизведения, моя полоса пропускания становится 900000, но игрок все еще продолжает воспроизводить видео из ссылки 2 с задержками буферизации.

Правильно ли работает плеер, или он должен переключиться на ссылку 5?

Если это правильно, можно ли каким-либо образом переключить видеосвязь без перезапуска видео?

Спасибо!

Обновление: Испытательное устройство Logitech Reveue, android 3.2. Видеопроигрыватель - VideoView.

ответ

1

Прежде всего - манифест вашего показа HLS aka HTTP Live Streaming не Microsoft SmoothStreaming.

Каждый сегмент в HLS обычно составляет 10 секунд.

Вы не упомянули, что такое ваш плеер, но я предполагаю, что это GoogleTV, так как это то, с чем вы связались с этим вопросом. Различные игроки ведут себя по-разному, однако основная идея одна и та же. Игрок измеряет время, необходимое для получения каждого сегмента, и, если он вовремя, он имеет тенденцию сохранять его одинаковым, если потребовалось слишком много времени, он попытается выбрать полосу пропускания, где он может получить сегмент или два, прежде чем он понадобится играть в нее. Если ваши задержки буферизации видения являются ошибкой. Вы должны иметь возможность посмотреть в файле журнала, чтобы узнать, что делает игрок при воспроизведении контента и почему он не переключается на другую полосу пропускания.

+0

«Каждый сегмент в HLS обычно составляет 10 секунд». Я проверил, видео делится на сегменты по 2 секунды каждый, это нормально? – Sinigami

+0

Я использую VideoView в качестве игрока. Что значит «Google Tv player» – Sinigami

+0

Спасибо, что ответили. – Sinigami

 Смежные вопросы

  • Нет связанных вопросов^_^