我有一个播放列表文件,它会给我另一个播放列表文件,该文件也会连续给我另一个播放列表文件。
如何播放此播放列表文件?我在哪里可以找到视频来源?
例如,我有一个播放列表文件。那是
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=355670
http://slive.ytn.co.kr:1935/live/ylive_0624_1.sdp/playlist.m3u8?wowzasessionid=195968950
如果我访问http://slive.ytn.co.kr:1935/live/ylive_0624_1.sdp/playlist.m3u8?wowzasessionid=195968950
,它会向我提供其他播放列表文件。
#EXTM3U
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:894
#EXTINF:11,
media_894.ts?wowzasessionid=195968950
#EXTINF:10,
media_895.ts?wowzasessionid=195968950
#EXTINF:11,
media_896.ts?wowzasessionid=195968950
如果我访问结果,它还会给我播放列表文件。
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=373764
http://slive.ytn.co.kr:1935/live/ylive_0624_1.sdp/playlist.m3u8?wowzasessionid=1093961187
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=382539
http://slive.ytn.co.kr:1935/live/ylive_0624_1.sdp/playlist.m3u8?wowzasessionid=1566364859
etc...
虽然我可以在iphone中的safari中播放网址http://slive.ytn.co.kr:1935/live/ylive_0624_1.sdp/playlist.m3u8?wowzasessionid=195968950
,但我想在自己的iphone应用中播放此网址。
我怎么能自己玩m3u8文件扩展名?
答案 0 :(得分:1)
编辑 - 可能是this SO question的副本,但如果您想要保留该文件,则需要按照下面列出的方式进行。
简单方法=在您的应用中嵌入UIWebView,并使用.m3u8文件的网址对其进行初始化。这将打开了理解m3u8的quicktime,它将在下载时播放。
硬路=手动为m3u8会话的每个部分创建请求/响应,然后从播放列表文件依次下载每个.ts文件。当您获得视频的每个“块”时,将其写入文件或内存,然后在其后附加下一个“块”。我已经为一个h.264编码的.m4v文件做了这个,作为一个m3u8,它工作(我的代码太难看了,粘贴)但伪代码是:
如果您只需要播放文件,请选择简单的路线。如果你需要坚持下去,你需要做m3u8舞蹈。
* HTTP Scoop对于了解m3u8“协议”的工作方式以及确保请求/响应标头的准确性非常有用 - http://tuffcode.com/
*我使用了vanilla NSURLConnection同步调用,因为我的代码只是一个概念证明,其他网络框架如AFNetworking将使这更容易。