zoukankan      html  css  js  c++  java
  • android mediacodec 在某些机子上无法编码的问题

    以下是使用mediacodec编码的方法:

           MediaFormat format = MediaFormat.createVideoFormat(MIME_TYPE, config.getWidth(), config.getHeight());
    
            format.setInteger(MediaFormat.KEY_COLOR_FORMAT,
                    MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface);
            format.setInteger(MediaFormat.KEY_BIT_RATE,config.getBitrate());
            format.setInteger(MediaFormat.KEY_FRAME_RATE, config.getHumanFPS());
            format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, IFRAME_INTERVAL);
     
            if (VERBOSE) Log.d(TAG, "format: " + format);
    
            mEncoder = MediaCodec.createEncoderByType(MIME_TYPE);
    
            mEncoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
            mInputSurface = mEncoder.createInputSurface();
            mEncoder.start();
    

      

    但是在VIVO X5 PRO D手机上在输出数据的时候,birate完全失效,编码出的bitrate跟设置的不一致。

    最后经过调试发现是MediaFormat.KEY_FRAME_RATE 参数不能随意设置,必须设置成跟输入的fps一样才可以。

     
  • 相关阅读:
    lottie 动画
    .netcore 跨域问题
    数据库规范
    课程总结
    Beta版本发布
    个人作业-Alpha项目测试
    第三次作业结对编程
    第二次作业-熟悉使用工具
    第一次阅读作业
    个人作业-Alpha项目测试
  • 原文地址:https://www.cnblogs.com/kkia/p/5124247.html
Copyright © 2011-2022 走看看