目前,小弟在做基于 ffplay 的播放器,目前碰到个问题。
有这么个场景,服务端那边跟播放器一个 ts 链接里,有可能碰到 264 数据后面直接紧跟着 265 的数据。
而播放器不知道码流切换了,264 的 AVCodec 碰到 265 的数据,当然就报错,导致播放器卡住。
现在在想,如何不修改服务端的情况,264 解码器识别出切 265 了,还有 265 解码器识别出切 264 了。
尝试在 libavcodec 里的 h2645_parse.c 里把错误识别,抛出去,但是可能小弟对 ffmepg 还不够熟悉,有些正常解码 264 的情况也会有解码失败的报错。
所以,有大神能指导下吗?想要直接去拦截比特数据,找起始码 0001 ,识别 264 、265 ,但是这好像要 ffmpeg 很底层,稍上层拿到的都是 pkt ,frame 。这也太难了
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.