.m3u8是Apple HTTP Live Streaming,對吧?我認爲你所要做的只是違背該技術的設計。您應該公開原始文件並允許它被下載。
從我所瞭解的情況來看,在流媒體設計中,您並沒有明確地訪問這些作品以便將它們放回到一起。例如,Netflix通過Silverlight使用流式傳輸,其中一個好處(對Netflix來說)就是它可以保護數據免受保存,就好像它被下載一樣。此外,由於HTTP Live Streaming允許流在運行中切換比特率,因此它的設計使得每個時間片可以以任意數量的比特率進行編碼,而且它們都不是規範的。
理論上,可能有一種方法可以收集特定比特率的所有片並將它們重新編碼爲單個視頻。但蘋果的播放API不會給你這樣的機會。
而不是HTTP實況流,請考慮漸進式下載。只需提供原始視頻文件(如果需要,將其轉碼爲iPhone所喜歡的內容)。如果您的服務器配置正確,則回放API將執行小的請求來獲取文件的特定塊,而不是一次完成所有的事情,並且這恰好是正確流式傳輸的第二步。我希望我能找到我讀到的地方,所以我可以給它正確的名字。如果您需要快速解決方案,Amazon S3就可以用這種方式進行服務。
但要注意,Apple's docs說,
如果您的應用程序提供的視頻超過 蜂窩網絡和視頻 超過要麼持續10分鐘或 5 MB的數據在5分鐘內, 你需要使用HTTP Live 流媒體。 (漸進式下載可以 用於較小的剪輯。)
很好的問題 - 據我所知,的MPMoviePlayerController無法從本地URL(文件系統)作爲的MPMoviePlayerController的網絡部分發揮M3U8流將總是試圖談判「正確的「帶寬/從m3u8片段的配置文件 - 這部分似乎並沒有在本地工作,併成爲showstopper。如果這是正確的(如我所假設的),那麼你將不得不在服務器上提供和替代文件 - > MP4。 – Till 2011-03-24 19:49:16