1

根据这篇文章(如何检测 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 硬件解码的支持矩阵。

4

1 回答 1

1

可以使用 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)。

于 2018-08-13T17:34:56.843 回答