FFmpeg m3u8文件返回Invalid data found when processing input错误

结论

1.检查存储访问权限是否正常,因为你可能有m3u8文件的访问权限却不一定有分片视频文件的访问权限。
2.给avformat_open_input增加配置(“allowed_extensions”,“ALL”).参考如下代码

bipPlayer.setOption(DefaultBIPPlayer.OPT_CATEGORY_FORMAT,"allowed_extensions","ALL");

过程

一开始出现这个问题的时候我以为是我编译配置有问题,没有支持m3u8格式。后来发现有的m3u8文件可以解析,所以暂时排除格式不支持问题,接着考虑分片视频格式不支持,所以用官网下载的ffprobe看了一下分片视频的格式,是mpegts.正常来说是支持的。而且单独播放分片视频可以成功播放。所以排除分片视频格式问题。同时这个m3u8文件浏览器和网易云音乐都可以播放,所以排除文件格式错误问题。而且有一个m3u8文件网上地址就可以播放,下载下来的本地地址就识别不出来。就很奇怪。难道真的是我哪个编译配置没有配好无法播放本地m3u8?
接着我解压了网易云,发现他也是使用了ijkplayer,然后就编译ijkplayer,打算如果这个库能播放就参考他的编译配置改改看行不行。编译完后播放报If you wish to override this adjust allowed_extensions, you can set it to 'ALL’大致意思就是文件名后缀非法,需要添加白名单。然后搜索了一下,大致意思就是因为ffmpeg读取的m3u8文件可能被嵌入恶意代码,所以为了安全起见ffmpeg加了限制,只通过特定文件名后缀的视频分片,比如xxx.ts之类的而一些9a4c之类的乱码后缀就无法读取。相关博客
而后根据ijkplayer的报错,在ijkplayer的issues里找到了上面的解决方案。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值