【问题标题】:Does Google WebRTC support Cisco Open H.264?Google WebRTC 是否支持 Cisco Open H.264?
【发布时间】:2019-02-19 12:27:12
【问题描述】:

知道 Cisco 将其 h.264 编解码器作为开源的事实,我想将其添加到 Android WebRTC SDK 中。我尝试使用 webRTC API 创建自定义VideoEncoder,但我发现编解码器的选择是由其名称决定的。 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 可以选择执行此操作,但我找不到它。

【问题讨论】:

标签: android video-streaming webrtc h.264


【解决方案1】:

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

【讨论】:

  • 感谢您的回答。你对如何做到这一点有什么建议吗?
  • 为 Android 构建 webrtc 并不简单。而我自己做不到。我联系了一个朋友,他给了我二进制文件。我建议您阅读此页面 (webrtc.org/native-code/android) 并尝试从专业人士那里找到 SO 二进制文件。也看看这个:bintray.com/google/webrtc/google-webrtc.
  • 感谢您的参与!我很久以前就读过这个页面。我也创建了自己的构建 - 但我只在 Java 代码中进行了更改(更改了一些标志以顺利支持联发科,这不是很多工作)。根据您所说,我假设我应该为支持开放 h264 的 C++ 代码创建自己的包装器,并且它应该使用 cisco SO 文件。也许你可以让我联系你的朋友,他可以帮助我解决这个问题?
  • stack-overflow 评论系统对我没有好处。对不起。对于我的坏cmets。有关更多专业信息,您可以联系 CosMo webrtc (cosmosoftware.io),您可以请求所有构建和东西。我相信他们可以帮助你得到你想要的。问我的朋友可能需要一些时间。但如果你坚持,我无论如何都可以问。
  • 感谢您的链接!我一定会检查出来的。无论如何,请让您的朋友知道这个堆栈溢出问题 :) 提前致谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多