FFmpeg是比较经典的视频转码工具,可以应付小型的音视频应用。但转码速度是一个比较大的难题。我这里提供几个可以应用的参数。帮助大家在不提升硬件的情况下,尽可能多地提升转码速度。
1 开启多线程:
-threads 2 #开启两个线程 现在大多数服务器的CPU都是多核多线程的,当然,threads参数不是越高越好。建议,在转码时间、CPU使用率上取得一个平衡的数值,对于大多数小型项目,threads 2足够了,更多的线程,取得了效益往往已经大于了消耗成本。
2 集成显卡加速:
使用过MediaCoder等软件的朋友,一定对NVIDIA GPU加速的效果感到满意。很多人不知道,你的intel处理器集成的显卡,也许也能用来加速。
Intel提供了一套 Intel® Media SDK,可以在windows和linux上部署,需要先注册再下载:
https://software.intel.com/en-us/media-sdk
需要的关键参数:
-hwaccel qsv -c:v h264_qsv -noautorotate -vcodec h264_qsv -i input.mp4 output.mp4这些参数来自于下面的文章,文章已经分析得相当清楚了:
https://www.cnblogs.com/zzugyl/p/8439060.html
3 并发处理:
当硬件资源极其有限的情况下,你需要一个队列系统,来控制单位时间内,最多的处理的转码任务数,来保证生产和消费的平衡。
