使用flv.js进行不同分辨率无缝切换

    自从上次写完一个简单的视频点播网页后, 突然发觉播放功能太简单了, 平常看视频网站都有个分辨率切换的功能,特别是youtube, 分辨率切换时,可以不用停止视频, 感觉有点神奇。于是查了MSE相关资料,发现html5对于这块天然就有很好的支持。简单来说, 当你新分辨率视频流到来时, 要给一个新的init segment到sourcebuffer里,之后跟着你新的分辨率的media segment就行了, so easy。

一、flv.js

    之所以使用flv.js, 是因为我对比了下video.js, 发现video.js是直接使用video.src属性就行播放的(也许他有用到mse只是我没看到~~~), 而flv.js 是使用mse就行播放的, 要想无缝切换视频,就必须使用mse。

    闲话不多说,放链接Demo地址 。 本身flv.js就支持不同文件块之间的切换,在这基础上,要进行多个分辨率切换就简单很多了。唯一复杂点的地方应该就是不同分辨率的flv文件块的生成上。

二、使用ffmpeg进行分片

    使用如下命令

ffmpeg -i $FILE -c copy   -f segment -segment_time 20 -segment_list out.list -segment_list_type csv -segment_format_options flvflags=add_keyframe_index out%03d.flv

另外,给大家一个脚本,这脚本用来生成json数据给video.html访问的

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值