前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >干货:如何实现RTSP推送H.264、RTSP推送H.265(hevc)

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

原创
作者头像
音视频牛哥
修改2019-09-19 10:13:05
2.9K0
修改2019-09-19 10:13:05
举报
文章被收录于专栏:RTSP/RTMP直播相关

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

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或者大牛直播SDK官网下载rtsp h264 h265推送工具和rtsp播放工具(请下载windows版本测试).

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

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

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

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

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

小结:

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档