是否可以将 H.264 软件编解码器安装到 Google 的原生 Android WebRTC 库中?

Is it possible to install a H.264 software codec to Google's native Android WebRTC libraries?

根据这个 post () 以及个人经验,最新的 Android WebRTC ('org.webrtc:google-webrtc:1.0.23546') 本机库不支持 H.264,除非有一个硬件解码器。

到目前为止,这仅在使用模拟器时影响我,但我知道它无法在某些设备上运行,因此这可能是个大问题。

Cisco 在 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).