我想从带有RTSP的设备中检索一些视频数据。
UDP上的RTSP工作得很好,但我需要TCP上的RTSP。
在发出RTSP命令后,我收到了RTSP,但我不知道如何在这里处理它们。有效载荷如下:$channel -1字节数据
问题是,我会收到这样的数据包,有时还会收到通道为10或99等的其他数据包。
那么,谁能提供一些关于如何处理有效负载的输入?
发布于 2012-08-24 21:41:18
您可以在RFC 2326 "Real Time Streaming Protocol (RTSP)"中获得所有功能。你需要"10.12嵌入式(交错)二进制数据“:
流数据(如RTP包)由ASCII元符号(24个十六进制)封装,后跟单字节通道标识符,后跟封装的二进制数据的长度,以网络字节顺序显示为二进制、双字节整数。流数据紧随其后,没有CRLF,但包括上层协议报头。每个$块恰好包含一个上层协议数据单元,例如一个RTP分组。
这里也有一个小例子:
S->C: $\000{2 byte length}{"length" bytes data, w/RTP header}
S->C: $\000{2 byte length}{"length" bytes data, w/RTP header}
S->C: $\001{2 byte length}{"length" bytes RTCP packet}发布于 2012-08-24 22:05:02
获取PPS非常简单,实际上不需要解析数据包。
我猜,您的SPS请求将需要进入数据包(我认为您不需要担心WS msg“无效数据包”。
在PT中使用0x09的Type如何?
有关数据包的描述,请参阅here
在answer here中解包RTP的示例实现
尝试在here上查找与RTSP控制和SDP over TCP相关的更多信息。如果您正在查看RTSP会话/对话的详细信息,以及有关视频中各个轨道的控制协议选择的消息详细信息。如果你可以在不转向SDP / RTCP的情况下得到你的答案,那么很明显,这会更快/更好。
发布于 2012-09-01 17:41:57
以下是TCP/RTP的数据包格式:
[$ - 1byte][Transport Channel - 1byte][RTP data length - 2bytes][RTP data]剩下的就像upd一样
有关更多信息,请阅读process raw rtp packets
https://stackoverflow.com/questions/12110541
复制相似问题