webRTC H265/HEVC编程指南

概述

随着高清视频的普及视频编码H264已经落后了,H265/AV1成了高清视频最佳选择,metaRTC是最早实现也是最成熟的H265 webRTC开源SDK,但AV1生态还不成熟国内还是以H265为主。

随着chrome 136版本开始支持H265解码,webRTC开始进入H265/AV1时代,metaRTC7.0最新版修复了和chrome H265对接的bug,新版本已经全面兼容chrome webRTC H265。

metaRTC7.0后续版本将以H265/AV1为应用重心,大力加强webRTC H265/AV1生态建设。

下载

复制代码
git clone https://github.com/metartc/metaRTC
git clone https://gitee.com/metartc/metaRTC

参数设置

复制代码
typedef enum YangVideoCodec{
	Yang_VED_H264,
	Yang_VED_H265,
	Yang_VED_AV1,
	Yang_VED_VP8,
	Yang_VED_VP9,
	Yang_VED_MJPEG
}YangVideoCodec;

YangAVInfo avinfo;
avinfo.video.videoEncoderType=Yang_VED_H265;

或者配置文件yang_config.ini
[video]
videoEncoderType=1

SDP

复制代码
m=video 9 UDP/TLS/RTP/SAVPF 49
c=IN IP4 0.0.0.0
a=ice-ufrag:192252g
a=ice-pwd:8q31k7bexd60295om1120s83976lniiv
a=ice-options:trickle
a=fingerprint:sha-256 C5:7B:2C:5F:91:AF:4A:5D:A4:84:AB:36:37:4F:7C:9A:12:80:BE:73:05:3E:B8:76:4D:A1:5A:41:6C:40:7D:11
a=setup:passive
a=mid:1
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=sendonly
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:49 H265/90000
a=rtcp-fb:49 transport-cc
a=rtcp-fb:49 nack
a=rtcp-fb:49 nack pli
a=fmtp:49 level-id=93;profile-id=1;tier-flag=0;tx-mode=SRST

H265参数:a=fmtp:49 level-id=93;profile-id=1;tier-flag=0;tx-mode=SRST

profile-id

|---|--------------------|---------------------|----------|
| 1 | Main Profile (MP) | 主流应用,8-bit 4:2:0 | 通用视频 |
| 2 | Main 10 Profile | 10-bit 4:2:0,支持HDR | 4K/HDR内容 |
| 3 | Main Still Picture | 静态图片 | 照片 |
| 4 | Range Extensions | 扩展范围,支持4:2:2, 4:4:4 | 专业制作 |

tier-flag

  • 0Main Tier(主流层)
  • 1High Tier(高层)

Level 4.1:

  • Main Tier: 最大码率 20 Mbps

  • High Tier: 最大码率 50 Mbps

Level 5.1:

  • Main Tier: 最大码率 100 Mbps

  • High Tier: 最大码率 250 Mbps

level-id

|-----------|-----|
| Level 1 | 30 |
| Level 2 | 60 |
| Level 2.1 | 63 |
| Level 3 | 90 |
| Level 3.1 | 93 |
| Level 4 | 120 |
| Level 4.1 | 123 |
| Level 5 | 150 |
| Level 5.1 | 153 |
| Level 5.2 | 156 |
| Level 6 | 180 |
| Level 6.1 | 183 |
| Level 6.2 | 186 |

相关推荐
任小栗18 小时前
【实战干货】Vue3 + WebRTC + SIP + AI 实现全自动语音接警系统(远程流获取+实时ASR+TTS回播)
人工智能·webrtc
runner365.git1 天前
如何使用RTCPilot--跨平台WebRTC开源服务
webrtc·音视频开发
runner365.git1 天前
RTC实现VoiceAgent(二)
大模型·webrtc·实时音视频·voiceagent
runner365.git3 天前
WebRTC实现VoiceAgent智能体
webrtc
runner365.git3 天前
RTCPilot的信令流程
webrtc·音视频开发
runner365.git3 天前
如何使用RTCPilot配置一个集群RTC服务
webrtc·实时音视频·音视频开发
深念Y4 天前
从WebSocket到WebRTC,豆包级实时语音交互背后的技术演进
websocket·网络协议·实时互动·webrtc·语音识别·实时音视频
AI视觉网奇5 天前
webrtc 硬编码
ffmpeg·webrtc
REDcker5 天前
WebRTC 接收端音频流畅低延迟播放:原理与源码对照(NetEQ / Opus)
音视频·webrtc
SUNNY_SHUN6 天前
LiveKit Agents:基于WebRTC的实时语音视频AI Agent框架(9.9k Star)
人工智能·github·webrtc