企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] > [参考](https://cloud.tencent.com/developer/article/1720761?from=article.detail.1711420) ## 概述 RTSP 和RTP 都使用相同的SDP的协议 <br/> **SDP 文本信息包括:** - 会话名称和意图; - 会话持续时间; - 构成会话的媒体; - 有关接收媒体的信息(地址等)。 ## sdp的格式: 格式 * 表示必填 ``` *v=<version> *o=<username> <session id> <version> <network type> <address type> <address> *s=<session name> i=<session description> u=<URI> e=<email address> p=<phone number> c=<network type> <address type> <connection address> b=<modifier>:<bandwidth-value> *t=<start time> <stop time> r=<repeat interval> <active duration> <list of offsets from start-time> z=<adjustment time> <offset> <adjustment time> <offset> .... k=<method> k=<method>:<encryption key> a=<attribute> a=<attribute>:<value> *m=<media> <port> <transport> <fmt list> ``` 中文说明 ``` v = (协议版本) o = (所有者/创建者和会话标识符) s = (会话名称) i =(会话信息) u = URI 描述) e =(Email 地址) p =电话号码) c = (连接信息) b = (带宽信息) z = (时间区域调整) k =(加密密钥) a =(0 个或多个会话属性行) ``` ## 示例 ### H.264 流的参数 * `m=` 行中的媒体名必须是 `video * `a=rtpmap` 行中的编码名称必须是 `H264` * `a=rtpmap` 行中的时钟频率必须是 90000 * 其他参数都包括在 `a=fmtp` 行 ``` m=video 0 RTP/AVP 96 a=rtpmap:96 H264/90000 a=fmtp:96 profile-level-id=420029; packetization-mode=1; sprop-parameter-sets=Z01AKI2NQDwBE/LgLcBAQFAAAD6AAAw1DoYACYFAABfXgu8uNDAATAoAAL68F3lwoA==,aO44gA== ``` **packetization-mode** 表示支持的封包模式. * 当 packetization-mode 的值为 0 时或不存在时, 必须使用单一 NALU 单元模式. * 当 packetization-mode 的值为 1 时必须使用非交错(non-interleaved)封包模式. * 当 packetization-mode 的值为 2 时必须使用交错(interleaved)封包模式. **sprop-parameter-sets** 这个参数可以用于传输 H.264 的序列参数集和图像参数 NAL 单元. 这个参数的值采用 Base64 进行编码. 不同的参数集间用","号隔开. **profile-level-id** 这个参数用于指示 H.264 流的 profile 类型和级别. 由 Base16(十六进制) 表示的 3 个字节. 第一个字节表示 H.264 的 Profile 类型, 第 三个字节表示 H.264 的 Profile 级别. **max-mbps** 这个参数的值是一个整型, 指出了每一秒最大的宏块处理速度. ### RTSP 的SDP ``` v=0 o=- 1586545639954157 1586545639954157 IN IP4 192.17.1.63 s=Media Presentation e=NONE b=AS:5100 t=0 0 a=control:rtsp://192.17.1.63:554/ m=video 0 RTP/AVP 96 c=IN IP4 0.0.0.0 b=AS:5000 a=recvonly a=x-dimensions:1920,1080 a=control:rtsp://192.17.1.63:554/trackID=1 a=rtpmap:96 H264/90000 a=fmtp:96 profile-level-id=420029; packetization-mode=1; sprop-parameter-sets=Z01AKI2NQDwBE/LgLcBAQFAAAD6AAAw1DoYACYFAABfXgu8uNDAATAoAAL68F3lwoA==,aO44gA== m=audio 0 RTP/AVP 8 c=IN IP4 0.0.0.0 b=AS:50 a=recvonlya=control:rtsp://192.17.1.63:554/trackID=2 a=rtpmap:8 PCMA/8000 a=Media_header:MEDIAINFO=494D4B48010300000400000111710110401F000000FA000000000000000000000000000000000000; a=appversion:1.0 ``` ### RTP的 SDP ``` v=0 o=- 0 0 IN IP4 127.0.0.1 s=No Name c=IN IP4 127.0.0.1 t=0 0 a=tool:libavformat LIBAVFORMAT_VERSION m=video 1234 RTP/AVP 96 b=AS:7000 a=rtpmap:96 H264/90000 a=fmtp:96 packetization-mode=1 ```