ffmpeg如何实现快速编码转码?
微wx笑 2023-03-05【音频视频】 0 0关键字: ffmpeg
FFmpeg是多媒体处理的出色工具,默认情况下,它使用具有多线程的CPU来执行任务,这会给您的服务器带来很高的负载,并且在大多数情况下会很慢,例如使用FFmpeg将RTSP流转码成HLS流或FLV流输出时,服务器同时开启50路转码任务时,服务器资源会耗尽,输出的视频流会花屏、卡顿。
FFmpeg是多媒体处理的出色工具,默认情况下,它使用具有多线程的CPU来执行任务,这会给您的服务器带来很高的负载,并且在大多数情况下会很慢,例如使用FFmpeg将RTSP流转码成HLS流或FLV流输出时,服务器同时开启50路转码任务时,服务器资源会耗尽,输出的视频流会花屏、卡顿。
如何提高FFmpeg的速度:
方法一:使用-preset降低压缩率以获得更高速度(文件大小和速度之间进行权衡);
方法二:购买硬件,移植代码,使用GPU(nvenc,nvdec和cuvid)实现硬件解码,但这并不容易。
编码器预设参数设置preset
这个参数主要调节编码速度和质量的平衡,有:
ultrafast:最快的编码方式
superfast:超级快速的编码方式
veryfast:非常快速的编码方式
faster:稍微快速的编码方式
fast:快速的编码方式
medium:折中的编码方式
slow:慢的编码方式
slower:更慢的编码方式
veryslow:非常慢的编码方式
placebo:最慢的编码方式
默认的编码速度是medium模式
命令行用法:
ffmpeg -i D:\src.mov -c:v libx264 -preset slow -b:v 262k -pass 1 -an -f mp4 -y NUL ffmpeg -i 流浪地球2优化版111.mp4 -preset ultrafast -vcodec libx264 -acodec copy 流浪地球2优化版.mp4
但是发现一个问题,使用快速编码,生成的文件会非常的大。
本文为转载文章,版权归原作者所有,不代表本站立场和观点。