FFmpeg m3u8文件返回Invalid data found when processing input错误
結(jié)論
1.檢查存儲(chǔ)訪問權(quán)限是否正常,因?yàn)槟憧赡苡衜3u8文件的訪問權(quán)限卻不一定有分片視頻文件的訪問權(quán)限。
2.給avformat_open_input增加配置(“allowed_extensions”,“ALL”).參考如下代碼
過程
一開始出現(xiàn)這個(gè)問題的時(shí)候我以為是我編譯配置有問題,沒有支持m3u8格式。后來發(fā)現(xiàn)有的m3u8文件可以解析,所以暫時(shí)排除格式不支持問題,接著考慮分片視頻格式不支持,所以用官網(wǎng)下載的ffprobe看了一下分片視頻的格式,是mpegts.正常來說是支持的。而且單獨(dú)播放分片視頻可以成功播放。所以排除分片視頻格式問題。同時(shí)這個(gè)m3u8文件瀏覽器和網(wǎng)易云音樂都可以播放,所以排除文件格式錯(cuò)誤問題。而且有一個(gè)m3u8文件網(wǎng)上地址就可以播放,下載下來的本地地址就識(shí)別不出來。就很奇怪。難道真的是我哪個(gè)編譯配置沒有配好無法播放本地m3u8?
接著我解壓了網(wǎng)易云,發(fā)現(xiàn)他也是使用了ijkplayer,然后就編譯ijkplayer,打算如果這個(gè)庫能播放就參考他的編譯配置改改看行不行。編譯完后播放報(bào)If you wish to override this adjust allowed_extensions, you can set it to 'ALL’大致意思就是文件名后綴非法,需要添加白名單。然后搜索了一下,大致意思就是因?yàn)閒fmpeg讀取的m3u8文件可能被嵌入惡意代碼,所以為了安全起見ffmpeg加了限制,只通過特定文件名后綴的視頻分片,比如xxx.ts之類的而一些9a4c之類的亂碼后綴就無法讀取。相關(guān)博客
而后根據(jù)ijkplayer的報(bào)錯(cuò),在ijkplayer的issues里找到了上面的解決方案。
總結(jié)
以上是生活随笔為你收集整理的FFmpeg m3u8文件返回Invalid data found when processing input错误的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javaweb项目案例:员工管理系统
- 下一篇: 二、结合各种图形库实现各种demo(21