在我的 Android 应用程序中,我使用 MediaCodec 以 webm (vp8) 格式对一些媒体进行编码。编码按预期工作。但是,我需要确保偶尔创建一个同步帧。这是我所做的:
encoder.queueInputBuffer(..., MediaCodec.BUFFER_FLAG_SYNC_FRAME);
稍后在代码中,我检查同步帧:
encoder.dequeueOutputBuffer(bufferInfo, 0);
boolean isSyncFrame = (bufferInfo.flags & MediaCodec.BUFFER_FLAG_SYNC_FRAME);
问题是 isSyncFrame 永远不会获得真正的价值。
我想知道我的编码配置是否出错。可能有更好的方法来告诉编码器偶尔创建一个同步帧。
我希望这不是 MediaCodec 中的错误。预先感谢您的帮助。