目前H265应用越来越广泛,很多设备都支持硬件加速的H265编解码。作为最常见的音视频终端,Chrome在过去一直都没有H265支持的,毕竟不是AV1那样的亲儿子。人们为了让Chrome完整支持H265,用上了各种招式,例如传输上,用到了datachannel/WebTransport传输H265码流,解码上用到了wasm。
在Native端,要支持H265,得自己魔改WebRTC代码,例如第三方开源WebRTC库:Intel的OWT。现在这些状况就要改变了,目前Chrome已经支持H265硬解,WebRTC上也开始进行H265支持的开发,这一切都要从这个讨论开始:Issue 13485: Need the support of H.265,提到目前很多安防摄像机都是默认H265编码,修改为H264代价太高,大概率是国人提的需求😀。
目前WebRTC中H265代码由Intel团队的人提交,跟Intel自己的开源WebRTC库OWT中代码相似。目前代码中(截至2023.9.20)中主要三个提交,增加了H265 Nalu的解析,SDP中相关定义,RTP包处理/编解码器相关预留H265坑位,离实际能使用还有很多事情要做,如果感兴趣,也可以先看下Intel OWT中的H265代码,代码中搜索OWT_ENABLE_H265
字段,就可以看到H265相关。本文后续也将继续跟踪H265进展。
文章评论
太迫切了,希望 webrtc 能尽快支持 h265。chrome 支持 265 硬解之后,我司目前正在做的方案是 datachannel 传输裸流,客户端用 webcodes 进行解码,webgl 渲染。
我看代码m118已经支持了,通过rtc_use_h265 = proprietary_codecs 开启,默认浏览器应该也已经支持了把
@Jeffrey 目前支持情况还是我文中说的,H265的码流解析以及RTP包处理,具体你可以看下这个:https://source.chromium.org/search?q=rtc_use_h265&ss=chromium%2Fchromium%2Fsrc
Intel自己的开源WebRTC库OWT,是已经完整支持了H265么
@默 是的
Chrome从127版本开始支持WebRTC H265解码,但还只是实验性质的,启动参数需要添加 --enable-features=WebRtcAllowH265Receive --force-fieldtrials=WebRTC-Video-H26xPacketBuffer/Enabled
正式支持越来越近了。
24年了, webrtc现在支持了h265的rtp传输了吗?