2016-09-30 54 views
0

我参与构建实时消息协议解析器。我正在从RTMP数据包收集视频/音频数据。现在,在任何需要了解的播放器中播放视频容器格式以及使用的编解码器。在我从RTMP数据包中获得的视频数据中,我知道使用的编解码器(例如,On2 VP6)。但是我不知道如何知道音频/视频的容器我正在接收的流。那么我应该假设RTMP只支持FLV容器?或者是否有可能从任何其他容器格式获取音频/视频数据包?如果是,那么如何从RTMP数据包中提供的信息中了解RTMP数据使用的容器类型?RTMP的Adobe规范没有提供关于音频/视频数据容器的任何信息。任何帮助?我在这里呆了很长时间。实时消息协议流的所有可能容器

回答

0

这是一个有点错误的问题。

RTMP是一个包含容器的传输协议。

从技术上讲,RTMP携带FLV是不正确的,因为FLV有两层封装,RTMP只携带底层。

因此,说RTMP只能传输FLV可以传输的编解码器并不完全正确地说RTMP传输FLV是正确的。

Adob​​e的RTMP规范不是为开发人员创建的,而是针对Wowza的法律问题创建的,所以它不会写入您了解正在发生的事情。阅读red5,crtmp或其他一些rtmp服务器的源代码,它们相当容易理解。