跳至主要內容

RTMP播放兼容性问题

ZLMediaKit小于 1 分钟

一般来说 rtmp 的规范是 先发送 metadata ,然后发送 config 帧,然后发送关键帧 然后是普通帧

config 帧收到后就能初始化解码器了

但是有些流不太一样,并没有收到视频的 config 帧就收到其他帧了

这个时候视频 Track 并没创建和初始化

初步怀疑是 nginx 的 rtmp 服务器兼容性不好

zlm 的推流器会严格按照先发送 metadata ,然后发送 config 帧,然后发送关键帧 然后是普通帧的流程来做

也会缓存所有的 config 帧

ffplay 能播放成功是因为它是根据数据量和时间来判断播放成功

只要数据量达到一定量或者时间达到一定时间 就会触发播放成功的事件

这样做的好处是 播放成功率高 坏处是打开视频时间长