为了账号安全,请及时绑定邮箱和手机立即绑定

iOS根据ts文件路径封装成m3u8文件及m3u8播放

标签:
iOS

置顶感谢:

https://www.jianshu.com/p/4b15f79cdc33
https://www.jianshu.com/p/75aa645531d2

  首先声明,我对m3u8和ts视频文件和视频播放流媒体相关的知识并不懂。我写这个博客只是为了记录一下我开发中遇到的问题和我的解决思路,如果能帮到你就更好了。

我的需求

  开会时提到,应用中已有直播功能,需要做直播回放。后台初始计划返回ts 文件的完整地址(http://xxxxxxx.ts)列表样式。一头雾水,跳进百度谷歌开始各种查。下面是我查到的我认为有效的信息。

资料查询

  m3u8这个文件可以用你可以下载下来,用txt格式打开看下,基本上文件并不大,打开来看就是一个列表,除去开头的和结尾的一些信息以外,中间部分的意思就是某个ts文件(一般用的都是相对路径)有多久的播放时长,m3u8相当于把这些片段连起来,构成一个完整的视频。

  所以,对于当前项目的需求的话,解决思路就是通过后台提供的ts文件路径表,我在App端创建一个m3u8文件,然后根据m3u8的格式,创建一个字符串写入到m3u8文件中。然后,用播放器去播放本地的m3u8文件。至此,我以为可以,但是并没有播放出来。

尝试方案:

先列出来我的尝试方案:
1.本地创建m3u8文件,文件中写入头尾数据和ts播放列表(相对路径)。  结果:失败(原因:播放器读取这个m3u8 文件之后,根本找不到ts文件,肯定播放失败);
2.本地创建m3u8 文件,文件中写入头尾数据和ts播放列表(完整路径)。结果:失败(具体原因不详);
3.本地创建m3u8 文件,并且把ts文件下载到和m3u8 同一个文件夹下,m3u8 文件中写入头尾数据和ts播放列表(相对路径)。结果:失败(具体原因不详,但是应该和尝试方案2原因类似)。

  大致尝试了以上三种方案,均以失败告终,于是又跳进百度谷歌各种查,发现这篇博客。需要搭载一个本地服务器,我的尝试方案2哥方案3好像就缺少了这个环节。果真,按照这篇博客的介绍,给我的代码稍作改动,视频播放出来了,大功告成。

结论:

  总结:iOS 播放ts文件,需要先根据ts文件名列表生成m3u8文件,(如果m3u8 中放的是ts的相对路径,需要把ts文件下载到和m3u8 同样目录下).在手机本地搭载本地服务,即可播放。方案总结如下:


webp

iOS播放TS文件思路图.png



作者:极客飞
链接:https://www.jianshu.com/p/fcdbeb055744


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消