关于MPMoviePlayerController 缓存播放的一些技术准备

如果是视频文件,比如Mp4,avi,rmvb等可根据下面的这边文章推荐的Demo(http://code4app.com/ios/5292c381cb7e8445678b5ac2),经过测试可以进行同步缓存播放.

iOS开发笔记,简单实现视频音频的边下边播

 

如果是视频流MU38上面Demo,行不通.(视频流是多文件,下载单个肯定不行)

视频流缓存播放实现步骤.

以优酷为例(经测试爱奇艺,搜狐,新浪都可以)

1.解析M3U8  直接通过M3U8Kit 解析

或js解析

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSString *lJs = @"document.documentElement.innerHTML";
    NSString *lHtml = [webView stringByEvaluatingJavaScriptFromString:lJs];
    // NSString *lJs2 = @"(document.getElementsByTagName(\"video\")[0]).getElementsByTagName(\"source\")[0].src";  //qiyi
    NSString *lJs2 = @"(document.getElementsByTagName(\"video\")[0]).src";  // youku,tudou,ku6 ,souhu
    NSString *lm3u8 = [webView stringByEvaluatingJavaScriptFromString:lJs2];
    NSLog(@"video source:%@",lm3u8);
}

 

2.下载(待解决)

3.播放

 

相关资料

MPMoviePlayerController 获取视频缓冲大小

关于流媒体(m3u8)的播放与下载

在查找资料时看到

polyv-ios-client-demo 保利威视(POLYV)视频直播云服务 (收费的)

MPMoviePlayerController 只支持能在iPhone或者iPod上直接播放(不借助其他播放器)的格式

.mov, .mp4,.mpv, and .3gp

反过来就是说, rmvb  mkv 等一些比较常用的是不支持的,只能靠别的(如ffmpeg等)

为什么奇艺要把 iPad 客户端上的 MP4 流改为 TS 流呢?TS 相对于 MP4 有什么优势呢? (来自知乎)

[AS3]HLS分片和m3u8

HTTP Live Streaming直播(iOS直播)技术分析与实现

 

Demo:关于m3u8的解析、下载、拼接和本地播放,好像可以,不知性能如何

https://github.com/luoxubin/XB2 

iOS-视屏播放AVPlayer&MPMoviePlayerController AVPlayer自带缓存

 

资源:

http://pl.youku.com/playlist/m3u8?vid=XMTI4NzQyMDM0MA==&type=flv&ts=1441699625&keyframe=0&ep=eyaQG0%2BEX8gC4CbYiD8bM3mzdH9dXJZ3kmaB%2F5gDScZQNejC6DPcqJuxSf8%3D&sid=944169962557012dea08b&token=6170&ctype=12&ev=1&oip=992603906

http://static.tripbe.com/videofiles/20121214/9533522808.f4v.mp4

http://v.chuanke.com/vedio/1/08/65/10865711ff6997a671e6622352385208.mp4

posted @ 2015-09-11 11:16  sixindev  阅读(701)  评论(0编辑  收藏  举报