我必须编写一个RTMP解析器,它将处理从wireshark上的RTMP流捕获的数据包,并且我将从pcap中提取数据。
我已经通过了规格广告我能够理解握手过程,也能够找到TCP数据包中的媒体,但我在多个音频/视频会话的情况下,这是交错在一个单一的pcap,我们如何才能在解析中处理,使我们的解析器能够同时解析多个流。任何唯一性对于不同RTMP流的同时解析将非常有帮助。
编辑(在@Martin Redmond的回答之后):是的,我能够弄清楚,但似乎有一些FLV数据在RTMp上传输,但是FLV报头丢失了,似乎有不同的握手和FLV数据在同一IP不同端口上传输。因此,我找不到它是真正的FLV文件还是唯一的头文件,就像我只提取头文件和其他数据一样,我不能从它创建FLV文件。
有没有办法从RTMP流中验证或提取媒体?
发布于 2011-07-08 00:59:48
每个数据块的报头信息使您可以确定该数据块属于哪个流。不过,这并不是直接的。报头信息被压缩,相关信息可能只在流的开头发送,因此您需要为每个块提供上下文。
最重要的部分是streamid。来自同一来源的视频和音频将具有相同的流and,但将具有不同的频道编号和数据类型。
在说明书里。流id被称为消息流id(第6.1.2.1节),并且仅与类型0报头一起发送。
https://stackoverflow.com/questions/6612399
复制相似问题