使用RTSP over TCP传输h.264帧的附加数据

时间:2012-07-31 05:25:25

标签: h.264 rtsp data-transfer payload

在我的一个应用程序中,我试图实现发送和接收封装在其中包含其他数据类型的对象中的H.264帧。要求是使用RTSP通过tcp传输这些帧。在接收侧,需要将这些帧与附加数据一起提取并显示。 我花了相当多的时间试图尽可能地确认标准,但我似乎没有找到任何特定的有效载荷格式,它讨论了在RTSP会话中传递自定义对象。 使用NAL单位是我最好的选择,还是有更好的解决方案。

1 个答案:

答案 0 :(得分:2)

SEI NAL Unit是数据的占位符之一,您可以将数据直接嵌入到H.264流中。除此之外,您可以将自定义数据作为自定义类型的备用数据流发送,您可以自行定义有效内容格式。

以下是其中一个RTSP服务器的响应,它能够传输除视频和音频之外的元数据(底部有两行)。请注意,rtpmap类型96-127是“动态类型”,适用于自定义格式。

DESCRIBE rtsp://192.168.0.55/data RTSP/1.0
CSeq: 1
Accept: application/sdp
RTSP/1.0 200 OK
CSeq: 1
Date: Fri, Aug 03 2012 07:13:15 GMT
Content-Base: rtsp://192.168.0.55/data/
Content-Type: application/sdp
Content-Length: 629

v=0
o=- 1343377422075556 1 IN IP4 192.168.0.55
s=Session of first stream
i=First Codec Stream
t=0 0
a=tool:LIVE555 Streaming Media v2007.08.03
a=type:broadcast
a=control:*
a=range:npt=0-
a=x-qt-text-nam:Session of first stream
a=x-qt-text-inf:First Codec Stream
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=428028;sprop-parameter-sets=Z0KAKIyNQFoJIg==,aM48gA==
a=control:track1
m=audio 0 RTP/AVP 97
c=IN IP4 0.0.0.0
a=rtpmap:97 PCMU/16000
a=control:track2
m=metadata 0 RTP/AVP 98
c=IN IP4 0.0.0.0
a=rtpmap:98 METADATA/64000
a=control:track3