【问题标题】:How to detect WebRTC supported video codecs on native Android如何在原生 Android 上检测 WebRTC 支持的视频编解码器
【发布时间】:2018-03-20 15:24:47
【问题描述】:

我们有一个使用 WebRTC 的原生 Android 应用,我们需要找出主机设备支持哪些视频编解码器。 (始终支持 VP8,但 H.264 取决于具有兼容芯片组的设备。)

这个想法是创建一个报价并从 SDP 获取支持的视频编解码器。我们可以在 Web 应用程序中执行此操作,如下所示:

const pc = new RTCPeerConnection();

if (pc.addTransceiver) {
    pc.addTransceiver('video');
    pc.addTransceiver('audio');
}

pc.createOffer(...);

有没有办法在 Android 上做类似的事情?重要的是,我们无需请求相机访问权限即可创建优惠。

【问题讨论】:

    标签: android webrtc


    【解决方案1】:

    创建一个 VideoEncoderFactory 对象并调用 getSupportedCodecs()。这将返回可以使用的编解码器列表。请务必先创建 PeerConnectionFactory。

    PeerConnectionFactory.InitializationOptions initializationOptions =
                PeerConnectionFactory.InitializationOptions.builder(this)
                        .setEnableVideoHwAcceleration(true)
                        .createInitializationOptions();
    PeerConnectionFactory.initialize(initializationOptions);
    
    VideoEncoderFactory videoEncoderFactory = 
    new DefaultVideoEncoderFactory(eglBase.getEglBaseContext()
                , true, true);
    
    for (int i = 0; i < videoEncoderFactory.getSupportedCodecs().length; i++) {
        Log.d("Codecs", "Supported codecs: " + videoEncoderFactory.getSupportedCodecs()[i].name);
    }
    

    【讨论】:

      【解决方案2】:

      我想这就是你要找的东西:

      private static void codecs() {
          MediaCodecInfo[] codecInfos = new MediaCodecList(MediaCodecList.ALL_CODECS).getCodecInfos();
          for(MediaCodecInfo codecInfo : codecInfos) {
              Log.i("Codec", codecInfo.getName());
              for(String supportedType : codecInfo.getSupportedTypes()){
                  Log.i("Codec", supportedType);
              }
          }
      }
      

      您可以在https://developer.android.com/reference/android/media/MediaCodecInfo.html上查看示例

      【讨论】:

      • 谢谢!不幸的是,有可用的 H.264 编解码器并不一定意味着 WebRTC 引擎在给定设备上支持它。
      猜你喜欢
      • 1970-01-01
      • 2011-04-10
      • 2014-08-17
      • 1970-01-01
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      • 2016-01-03
      • 2021-05-19
      相关资源
      最近更新 更多