android - 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 可以选择执行此操作,但我找不到它。
解决方案
WebRTC ( https://webrtc.googlesource.com/src ) 使用 openH264 支持 h264。但它需要为目标平台构建。对于 Android,它是在 chrome 或 chromium 中构建的,但不是在 Android SDK 上构建的。所以你不能有使用 Android SDK 的 openH264。您需要自己为 android 构建 WebRTC,然后添加包装类以调用本机 api。您可以在 Web 应用程序上使用 WebRTC JS API。
推荐阅读
- java - ListenableFutureCallback - 永远不会调用 onFailure
- r - 计算测量值的汇总统计数据并将它们旋转到 R 中的列
- python-3.x - 熊猫如何检查列中的值是顺序的
- android - Android Auto 自定义应用 - 官方
- bash - ag 和 rg 没有列出以下划线开头的文件,find 没有
- c# - Dotnet 应用程序作为守护程序启动时无法正常工作
- mysql - 权限系统上的行锁定问题
- java - 速度找不到方法
- javascript - 递归 .reduce() 输出父数组
- sql-server - 在父/子查询上对 SQL Server 中的父进行分页