android - 使用 MediaCodec,如何生成间隔小于 1 秒的关键 i 帧?

标签 android android-mediacodec video-encoding keyframe

MediaFormat.KEY_I_FRAME_INTERVAL 只接受一个整数值,我假设这就是控制编码器生成 I 帧的频率的因素,对吧?那么这是否意味着如果我使用 MediaCodec 我就不可能更频繁地生成 I 帧?

最佳答案

我终于找到了这个问题的解决方法!

在需要关键帧之前插入以下代码,然后它将在下一个可用帧上生成关键帧。

        Bundle b = new Bundle();
        b.putInt(MediaCodec.PARAMETER_KEY_REQUEST_SYNC_FRAME, 0);
        encoder.setParameters(b);

关于android - 使用 MediaCodec,如何生成间隔小于 1 秒的关键 i 帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39156211/

相关文章:

android - 在 PopBackStack 上保留数据

android - 如何使用 Retrofit 2 + OkHttp 3 加密/隐藏 HTTPS 调用的主体?

android - 是否有类似 ListView 的东西允许动态重定位 ListView 元素的拖放样式?

Android 媒体编解码器 : Reduce mp4 video size

android - 如何使用 MediaCodec 将位图编码为视频?

android - Android:仅在我更新市场上的应用程序时如何执行一些代码?

android - 如果 Android MediaCodec dequeueOutputBuffer() 返回 -3 是什么意思

android - MediaCodec 不解码 H264 编码的视频数据

FFMPEG 图像未更新

ffmpeg - 使用网络摄像头使用 ffmpeg 进行非常低的延迟流式传输