h.264 - 使用 RTSP over TCP 通过 h.264 帧传输附加数据

标签 h.264 rtsp data-transfer payload

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

最佳答案

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

关于h.264 - 使用 RTSP over TCP 通过 h.264 帧传输附加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11733610/

相关文章:

filter - 编写自定义 DirectShow RTSP/RTP 源推送过滤器 - 来自实时源的时间戳数据

ffmpeg - 改进 bash 脚本以检查 ffmpeg 何时将流式 IP cam rtsp 挂起到 youtube

c++ - 在不重新编码的情况下保存 H.264 RTP 流?

python - 如何使用 pyav 或 opencv 解码原始 H.264 数据的实时流?

android - 在 Android VideoView 上绘制叠加层(HUD)?

java - 使用java传输文件

ftp - 什么更安全——使用套接字编程或 SSH/SCP/FTP 进行数据传输

java - 将数据从 MS-Access 传输到 MySql 数据库的最佳方法

html - HTML5 的最佳视频格式?

ios - 如何在 iOS 中播放 .h264