avcodec_encode_video2 CPU消耗過大

1、問題描述:

在使用ffmpeg執行音視頻編碼的時候,發現手機的cpu佔用高達70%左右,導致整個程序卡頓
經過分析發現avcodec_encode_video2()接口在進行h264編碼時,消耗資源過多。

2、解決方案:

在h264編碼器初始化時,指定編碼器參數ultrafastzerolatency

// 設置編碼器參數
AVDictionary *param = 0;
av_dict_set(&param, "preset", "ultrafast", 0);
av_dict_set(&param, "tune", "zerolatency", 0);

// 根據編碼器AVCodecContext 和 編碼器初始化
ret = avcodec_open2(pOutAudioCodecCtx, encoder, &param);
if (ret < 0) {
	LOGD("open_output_file Cannot open video encoder for stream #%u ret = %d, %s", i,
	ret, av_err2str(ret));
	return ret;
}
發佈了56 篇原創文章 · 獲贊 22 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章