最近在研究NMSv3 接入WebRTC协议,以实现浏览器跨平台无插件高清推流,服务端转http-flv,rtmp等。首选视频编码当然是H264了,这样服务端只需做音频实时转码OPUS->AAC即可。
在解析RTP包内H264负载时遇到各种坑,这里记录一下。
环境:
- OS:MacOS 10.14.6
- Chrome : 80.0.3987.106
一、查看默认编码器参数,浏览器访问 chrome://gpu/
Video Acceleration Information
Decode h264 baseline | 16×16 to 4096×2160 pixels |
Decode h264 extended | 16×16 to 4096×2160 pixels |
Decode h264 main | 16×16 to 4096×2160 pixels |
Decode h264 high | 16×16 to 4096×2160 pixels |
Encode h264 baseline | 0x0 to 4096×2160 pixels, and/or 30.000 fps |
Encode h264 main | 0x0 to 4096×2160 pixels, and/or 30.000 fps |
Encode h264 high | 0x0 to 4096×2160 pixels, and/or 30.000 fps |
此刻,RTP包的负载,I包和P包使用FU-A,SPS、PPS采用STAP-A打包。
二、通过访问chrome://flags/ ,将Hardware-accelerated video encode 选项设置为Disable,关闭硬件编码,模拟无硬件加速的环境。
继续阅读原创文章,转载请注明: 转载自贝壳博客