1. rtsp推送流程.
主要分两部分:第一部分先发送信令;第二部分发送rtp包。
信令流程:
1.1 先发送OPTIONS, OPTIONS比较常用,就不做详细说明了。
1.2 发送ANNOUNCE, 发送ANNOUNCE主要是把要推送的音视频信息通过sdp格式传给服务器。关于sdp信息如何构造,对于h264请参考rfc6184. h265请参考rfc7798. 下面举两个例子.
h264+aac ANNOUNCE:
ANNOUNCE rtsp://192.168.0.188:554/livexxxx.sdp RTSP/1.0
Content-Type: application/sdp
CSeq: 2
User-Agent: xxxyyy
Content-Length: 489
v=0
o=- 0 0 IN IP4 127.0.0.1
s=dddookkk
c=IN IP4 192.168.0.188
t=0 0
m=video 0 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z00AKp2oHgCJ+WbgICAoAAADAAgAAAMBlCA=,aO48gA==; profile-level-id=4D002A
a=control:streamid=0
m=audio 0 RTP/AVP 97
a=rtpmap:97 MPEG4-GENERIC/44100/1
a=fmtp:97 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3; config=1208
a=control:streamid=1
h265(hevc) + aac ANNOUNCE:
ANNOUNCE rtsp://192.168.0.174:554/live3.sdp RTSP/1.0
Content-Type: application/sdp
CSeq: 2
User-Agent: mmmmd
Content-Length: 364
v=0
o=- 0 0 IN IP4 127.0.0.1
s=uvsdewewe
c=IN IP4 192.168.0.174
t=0 0
m=video 0 RTP/AVP 96
a=rtpmap:96 H265/90000
a=control:streamid=0
m=audio 0 RTP/AVP 97
a=rtpmap:97 MPEG4-GENERIC/44100/1
a=fmtp:97 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3; config=1208
a=control:streamid=1
1.3 发送 SETUP,这个和播放基本一样,请参考播放流程.
1.4 发送 RECORD,record之后,信令流程完成, 接下来发送rtp包即可。
关于rtp包的构造,h264 参考rfc6184。 h265参考 rfc7798。
接下来实际测试推送效果,从github官网下载rtsp h264 h265推送工具和rtsp播放工具(请下载windows版本测试).
1. 先打开rtsp推送程序SmartPublisherDemo.exe(测试h265推送请用64位exe) 进行配置:
2. 配置好后,点击 "推送rtsp"按钮后会看到相应的播放地址:
3. 拷贝播放器地址,然后打开 进行播放即可:
4. 使用rtsp推送延时也非常低,可低至100多毫秒.
我公司开发的一款播放器
liveweb是一款超低延时(150-200毫秒)、秒启动、无插件web实时视频播放器,h5视频播放器,支持egde、firefox、Chrome、safari等常见浏览器。支持h264、h265、AAC、G711等常见音视频格式。
支持协议:RTSP、RTMP、HLS、HTTP-FLV、WebSocket-FLV、GB28181、HTTP-TS、WebSocket-TS、HTTP-fMP4、WebSocket-fMP4、MP4、WebRTC。
支持RTSP/Onvif/GB/T28181/EHome/海康SDK/大华SDK等设备或者平台接入
服务器包含设备接入、音视频直播、流媒体分发服务器、录像存储和回放服务等功能。
提供GB28181信令转接和平台级联