FFmpeg编码时候特别耗内存和CPU

项目需要加入编码功能,我就重新编译了ffmpeg库,并带上libx264编码库。
编码时候发现有两个问题:
1、很耗内存和CPU。
2、编码速度慢,很久才出来第一个编码的内容
查了下资料,可以在配置编码上下文时候,通知设置这些数据解决。

//preset: ultrafast, superfast, veryfast, faster, fast,
//medium, slow, slower, veryslow, placebo
av_opt_set(en_CodecCtx->priv_data, "preset", "ultrafast", 0);
//tune: film, animation, grain, stillimage, psnr,
//ssim, fastdecode, zerolatency
av_opt_set(en_CodecCtx->priv_data, "tune", "zerolatency", 0);
//profile: baseline, main, high, high10, high422, high444
av_opt_set(en_CodecCtx->priv_data, "profile", "main", 0);

解决了编码速度慢和耗内存的问题。但CPU还是占用比较大。查资料说可以通过控制线程数:

en_CodecCtx->thread_count = 2;

配的线程数越少,确实cpu越少,但也没特别小。又怕会影响到编码,就不配了。占CPU大的留到后面解决吧。

具体配置en_CodecCtx->priv_data的作用可以参考:
https://wenku.baidu.com/view/f4e48c087fd5360cba1adbba.html

https://blog.csdn.net/qq_17368865/article/details/79101659

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容