H265

H265
1、H265一个图像序列的组成:VPS+SPS+PPS+SEI+一个I帧+若干个P帧。VPS、SPS、PPS、SEI、一个I帧、一个P帧都可以称
为一个NALU。
2、H265的NALU结构:开始码+NALU头+NALU数据
(1)、开始码大小为四个字节,是一个固定值00 00 00 01(十六进制),标识一个NALU的开始。
(2)、NALU头大小为两个字节,共16位,第1位值为0,第2-7位为NALU的type位(共6位),标识当前NALU的类型
,第8-15位值为0,第16位值为1。
(3)、NALU数据为编码器编出来的图像信息或图像数据。
3、六种类型的NALU
(1)、VPS(视频参数集):NALU头值为0x40 01(十六进制),NALU头type位值为32(十进制)。
(2)、SPS(序列参数集):NALU头值为0x42 01(十六进制),NALU头type位值为33(十进制)。
(3)、PPS(图像参数集):NALU头值为0x44 01(十六进制),NALU头type位值为34(十进制)。
(4)、SEI(补充增强信息):NALU头值为0x4e 01(十六进制),NALU头type位值为39(十进制)。
(5)、I帧:NALU头值为0x26 01(十六进制),NALU头type位值为19(十进制)。
(6)、P帧:NALU头值为0x02 01(十六进制),NALU头type位值为1(十进制)。
4、H265的NALU打包成RTP包的模式(下面是用到的两种模式)
(1)、一个NALU打包成一个RTP包,只需要在一个12字节的RTP包头后添加去掉开始码的NALU即可
(这种模式在一个NALU的大小小于MTU时使用)。
(2)、一个NALU打包成几个RTP包(FUs模式),在12个字节的RTP头后面有两个字节的PayloadHdr和一个字节的FU
header。PayloadHdr的值等于NALU头的type位改为49(十进制)后的值,FU header第1位标记RTP包是否为NALU的第一片,第2位标
记RTP包是否为NALU的最后一片。后6位是NALU头的type位。

SDP参考:
一、h265的VPS/SPS/PPS

与分辨率有关
与帧率无关(与帧率是否有关主要看sps中某个字段的值,当前海思编出的sps中该字段值标识与帧率无关)
与N/P制无关

1、4M
Payload: 40010c01ffff016000000300b00000030000030099aa0240
Payload: 420101016000000300b00000030000030099a001402005a1636aa4932f90
Payload: 4401c0f2f03c90

2、4M_4x3
Payload: 40010c01ffff016000000300b00000030000030099aa0240
Payload: 420101016000000300b00000030000030099a001202006c1636aa4932f90
Payload: 4401c0f2f03c90

3、3M
Payload: 40010c01ffff016000000300b00000030000030099aa0240
Payload: 420101016000000300b00000030000030099a00100200601636aa4932f90
Payload: 4401c0f2f03c90

4、1080P
Payload: 40010c01ffff016000000300b0000003000003007baa0240
Payload: 420101016000000300b0000003000003007ba003c08010e58daa924cbe40
Payload: 4401c0f2f03c90

5、960P
Payload: 40010c01ffff016000000300b0000003000003007baa0240
Payload: 420101016000000300b0000003000003007ba00280803c1636aa4932f9
Payload: 4401c0f2f03c90

6、720P
Payload: 40010c01ffff016000000300b0000003000003005daa0240
Payload: 420101016000000300b0000003000003005da00280802d1636aa4932f9
Payload: 4401c0f2f03c90

7、D1
Payload: 40010c01ffff016000000300b0000003000003005aaa0240
Payload: 420101016000000300b0000003000003005aa00582009058daa924cbe4
Payload: 4401c0f2f03c90

8、CIF
Payload: 40010c01ffff016000000300b0000003000003003caa0240
Payload: 420101016000000300b0000003000003003ca00b0804858daa924cbe40
Payload: 4401c0f2f03c90

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
WebRTC是一种用于实时通信的开放式框架,支持音视频传输和数据传输。然而,原生的WebRTC API不支持H265编解码,只支持H264编解码。因此,为了兼容H265并降低延迟,可以采用一种新的实现思路。 这个实现思路是使用WebRTC的DataChannel作为传输协议,并使用WebAssembly(wasm)来实现H265的解码。可以使用C语言编写H265解码的代码,并将其编译成JavaScript库,供前端调用。同时,可以使用WebGL来进行视频渲染。 通过使用DataChannel,可以控制缓存和传输数据的方式。DataChannel基于UDP协议,可以在解码和渲染过程中进行自定义缓存,从而理论上可以大大降低延迟。这种方案的整体实现包括WebRTC DataChannel、WebAssembly H265解码和WebGL渲染。 总体而言,这种方案使用了WebRTC的DataChannel来传输数据,使用WebAssembly实现H265解码,并使用WebGL进行渲染。这种方案将在一系列文章中介绍其实现和细节。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [webrtc支持H265(一)webrtc datachannel的特性](https://blog.csdn.net/mo4776/article/details/131333916)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatgptT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员阿周

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值