指定#CONFIGURE_FLAG_ENCODE 以將元件設定為編碼器。 descrambler MediaDescrambler 指定可協助不安全的媒體數據的安全拼錯,或針對不安全的編解碼器指定 null。 屬性 RegisterAttribute 備註 設定要與解構函式搭配使用的元件。 的android.media.MediaCodec.configure(android.media.MediaFormat, android.view.Surface, int...
mediaCodec.configure(mediaFormat , null , null , MediaCodec.CONFIGURE_FLAG_ENCODE); }catch (Exception e){ e.printStackTrace(); } } @Override public void run() { super.run(); isLiving = true; if (mediaCodec == null){ configEncodeCodec(); } mediaCodec.start(); while (isLiving) { inp...
crypto 用于指定一个 MediaCrypto 对象,以便对媒体数据进行安全解密;flags指明配置的是编码器(CONFIGURE_FLAG_ENCODE) MediaFormatmFormat=MediaFormat.createVideoFormat("video/avc",640,480);// 创建MediaFormatmFormat.setInteger(MediaFormat.KEY_BIT_RATE,600);// 指定比特率mFormat.setInteger(MediaFormat.KEY_FRAME...
如果解码的媒体数据没有加密,可以传入null。 4. `int flags`:可选参数,用于配置MediaCodec的行为。常用的标志有: - MediaCodec.CONFIGURE_FLAG_ENCODE:指示MediaCodec用作编码器。 - MediaCodec.CONFIGURE_FLAG_SECURE:指示MediaCodec用于解码受保护的内容。 注意:configure()方法必须在调用start()方法之前调用。
最后,由于某些 Codec 可以在多种模式下运行,所以我们还可以指定 Codec 是按照解码器配置还是按照编码器配置。我们可以传入 MediaCodec.CONFIGURE_FLAG_ENCODE 标记,以将 MediaCodec 按照编码器配置。 从Android 5.0(API 等级 21) 开始,Configured 状态下可以查询输入输出格式,我们可以据此验证得到的配置是否符合预期(例如...
Format.KEY_BIT_RATE,bitrate);format.setInteger(MediaFormat.KEY_FRAME_RATE,frameRate);format.setInteger(MediaFormat.KEY_COLOR_FORMAT,MediaFormat.COLOR_FormatSurface);format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL,IFRAME_INTERVAL);mediaCodec.configure(format,null,null,MediaCodec.CONFIGURE_FLAG_ENCODE);...
MediaCodec 的整体流程如上图所示,从input 输入数据,从output 输出数据,编码的时候输入的是原始数据,输出的是编码后的数据。 初始化 configure 编码器的时候要将flag 设置为encode。 publicvoidstartEncode(MediaFormatformat){mFormat=format;finalStringmimeType=format.getString(MediaFormat.KEY_MIME);// Check to ...
mMF.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL,1); //关键帧间隔时间 单位smMC.configure(mMF, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE); 1 2 3 4 5 6 7 8 其中mPrimeColorFormat为本机支持的颜色空间。一般是yuv420p或者yuv420sp,Camera预览格式一般是yv12或者NV21,所以在编码之前需要进行格式转换...
// 准备编码器mediaCodec.configure(format,null,null,MediaCodec.CONFIGURE_FLAG_ENCODE);mediaCodec.start(); 1. 2. 3. 步骤5: 编码 现在,我们已经准备好了编码器,可以开始编码音频数据了。首先,我们需要获取输入缓冲区和输出缓冲区。 // 获取输入缓冲区和输出缓冲区ByteBuffer[]inputBuffers=mediaCodec.getInputBuf...
flags指明配置的是编码器(CONFIGURE_FLAG_ENCODE)。 其中MediaFormat必须配置以下几项,否则运行configure出错:采样率,比特率,通道个数。 下面是编码为AAC的配置 MediaFormatmediaFormat=MediaFormat.createAudioFormat(MINE_TYPE,SAMPLE_RATE,CHANNEL_CONFIG_IN);MediaFormatmediaFormat=MediaFormat.createAudioFormat(MINE_TYP...