干货:如何实现RTSP推送H.264、RTSP推送H.265(hevc)

  • 时间:
  • 浏览:1

h265(hevc) + aac ANNOUNCE:

资料参考:https://github.com/daniulive/SmarterStreaming

1. 先打开rtsp推送线程池池SmartPublisherDemo.exe(测试h265推送请用64位exe) 进行配置:

如有更多什么的难题欢迎交流:   QQ群1: 294891451  QQ群2: 499687479

1.3 发送 SETUP,你这名和播放基本一样,请参考播放流程.

 信令流程:

接下来实际测试推送效果,从github可是我大牛直播SDK官网下载rtsp h264 h265推送工具和rtsp播放工具(请下载windows版本测试).

小结:

可不都都还可以看多,延时就100多毫秒,我是从我家有推送到公网服务器,可是我再拉取播放的.

rtsp推送相关的资料和测试软件比较少,本文介绍rtsp推送相关信令和测试效果:

主要分两帕累托图:第一帕累托图先发送信令;第二部下发送rtp包。

3. 拷贝播放器地址,可是我打开 SmartPlayer.exe, 进行播放即可:

1.4 发送 RECORD,record可是我,信令流程完成, 接下来发送rtp包即可。

h264+aac ANNOUNCE:

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

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

4. 使用rtsp推送延时也非常低,可低至100多毫秒,下图是测试延时的截图:

ANNOUNCE rtsp://192.168.0.174:554/live3.sdp RTSP/1.0

Content-Type: application/sdp

CSeq: 2

User-Agent: mmmmd

Content-Length: 364

ANNOUNCE rtsp://192.168.0.188:554/livexxxx.sdp RTSP/1.0

Content-Type: application/sdp

CSeq: 2

User-Agent: xxxyyy

Content-Length: 489 

1.2 发送ANNOUNCE, 发送ANNOUNCE主可是我把要推送的音视频信息通过sdp格式传给服务器。关于sdp信息咋样构造,对于h264请参考rfc6184. h265请参考rfc7798. 下面举另另一个例子.

1. rtsp推送流程.

2. 按上图配置好后,点击 "推送rtsp"按钮时会看多相应的播放地址:

关于rtp包的构造,h264 参考rfc6184。 h265参考 rfc7798。

 1.1 先发送OPTIONS, OPTIONS比较常用,就不做完整篇 说明了。

rtsp相对于rtmp推送的优势是可不都都还可以用udp传输音视频数据,udp传输可不都都还可以防止延时帕累托图,当然rtsp也可不都都还可以用tcp传输rtp包, 后面 的推送线程池池upd和tcp传输都支持。 另外rtsp协议某种就支持h265,不像rtmp还必须用另另一个非官方扩展去支持.  实际测试可不都都还可以看出延时非常低,就几百毫秒,你这名延时可不都都还可以满足大多数低延时场景需求.  另外rtsp协议某种可是我为实时流传输设计的,能更好的兼容现有的监控系统等. rtsp推送更适合互联网远程监控等项目.