flv.js播放h264,部分视频在部分浏览器播放不了

开始以为是硬解兼容性问题,浏览器开软解就行了。

实际测试,在某种情形下,还是可以播放出来的。

出问题的视频,用​​h264分析格式,是h264 main ,level 52,且sps里面带了00 00 03竞争码

首先测试,将竞争码00 00 03 还原

即 ebsp转rbsp,丢给chrome和火狐播放。chrome能解码了,火狐还不行。

接着修改sps的level,到51。修改sps里面的level描述,改成0x33,不知道有啥影响,火狐能解码了。

最后看flv.js的源码

发现,flv.js解析sps时,是进行了ebsp转rbsp转换,然后解析出视频信息的,但是喂解码器时,是直接原始的sps丢解码器。修改之后:

重新用rbsp封装avcc头,就可以了。

火狐的sps修改如下:

目前只在部分win7系统的旧浏览器,发现这个bug。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值