目前,小弟在做基于 ffplay 的播放器,目前碰到个问题。
有这么个场景,服务端那边跟播放器一个 ts 链接里,有可能碰到 264 数据后面直接紧跟着 265 的数据。
而播放器不知道码流切换了,264 的 AVCodec 碰到 265 的数据,当然就报错,导致播放器卡住。
现在在想,如何不修改服务端的情况,264 解码器识别出切 265 了,还有 265 解码器识别出切 264 了。
尝试在 libavcodec 里的 h2645_parse.c 里把错误识别,抛出去,但是可能小弟对 ffmepg 还不够熟悉,有些正常解码 264 的情况也会有解码失败的报错。
所以,有大神能指导下吗?想要直接去拦截比特数据,找起始码 0001 ,识别 264 、265 ,但是这好像要 ffmpeg 很底层,稍上层拿到的都是 pkt ,frame 。这也太难了