我参与构建实时消息传递协议解析器。我正在从RTMP数据包中收集视频/音频数据。现在我需要知道容器格式以及所使用的编解码器在任何播放器中播放视频。在我从RTMP数据包获得的视频数据中,我知道所使用的编解码器(例如,On2 VP6)。但我不知道如何知道我收到的音频/视频流的容器。那么我应该假设RTMP只支持FLV容器???或者我可以从任何其他容器格式获取音频/视频数据包?如果是,那么如何从RTMP数据包中的信息中了解RTMP数据中使用的容器类型?RTMP的Adobe规范没有提供有关音频/视频数据容器的任何信息。有什么帮助???我被困在这里已经有一段时间了。
答案 0 :(得分:0)
这是一个有点错误的问题。
RTMP是一种包含内部容器的传输协议。
从技术上讲,RTMP承载FLV是不正确的,因为FLV有两层封装,而RTMP只承载底层。
所以,正确的说RTMP只能传输那些FLV可以编解码的编解码器,并且说RTMP传输FLV并不是100%正确。
Adobe的RTMP规范不是针对开发人员而是针对针对Wowza的法律问题而创建的,因此不是为了理解正在发生的事情而编写的。阅读red5,crtmp或其他一些rtmp服务器的来源,它们很容易理解。