Hankerzao 2024-03-12 10:49 采纳率: 0%
浏览 63

win系统下,ffmpeg录制,怎么降低cpu的占比呀?

想解决ffmpeg,cpu占比高和视频能看清不卡顿的问题,cpu最好能在20,甚至15及以下。请教请教,还有什么方法可以改进的吗?

自己用ffmpeg录制屏幕,运用C++上CreateProcess,形式写入到控制台。在电脑端和平板端(win10),发现了cpu占比不同和录制的画面卡顿效果不同,如,在电脑上cpu占比5左右,但录制的视频有卡顿现象,但在平板上,cpu占比35左右。录制的视频没什么卡顿现象,虽然都挺模糊的。
电脑cpu5已经很低了,但是平板cpu占比还在35左右。具体代码如下,

"ffmpeg   -f gdigrab -i desktop -f dshow -i audio=\"麦克风 (Realtek(R) Audio)\"  -vcodec libx264  -r 10 -ar 22050 -s 1280x720  -crf 27    -preset:v ultrafast -threads 1 -y D:/ffmpeg/out1.mp4"
  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-12 10:50
    关注

    引自免费微信小程序:皆我百晓生

    在Windows系统下,使用FFmpeg录制屏幕时降低CPU占用的方法主要包括优化编码参数、减少帧率以及利用多线程。针对您提供的命令行参数和描述的问题,我们可以从以下几个方面进行优化:

    1. 降低帧率(-r 参数):您的命令行中已经设置了帧率为10,这是一个较低的帧率,理论上应该不会造成过高的CPU占用。不过您可以根据实际需求进一步降低帧率以减小CPU负担,但这样会导致视频流畅度下降。

    2. 调整编码器设置

      • 码率控制(-crf 参数):CRF值越低,视频质量越高,编码压力也越大。您可以尝试提高 -crf 的值(比如 30 左右),以牺牲一点画质为代价换取更低的CPU占用。
      • 预设级别(-preset 参数):您现在使用的 "ultrafast" 预设会牺牲压缩效率来换取更快的速度。您可以尝试更平衡的预设如 "fast" 或者 "medium",它们虽然速度不如 "ultrafast",但在保证一定速度的同时能提供更好的压缩效果,可能有助于降低CPU占用:
        "-preset:v fast"
        
    3. 音频采样率 (-ar 参数):音频采样率设置为22050,这个值对CPU占用影响不大,但如果不需要高质量音频,可以适当降低。

    4. 减少线程数(-threads 参数):尽管您已将线程数设置为1,但在某些情况下,允许FFmpeg使用更多的线程可能会更有效率,因为它可以更好地利用多核CPU。尝试移除 -threads 1 参数,让FFmpeg自动选择合适的线程数。

    5. 硬件加速:考虑是否可以启用硬件加速,例如 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版本与电脑上一致,不同版本的性能表现可能存在差异。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月12日

悬赏问题

  • ¥15 请教如何关于Msg文件解析
  • ¥200 sqlite3数据库设置用户名和密码
  • ¥15 AutoDL无法使用docker install吗?
  • ¥15 cups交叉编译后移植到tina sdk的t113,只需要实现usb驱动打印机,打印pdf文件
  • ¥30 关于#wireshark#的问题:需要网络应用流量数据集需要做长度序列的实验,需要与应用产生的会话的数据包的长度,如视频类或者聊天类软件
  • ¥15 根据上述描述表示泥浆密度沿着管路的长度方向在不断变化,如何来表示泥浆密度随管路的变化(标签-matlab|关键词-流计算)
  • ¥21 matlab可以把图像数据转换为小波分析吗
  • ¥60 基于香农编码的图像压缩算法实现
  • ¥15 matlabGUI绘制一个函数与其导数的图像
  • ¥20 大数据采集用Python爬取猫眼电影数据