HTTP Live Streaming для IPhone - PullRequest
       10

HTTP Live Streaming для IPhone

2 голосов
/ 07 февраля 2010

Я слежу за предложением Apple в http://tools.ietf.org/html/draft-pantos-http-live-streaming-01. Попробовав фиктивную потоковую передачу HTTP на мой iphone, я написал веб-сервис с Django, соответствующий файлу .m3u8. Я начинаю ответ с

#EXTM3U
#EXT-X-TARGETDURATION:#10
#EXT-X-MEDIA-SEQUENCE:#0

Затем я пишу URL-адреса сегментов (6 сегментов по 10 секунд каждый) внутри ответа:

#EXTINF:10,
http://...../sample_low-1.ts
...

и все. Я меняю часть, содержащую URL-адреса сегментов каждую минуту, поэтому теоретически я ожидаю непрерывного живого потока.

Однако, когда я проверяю поток с помощью iphone, я наблюдаю следующее:

Телефон подключается к ... m3u8, получает его содержимое, начинает загрузку файлов .ts и начинает показывать видео. Затем, после загрузки 6-го сегмента (последний сегмент в .m3u8), он достигает конца файла, не видит

EXT-X-ENDLIST

и ищет новый .m3u8. На этом этапе новый .m3u8 готов на сервере, так как я обновляю содержимое .m3u8 каждые 60 секунд.

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

Итак, очевидно, я где-то совершаю огромную ошибку. Любая помощь и предложения приветствуются.

Редактировать: Оказывается, что последовательность мультимедиа работает.

1 Ответ

0 голосов
/ 08 февраля 2010

Как отправить ответ обратно?
Если вы return объект ответа Django, то сервер просто отправляет ответ с шестью сегментами, а затем будет сидеть спокойно, ожидая новый запрос от клиента.
Если вы хотите непрерывно отправлять данные с сервера, вместо этого вы должны yield получить результат и использовать какую-то синхронизацию, чтобы вы были уверены, что не отправляете одни и те же данные снова и снова.

...