WebRTC源码分析之硬编码那些事
WebRTC (Web Real-Time Communications) 是 RTC 的一部分,是一项实时通信技术,它容许网络应用或者站点,在不借助两头媒介的状况下,建设浏览器之间点对点(Peer-to-Peer)的关联,实现视频流/音频流或者应用数据的传输。
硬编码和软编码
区别
软编码:使用 CPU 进行编码
硬编码:使用非 CPU 进行编码,如显卡 GPU、专用的 DSP、FPGA、ASIC 芯片等
比较
软编码:实现直接、简单,参数调整方便,升级易,但 会造成CPU 负载重,性能较硬编码低,视频码率质量通常比硬编码要好一点。
硬编码:性能高,视频码率通常质量低于软编码器,但部分产品在 GPU 硬件平台移植了优秀的软编码算法(如 X264)的,质量基本会趋近于软编码。
主流 GPU 加速平台
Intel、AMD、NVIDIA
主流的 GPU 平台开发框架
CUDA:NVIDIA 的封闭编程框架,通过框架可以调用 GPU 计算资源
本文深入探讨WebRTC中硬编码的概念,对比软编码与硬编码的优缺点,阐述主流GPU加速平台如Intel、AMD、NVIDIA,并介绍CUDA、AMD APP、OpenCL等GPU开发框架。同时,提供了核心的HardwareVideoEncoder.java代码分析。
订阅专栏 解锁全文
1051

被折叠的 条评论
为什么被折叠?



