[随手笔记]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



作者:吴家十三少
链接:https://www.jianshu.com/p/6672fe0d8f20
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:([随手笔记]FFmpeg编码时候特别耗内存和CPU)