android - 是否可以将 H.264 软件编解码器安装到 Google 的原生 Android WebRTC 库?
问题描述
根据这篇文章(如何检测 Android H.264 硬件加速能力)以及个人经验,WebRTC 的最新 Android 原生库('org.webrtc:google-webrtc:1.0.23546')不支持 H.264,除非有一个硬件解码器。
到目前为止,这仅在使用模拟器时影响我,但我知道某些设备它不会工作,所以这可能是一个大问题。
思科在https://github.com/cisco/openh264上提供了他们的 H.264 软件解码器,我想知道是否有办法使用它或其他方式来安装软件 H.264在没有硬件解码的设备上使用 WebRTC。
此外,我似乎无法在设备上找到 H.264 硬件解码的支持矩阵。
解决方案
可以使用 JCodec 完成。Google 提供了在 Java 中创建自定义解码器的访问权限。
-- Decoder.decodeFrame 已经是 YUV 格式
-- Y,U,V 的数据可以在 frame.getPlaneData(0/1/2) 中找到
-- StrideY/U/V 是 frame.getWidth() >> frame.getColor().compWidth[planeIndex]
-- 根据“org.jcodec.common.model.Picture”中的header数据移位128。需要调整(byte)(a[i] + 128)。
推荐阅读
- flutter - Flutter CircularProgressIndicator 描边类型
- javascript - 范围格式数字输入的自定义输入字段问题 [低-高]
- c# - 线条形状看起来很奇怪
- google-developers-console - 谷歌开发者账号激活
- heroku - 使用 heroku-buildpack-rust 构建 Rocket 应用程序时出现链接错误
- c - 当我将 r=NULL 放入函数 ins() 时,程序没有任何影响
- android - Flutter NFC:如何防止/停止 Flutter Android Build 中的“新标签扫描”默认活动?
- xamarin.android - Xamarin Android 中视频播放器中的前进和后退选项问题
- bootstrap-4 - 如何使用移动设备的引导程序使我的导航栏可折叠?
- reactjs - 在 Ionic-React 项目中导入 react-native 库