RTP视频流的SDP文件

背景

直接通过URL地址(rtp://192.168.1.104:1234)用vlc打开RTP网络流的时候报错:

SDP required:
A description in SDP format is required to receive the RTP stream. Note that rtp:// URIs cannot work with dynamic RTP payload format (96).

后来才想起是需要写sdp文件,所以顺便记录下。

SDP文件

会话描述协议(Session Description Protocol或简写SDP)描述的是流媒体的初始化参数。此协议由IETF发表为 RFC 2327。
– 来自百度百科

SDP(Session Description Protocol) 是一种通用的会话描述协议,例如在音视频通话前通话双方需要进行媒体能力协商,比如协商双方都可支持的编解码类型,交换候选地址等,因此通话前都会发送一个 SDP,描述自己的会话和媒体等信息。
– 来自CSDN :https://blog.csdn.net/weixin_38102771/article/details/121259974

文件规范描述

标准 SDP 结构由会话级描述和多个媒体级描述组成,每条描述信息都是 key=value 的形式,key 可以为 v(版本),o(owner),s(会话),m(媒体信息),a(属性),c(连接)等。
这里只说说与使用RTP相关的描述。

媒体级描述

媒体描述:

m=

  • media:媒体类型,包括 video、audio等。
  • port:传输媒体流使用的端口
  • transport:传输协议描述,如 UDP/TLS/RTP/SAVPF
  • fmt list:媒体数据负载列表

属性描述:

a=:

用于进一步描述媒体属性信息,例如对RTP数据的描述:

a=rtpmap: /[/]

连接描述:

c=

  • nettype:网络类型,比如IN,表示 Internet。
  • addrtype:地址类型,比如IP4、IP6。
  • connection-address:如果是广播,则为广播地址组;如果是单播,则为单播地址;

简单的rtp流媒体SDP例子

一个简单的rtp流媒体sdp文件参考:

m=video 1234 RTP/AVP 96        
a=rtpmap:96 H264
a=framerate:15
c=IN IP4 192.168.1.28

说明:

  1. 媒体描述(m=),video:媒体类型; 1234:端口号; RTP/AVP:传输协议; 96:rtp头中的payload格式
  2. 属性描述(a=),这里是对RTP数据属性的描述,96:rtp头中的payload格式;H264:编码类型;还有些缺省默认的参数属性
  3. 属性描述(a=),这里是对帧率的描述,framerate:15
  4. 连接描述(c=):媒体链接信息,IN:网络类型一般为IN;IP4:地址类型一般为IP4;后面是IP地址(注意这里是打开VLC的机器IP地址,不是发送方的IP)

参考

https://blog.csdn.net/weixin_38102771/article/details/121259974