首页 > 解决方案 > Google WebRTC 是否支持 Cisco Open H.264?

问题描述

知道 Cisco 将其 h.264 编解码器作为开源的事实后,我想将其添加到 Android WebRTC SDK 中。我尝试VideoEncoder使用 webRTC API 创建自定义,但我发现编解码器的选择是由其名称决定的。该类SoftwareVideoEncoderFactory返回一个代表基于VideoCodecInfo名称的特定编解码器的类:link。就我而言,我是这样做的:

    VideoCodecInfo codecInfo = new VideoCodecInfo("H264", getDefaultH264Params(false));
    SoftwareVideoEncoderFactory softwareVideoEncoderFactory = new SoftwareVideoEncoderFactory();
    softwareVideoEncoderFactory.createEncoder(codecInfo);

然后将其添加到我的 PeerConnectionFactory。不幸的是,我认为 webRTC 库不知道打开 h264 的二进制文件在哪里。

问题是:我是否需要创建自己的支持 Open H.264 的类,然后重新构建 webRTC 库?如果不是这种情况会很棒,并且 API 可以选择执行此操作,但我找不到它。

标签: androidvideo-streamingwebrtch.264

解决方案


WebRTC ( https://webrtc.googlesource.com/src ) 使用 openH264 支持 h264。但它需要为目标平台构建。对于 Android,它是在 chrome 或 chromium 中构建的,但不是在 Android SDK 上构建的。所以你不能有使用 Android SDK 的 openH264。您需要自己为 android 构建 WebRTC,然后添加包装类以调用本机 api。您可以在 Web 应用程序上使用 WebRTC JS API。


推荐阅读