RTMP 服务器无法流式传输视频(仅音频)

RTMP server can't stream video (only audio)

我现在正在实施一个 RTMP 服务器,除了视频流之外一切正常。我可以毫无问题地流式传输音频(使用 OBS 进行流式传输),并通过 VLC 播放它。问题是 VLC 播放音频,但没有视频。我现在正在做的是转发我从 OBS 收到的每条音频和视频消息,我获取原始有效负载(audio/video 数据)并放入 0 型块,因为我已经看到几乎每个实现都做这个。我不知道我是否遗漏了应该对视频数据进行的某种处理。

如果我尝试使用 ffmpeg 播放(将 RTMP 流保存到 flv 文件),那么我会得到以下输出:

[NULL @ 000001eb053ed440] missing picture in access unit with size 5209 [AVBSFContext @ 000001eb053ecbc0] No start code is found. rtmp://192.168.1.2/app/publish: could not find codec parameters Input #0, flv, from 'rtmp://192.168.1.2/app/publish': Duration: N/A, start: 0.000000, bitrate: N/A Stream #0:0: Data: none Stream #0:1: Video: h264, none, 1k tbn Output #0, flv, to 'av.flv': Output file #0 does not contain any stream

上面写着 missing picture in access unit with size 5209No start code is foundcould not find codec parameters。我在这里错过了什么?我知道我转发的有效载荷与我在服务器中收到的完全一样,我什至对我收到的视频有效载荷和我发送的视频载荷进行了散列检查,结果完全一样。任何帮助将不胜感激。

已按照@szatmary 的建议修复:在发送任何 audio/video 消息之前将序列 headers 重新发送到每个播放客户端。