1、问题描述:
在使用ffmpeg执行音视频编码的时候,发现手机的cpu占用高达70%左右,导致整个程序卡顿
经过分析发现avcodec_encode_video2()接口在进行h264编码时,消耗资源过多。
2、解决方案:
在h264编码器初始化时,指定编码器参数ultrafast和zerolatency
// 设置编码器参数
AVDictionary *param = 0;
av_dict_set(¶m, "preset", "ultrafast", 0);
av_dict_set(¶m, "tune", "zerolatency", 0);
// 根据编码器AVCodecContext 和 编码器初始化
ret = avcodec_open2(pOutAudioCodecCtx, encoder, ¶m);
if (ret < 0) {
LOGD("open_output_file Cannot open video encoder for stream #%u ret = %d, %s", i,
ret, av_err2str(ret));
return ret;
}

本文解决FFmpeg音视频编码时CPU占用过高问题,通过调整编码器参数ultrafast和zerolatency,有效降低手机CPU占用,提升程序流畅度。
1万+

被折叠的 条评论
为什么被折叠?



