引自免费微信小程序:皆我百晓生
在Windows系统下,使用FFmpeg录制屏幕时降低CPU占用的方法主要包括优化编码参数、减少帧率以及利用多线程。针对您提供的命令行参数和描述的问题,我们可以从以下几个方面进行优化:
-
降低帧率(-r 参数):您的命令行中已经设置了帧率为10,这是一个较低的帧率,理论上应该不会造成过高的CPU占用。不过您可以根据实际需求进一步降低帧率以减小CPU负担,但这样会导致视频流畅度下降。
-
调整编码器设置:
- 码率控制(-crf 参数):CRF值越低,视频质量越高,编码压力也越大。您可以尝试提高
-crf
的值(比如 30 左右),以牺牲一点画质为代价换取更低的CPU占用。 - 预设级别(-preset 参数):您现在使用的 "ultrafast" 预设会牺牲压缩效率来换取更快的速度。您可以尝试更平衡的预设如 "fast" 或者 "medium",它们虽然速度不如 "ultrafast",但在保证一定速度的同时能提供更好的压缩效果,可能有助于降低CPU占用:
"-preset:v fast"
-
音频采样率 (-ar 参数):音频采样率设置为22050,这个值对CPU占用影响不大,但如果不需要高质量音频,可以适当降低。
-
减少线程数(-threads 参数):尽管您已将线程数设置为1,但在某些情况下,允许FFmpeg使用更多的线程可能会更有效率,因为它可以更好地利用多核CPU。尝试移除 -threads 1
参数,让FFmpeg自动选择合适的线程数。
-
硬件加速:考虑是否可以启用硬件加速,例如 Nvidia NVENC 或 Intel Quick Sync Video 等。这需要相应的硬件支持,并且在ffmpeg命令行中指定相应的编码器,但这通常能够显著降低CPU占用。
综合上述建议,您可以尝试如下修改后的命令行参数:
"ffmpeg -f gdigrab -i desktop -f dshow -i audio=\"麦克风 (Realtek(R) Audio)\" -vcodec libx264 -r 10 -ar 22050 -s 1280x720 -crf 30 -preset:v fast -y D:/ffmpeg/out1.mp4"
请注意,不同的设备上FFmpeg的表现可能会有所不同,尤其是涉及到硬件加速时。因此,请根据实际环境和需求进行参数调整,并观察效果变化。同时,确保平板上的FFmpeg版本与电脑上一致,不同版本的性能表现可能存在差异。