如何支持RTSP播放H.265(HEVC)流

简介: 随着H.265的普及,越来越多的开发者希望大牛直播SDK能支持低延迟的RTSP H.265播放,并分享相关经验: 废话不多说,先上图(以播放海康H.265 RTSP摄像头数据(分辨率:1920*1080)为例): 测试APP下载(SmartPlayer.

随着H.265的普及,越来越多的开发者希望大牛直播SDK能支持低延迟的RTSP H.265播放,并分享相关经验:

废话不多说,先上图(以播放海康H.265 RTSP摄像头数据(分辨率:1920*1080)为例):

测试APP下载(SmartPlayer.exe):

[demo测试程序] Windows推送、播放、合成、导播、连麦Demo(32位)本地下载

实现思路:

对rtsp来说,要播放h265只要正确解析sdp和rtp包即可. 下面对这些相关内容做一些介绍.

  1. H265 Nal Unit Header 简单介绍:

H264的Nal Unit头是一个字节,265变成两个字节:
image

F: 1 bit. forbidden_zero_bit. 265要求是0,是1的话指示语法违规等.

Type: 6 bits. Nal类型. vps是32, sps是33, pps是34, 前缀sei是39. IDR是19和20.

LayerId: 6 bits. nuh_layer_id. 现在是0,将来可能扩展用.

TID: 3 bits. nuh_temporal_id_plus1. TemporalId 是TID-1.

  1. SDP 参数介绍:

2.1 IETF 分配给h265的媒体子类型如下:
Type name: video
Subtype name: H265
可选参数: 
profile-space, tier-flag, profile-id, profile-compatibility-indicator, interop-constraints,level-id,
sprop-sub-layer-id, recv-sub-layer-id, max-recv-level-id, tx-mode, sprop-vps, sprop-sps, sprop-pps等等, 具体请参考相关
文档,建议解析sprop-vps, sprop-sps, sprop-pps.

2.2 SDP 举例:
m=video 0 RTP/AVP 96
a=rtpmap:96 H265/90000
a=fmtp:96 profile-space=0;profile-id=0;tier-flag=0;level-id=0;interop-constraints=000000000000;sprop-vps=QAEMAf//AIAAAAMAAAMAAAMAAAMAALUCQA==;sprop-sps=QgEBAIAAAAMAAAMAAAMAAAMAAKACgIAtH+W1kkbQzkkktySqSfKSyA==;sprop-pps=RAHBpVgeSA==
注意编码名称必须是:H265, Clock reate必须是90000.

  1. RTP 打包格式

实际中其实就用到两种格式,一种是一个nal单元打包到一个rtp包中。一种是nal单元比较大,分片打包在多个rtp中.

3.1 单个Nal单元打包:

image

PayloadHdr 把 NAL单元头填入就好.

3.2 Nal单元分片打包:

PayloadHdr还是拷贝NAL单元头,但是要把Type换成49. FU header 就一个字节,格式如下:

0 1 2 3 4 5 6 7

+-+-+-+-+-+-+-+-+

S:为1表示第一个分片。 E:为1表示表示最后一个分片。FuType就是实际的Nal type类型。

  1. 小结:

h265很多和h264相似之处,都有sps和pps,用00 00 00 01进行nal 单元分隔. 如果想测试h265 rtsp播放效果,可以从github下载播放器 测试h265播放效果。 更多问题欢迎加入大牛直播技术QQ交流群: 294891451 或者 499687479 。

相关资料分享:

RTP Payload Format for HEVC:http://pike.lysator.liu.se/docs/ietf/rfc/77/rfc7798.xml
Github:https://github.com/daniulive/SmarterStreaming

相关文章
|
1月前
|
编解码 监控 网络协议
如何使用FFmpeg实现RTSP推送H.264和H.265(HEVC)编码视频
本文详细介绍了如何使用FFmpeg实现RTSP推送H.264和H.265(HEVC)编码视频。内容涵盖环境搭建、编码配置、服务器端与客户端实现等方面,适合视频监控系统和直播平台等应用场景。通过具体命令和示例代码,帮助读者快速上手并实现目标。
185 6
|
4月前
|
编解码 应用服务中间件 开发工具
如何在RTMP推送端和RTMP播放端支持Enhanced RTMP H.265(HEVC)
时隔多年,在Enhancing RTMP, FLV With Additional Video Codecs And HDR Support(2023年7月31号正式发布)官方规范出来之前,如果RTMP要支持H.265,大家约定俗成的做法是扩展flv协议,CDN厂商携手给出的解决方案是给flv的videotag CodecID增加一个新类型(12)来表示h265(hevc),和h264不同的地方是要解析HEVCDecoderConfigurationRecord,从HEVCDecoderConfigurationRecord中解析出vps, sps, pps. 有了vps, sps, pps,
105 6
|
4月前
|
Web App开发 编解码 前端开发
怎么把rtsp视频流转成webrtc接口
【8月更文挑战第8天】将RTSP视频流转换为WebRTC接口涉及多个步骤:首先使用工具如webrtc-streamer、ffmpeg等从RTSP源获取视频流;接着对流进行解码与编码至WebRTC兼容格式(如VP8、H.264);然后利用WebSocket建立客户端与服务器间的双向信令通道;再通过JavaScript创建WebRTC PeerConnection并交换SDP信息;最后添加Track传输视频数据,并在接收端解析显示。使用webrtc-streamer可简化这一过程,其API支持多种操作如添加ICE候选、创建Offer等。
702 2
|
4月前
|
监控 开发工具 数据安全/隐私保护
Windows平台如何实现多路RTSP|RTMP流合成后录像或转发RTMP服务
本文介绍了在Windows平台上实现多路RTSP/RTMP视频流的合并技术。主要应用场景包括驾考、全景摄像头以及多路会议录制等。技术实现上,文章详细展示了如何使用特定的SDK来解码并回调YUV或RGB数据,再将这些数据按照图层形式进行合成。示例代码中给出了初始化参数、设置视频帧回调函数、以及如何配置不同图层的具体步骤。最终,合成后的视频可以推送到RTMP服务器、注入到本地RTSP服务,或是直接录制为MP4文件。此外,还提供了添加实时文字水印的方法,并展示了四路视频流合成后的“四宫格”效果。
|
编解码 开发工具 Android开发
安卓端/iOS端如何播放4K分辨率的RTMP/RTSP流
4K分辨率即4096×2160的像素分辨率,它是2K投影机和高清电视分辨率的4倍,属于超高清分辨率。在此分辨率下,观众将可以看清画面中的每一个细节,每一个特写。影院如果采用惊人的4096×2160像素,无论在影院的哪个位置,观众都可以清楚的看到画面的每一个细节,影片色彩鲜艳、文字清晰锐丽,再配合超真实音效,这种感觉真的是一种难以言传的享受。
329 0
安卓端/iOS端如何播放4K分辨率的RTMP/RTSP流
|
7月前
|
存储 编解码 自然语言处理
常见的音频与视频格式
常见的音频格式有 WAV、MP3、FLAC、APE、AAC、OGG 等,常见的视频格式有 MP4、AVI、MOV、WMV、MKV、FLV、3GP、MPEG 等,它们在兼容性、文件大小、画质等方面各有特点。
|
7月前
|
编解码 Linux C语言
实现一个传输aac音频的rtsp服务器
实现一个传输aac音频的rtsp服务器
98 0
|
编解码 开发工具 开发者
如何支持RTSP播放H.265(HEVC)流
随着H.265的普及,越来越多的开发者希望大牛直播SDK能支持低延迟的RTSP H.265播放,并分享相关经验: 实现思路: 对rtsp来说,要播放h265只要正确解析sdp和rtp包即可. 下面对这些相关内容做一些介绍.
457 1
|
编解码 监控 网络协议
干货:如何实现RTSP推送H.264、RTSP推送H.265(hevc)
rtsp推送相关的资料和测试软件比较少,本文介绍rtsp推送相关信令和测试效果: 1. rtsp推送流程. 主要分两部分:第一部分先发送信令;第二部分发送rtp包。
572 1
|
存储 编解码 缓存
海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储
Hik防爆摄像头录像,因为防爆摄像头会有对应的APP软件,与普通的网络摄像头和球机不一样,默认认为它不可以通过web网页配置,所以弄了个来实测确认。经测试实际上也是可以通过web网页配置(与网络摄像头基本是一致的,在码流方面可能会有些不一样),然后提取rtsp流的,界面与球机无异,只是没有球机的云台控制功能,但是界面上也是有的。
海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储