2

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

4

1 回答 1

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
于 2012-08-03T07:25:02.890 回答