HTTP Live Streaming iOS не обновляет индексный файл .m3u8

Я искал все похожие вопросы на StackOverflow, но не нашел ответа на свою проблему.

Я пытаюсь транслировать некоторые фильмы с моего компьютера с Linux (openSuSE 12.1) на свой iPad. Я конвертирую их с помощью ffmpeg, сегментирую с помощью собственного сегментатора, помещаю в папку www моего сервера apache2, а также помещаю в плейлист .m3u8. Пока здесь - все ок!

Я начинаю воспроизводить фильм (HTML-страница с тегом), и он воспроизводится хорошо, но только первые пять сегментов, которые были загружены при первой загрузке плейлиста. HTML-страница (браузер, или плеер - без понятия) не обновляет (повторно скачивает) плейлист с сервера. Вот как выглядит мой файл плейлиста .m3u8:

#EXTM3U
#EXT-X-MEDIA-SEQUENCE:19
#EXT-X-TARGETDURATION:8

#EXTINF:8,
http://192.168.1.4/segment_19.ts
#EXTINF:8,
http://192.168.1.4/segment_20.ts
#EXTINF:8,
http://192.168.1.4/segment_21.ts
#EXTINF:8,
http://192.168.1.4/segment_22.ts
#EXTINF:8,
http://192.168.1.4/segment_23.ts

Сегменты находятся в той же папке, что и файл плейлиста, сегменты правильно закодированы (потому что я вижу как минимум первые пять :D). Я также смотрю access_log с сервера apache и вижу первую загрузку списка воспроизведения, затем последующую загрузку всех 5 сегментов, и она останавливается до этого момента. Он даже не пытается обновить файл m3u8.

Если это имеет значение - iOS 5.0, iPad 2, только Wi-Fi версия, без джейлбрейка

Идеи? Что я делаю не так?


person Emerson Fittipaldi    schedule 19.11.2011    source источник
comment
Это всего лишь идея, но каково значение HTTP-заголовка Expires при запросе файла playlist.m3u8? Возможно, пользовательский агент кэширует его?   -  person joerick    schedule 19.11.2011
comment
Привет, хорошая идея. Я проверил файл httpd.conf и все настройки истечения срока действия. Их не было. Поэтому я установил исключительно: ExpireByDefault now Так что теперь он всегда должен истекать нормально. Благодаря вашему вкладу я решил проверить связь с WireShark. Вот мои наблюдения: 1) он сначала получает мой плейлист с частичными данными; условие: if-modified-after, что означает проверку изменений; 2) сервер отправляет файл, т.к. он был изменен (первая загрузка :) ) 3) iPad скачивает все файлы ts и останавливается 4) запросов от iPad больше нет... Идеи?   -  person Emerson Fittipaldi    schedule 19.11.2011
comment
Чтобы исключить iPad, попробуйте посмотреть HLS с помощью ночной версии проигрывателя VLC, которая его поддерживает. Откройте окно сообщений, чтобы увидеть, правильно ли VLC перечитывает файл списка воспроизведения. Если это работает с VLC, то это как-то связано с iPad. Некоторые из ночных игр VLC не работают, поэтому вы можете попробовать клиент здесь, который определенно работает — demo.anevia.com:8080/ott/vlc.php   -  person FractalDoctor    schedule 19.12.2011


Ответы (1)


Плеер (платформа) автоматически обновит файл m3u8. Не нужна настройка http Expires в ios и android. вы можете просмотреть журнал доступа httpsserver.

person BollMose    schedule 27.02.2013