m3u8ToMP4

m3u8ToMP4

GitHub地址

  • 这个Demo暂时 DEMO里第一个Controller是简单的使用AVFoundation.FrameWork拼接视频
  • 第二个Controller里是AVPlayerItem无缝切换播放两段视频 2016-01-29 11:00:19
  • 第三个controller是本地起个轻量级服务器来播放m3u8视频 2016-01-29 11:00:37

最近在研究m3u8的播放和缓存,所以工程名称是m3u8ToMP4

M3U8文件是指UTF-8编码格式的M3U文件。M3U文件是记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。

在线播放这块,视频格式被支持的话 AVPlayer是可以直接播放的。

缓存这块,只能拿到索引,把音视频一个一个下载下来,并且把索引也保存起来。但是下载后的视频(传个本地m3u8 URL)是无法播放的,对于播放缓存视频,这里我想到了三种解决方案:

1、视频拼接

把下载下来的视频片段拼接起来,这个Demo就是MP4的拼接。

2、本地搭建服务器

使用CocoaHTTPServer在本地搭建个服务器,把M3U8内的视频索引换为本地相对路径。这个Demo还没有出,以后有空实验下。
这个已经测试成功,在Demo里的第三个Controller。2016-01-29 11:01:45

3、拿到本地缓存的视频片段挨个播放

AVPlayerItem,一个视频对应一个item同时创建两个item来回切换着播放,[AVQueuePlayer insertItem:afterItem:]这样应该可以做无缝切换视频,还没有试验。Demo暂时还没
刚刚测试,这样切换播放两段视频可以无缝切换,请看Demo里第二个Controller 2016-01-27 18:32:10
这样方案1、2都没有多大必要了。方案1的好处是可以拼接一个完整的视频出来。

AVFoundation.FrameWork非常强大,除了音视频播放外,
还有音频、视频的拼接、剪切功能,视频的音频提取等功能,
有兴趣的可以深入研究。

这里有一个高端的视频拼接方案
拥有多种视频拼接方法: 上下拼接,左右拼接, 上上下下/左左右右式拼接。
感兴趣的自己看 Github地址

最近在土豆上看到了一个非常棒的纪录片

在用土豆APP缓存视频的时候产生了一个想法:

把这个缓存的视频提取出来,做收藏用。

但是用iTools把资源导出来后我傻眼了,它缓存的是m3u8文件,每一个视频段都是.ts结尾的,每段10s左右,一集有200多个ts文件,在Mac上使用QuickTime能正常使用,我就想是不是iOS也支持,写个Demo把他们拼接起来。

之前做过的项目有音频拼接,最近正好在学习swift,就干脆动手,用swift写一个视频拼接的Demo。

PS. 最近好忙。。。“最近”好忙
(*>.<*)。到底是“最近”好忙,还是我好忙,这是个问题( *_* ) 

后来写Demo时发现iOS的AVPlayer不支持这个ts,也没法拼接视频文件(ps.既然QuickTime支持,可以考虑移植到Mac上试试。pps.我对音视频格式也没有过多的研究所以不知道原因。)

但是,Demo都写了,得让我验证下行不行啊,我在腾讯视频上下了一集芈月传,发现腾讯视频缓存下来的是mp4格式的视频段,每段有5分钟,正和我意。于是放到工程里做测试用。

当然,除了试试osx平台行不行,我还需要找找其他渠道有没有视频供我下载

这么好的视频当然要分享出来了 传送门:宇宙:时空之旅

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,066评论 4 62
  • 抵抗实在的虚无者,无人青睐,靠近。因为他在谋杀每一个人,每一个团体,每一个集体,每一个民族,每一个国家,每一个app。
    住伤阅读 233评论 0 1
  • 之前看的关于客户流失预警R语言实现的文章,这里做下整理 这里是一个关于游戏客户的例子。步骤1:数据转换:增加周活跃...
    茶苯海阅读 3,604评论 2 6
  • 前些天,工作出了些差错,搅得我心神不安。那天晚饭后,父亲打来了电话,说:“赶明儿我去给你们送冬白菜,自家种的,你们...
    ZZY_765d阅读 164评论 0 0
  • 随着时代的变迁和文明的演进,一些职业消失了,同时也出现了一些新兴职业,程序员是最近几十年伴随着计算机和互联网时代催...
    野鸟阅读 619评论 2 2