实时消息协议流的所有可能容器
Posted
技术标签:
【中文标题】实时消息协议流的所有可能容器【英文标题】:All possible containers for a Real Time Messaging Protocol stream 【发布时间】:2016-09-30 06:35:27 【问题描述】:我正在参与构建实时消息传递协议解析器。我正在从 RTMP 数据包中收集视频/音频数据。现在要在任何播放器中播放视频,我需要知道容器格式以及使用的编解码器。在我从 RTMP 数据包获取的视频数据中,我知道使用的编解码器(例如 On2 VP6)。但我不知道如何知道我正在接收的音频/视频流的容器。所以我应该假设 RTMP 只支持 FLV 容器吗???或者我是否可以从任何其他容器格式获取音频/视频数据包?如果是,那么如何从 RTMP 数据包中存在的信息中了解 RTMP 数据中使用的容器类型?Adobe 的 RTMP 规范不提供有关音频/视频数据容器的任何信息。有什么帮助吗???我被困在这里很长一段时间了。
【问题讨论】:
【参考方案1】:这是一个有点错误的问题。
RTMP 是一种传输协议,其中包含容器。
技术上说RTMP承载FLV是不正确的,因为FLV有两层封装,RTMP只承载底层。
所以说RTMP只能传输FLV可以传输的编解码器是对的,不能说RTMP传输FLV是100%正确的。
Adobe 的 RTMP 规范不是为开发人员创建的,而是针对针对 Wowza 的法律问题创建的,因此它不是为了让您了解正在发生的事情而编写的。阅读red5、crtmp或其他rtmp服务器的源码,比较容易理解。
【讨论】:
以上是关于实时消息协议流的所有可能容器的主要内容,如果未能解决你的问题,请参考以下文章