我搜索了StackOverflow上所有類似的問題,但沒有找到答案來解決我的問題。HTTP Live流媒體iOS不刷新索引.m3u8文件
我想從我的Linux計算機(openSuSE 12.1)將一些電影流到我的iPad。我使用ffmpeg轉換它們,使用我自己的分段器對它們進行分段,將它們放在我的apache2服務器的www文件夾中,並放置在.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)。我也觀看了來自Apache服務器的access_log,我看到了播放列表的第一個加載,然後是所有5個段的後續加載,並停止到那裏。它甚至不嘗試進一步刷新m3u8文件。
如果它的事項 - 的iOS 5.0,iPad 2的Wi-Fi版而已,沒有越獄
想法?我究竟做錯了什麼?
這只是一個想法,但在請求playlist.m3u8文件時,Expires HTTP標頭的價值是什麼?用戶代理可能緩存它? – joerick
嗨,好主意。我檢查了httpd.conf文件,並且所有包含Expire設置。沒有。所以我專門設置: ExpireByDefault「現在」 所以現在它應該總是正常結束。 由於您的輸入,我決定使用WireShark檢查通信。以下是我的觀察: 1)首先用部分數據提取我的播放列表;條件是:if-modified-after,這意味着它檢查變化; 2)服務器發送文件,因爲它已被更改(第一次下載:)) 3)iPad下載所有的ts文件並停止 4)沒有更多的查詢從iPad ... 想法? –
要排除iPad,請嘗試使用支持它的VLC播放器的夜間版本觀看HLS。打開消息窗口,查看VLC是否正確重新讀取播放列表文件。如果它適用於VLC,那麼這與iPad有關。 一些VLC夜魘被破壞,所以你可能想嘗試這裏的客戶端肯定有效 - http://demo.anevia.com:8080/ott/vlc.php – FiddleMeRagged