现象描述:设置MediaFormat.KEY_I_FRAME_INTERVAL 间隔为1s;但是抓取数据时发现无效,手机上关键帧间隔达到了1分多钟;最终导致生成的视频无法播放时无法按秒选取指定位置;
方案:
1网上说的没有达到效果,只要设置一次,那么输出的每一帧都是关键帧,造成合成的mp4体积过大 :
Bundle params = new Bundle();
params.putInt(MediaCodec.PARAMETER_KEY_REQUEST_SYNC_FRAME, 0);
mVideoEncoder.setParameters(params);
2解决方案:
发现当选择支持颜色格式为yuv420p的编码器时,KEY_I_FRAME_INTERVAL 设置无效;
选择支持yuv420sp的编码器时,KEY_I_FRAME_INTERVAL 设置有效;
网友评论