Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1129401
  • 博文数量: 188
  • 博客积分: 1156
  • 博客等级: 少尉
  • 技术积分: 2173
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-16 15:01
个人简介

go!go!go!

文章分类

全部博文(188)

文章存档

2024年(2)

2023年(11)

2022年(13)

2021年(15)

2020年(38)

2019年(3)

2018年(6)

2016年(1)

2015年(16)

2014年(13)

2013年(24)

2012年(46)

分类: 服务器与存储

2013-07-16 00:16:30

最近支持了两个M3U8的高清点播服务,有些心得需要总结如下

问:为何点播要用M3U8来搞?存成一个文件不更好吗?

答:1. 下载速度: 一般下载对于高清视频总会出现观看不太流畅的问题(P2P除外)
      2. 磁盘:高清点播长视频一般都是G级别的,对于大文件下载来说,单盘的IO压力较大。如果能在磁盘上将大文件打散分片存储,单盘IO将会大大缓解
      3. 容错:下载或存储过程中,1G的文件中任一字节出错将导致 可能会导致改视频的失效,而被切成小碎片后,容错将变得相对简单,只需补全出错的切片即可。
     4. 分发:大文件分发起来相对小文件比较困难,下载耗时长,特别是在服务初期,源服务器需要承受极高的磁盘IO请求
     5. 简单:simple is beautiful~

问:CDN对m3u8点播需要做哪些支持?

答:受限于播放器与源站之间的交互行为的不确定性,给M3U8做缓存 加速服务时,最好先抓包 分析下 在播放器 与源站直接交互时的请求与响应头,这样会加速解决在经过CDN时遇到的故障。
     特别是需要注意:
      1.源站明确告诉播放器哪些内容不能缓存,明确cache-control:no-cache的,尽量不要与源站配置一致,如可能影响到播放器的xml控制文件及M3U8文件(分析其内容是否会变化)
     2.长连接:源站与播放器直接的交互是开启长连接,Connection:keep-alive,如果是长连接的话,在拿wireshark 打开包时,点击follow stream时,将可以看到一个stream流中有多次GET请求及响应,一般的播放及拖拽卡顿,很有可能是长连接没有打开,注意开启 CDN设备到 播放器,及CDN到源站的长连接。这样可以将miss时对用户的体验降到最低。

问: M3U8支持中遇到的一些问题,及优化措施

答:1.提前预加载,获取所有m3u8列表,跑个脚本,先全部预加载到CDN设备上。比较土,但不影响后续观看体验。
     2.实时预加载,在CDN设备上首次获取M3U8文件时,在CDN端对M3U8进行解析,自行在CDN内部完成对视频文件的预热。相对更理想,但在CDN端做解析,会让M3U8从源站到客户端加大延迟。相对1来说稍复杂点。


总结:CDN视频加速夹在播放器与服务端,总是要揣摩播放器的一些行为,如果播放器与服务器之间没有啥隐晦的规则还好,反之将在联调之际灰常蛋疼。

阅读(17936) | 评论(2) | 转发(1) |
给主人留下些什么吧!~~

qianguozheng2016-06-13 14:00:02

楼主说的非常在理,灰常的但疼。
最近发现通过手机网页访问优酷视频存在m3u8请求,我们在其网络通道上架设了Squid处理一些特殊业务,发现存在类似的问题。即播放优酷视频卡顿甚至无法播放的情况。

qianguozheng2016-06-13 13:59:59

楼主说的非常在理,灰常的但疼。
最近发现通过手机网页访问优酷视频存在m3u8请求,我们在其网络通道上架设了Squid处理一些特殊业务,发现存在类似的问题。即播放优酷视频卡顿甚至无法播放的情况。