关于 windows 下 ffmpeg 的性能 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
johnsonshu

关于 windows 下 ffmpeg 的性能

  •  
  •   johnsonshu Sep 28, 2021 4331 views
    This topic created in 1674 days ago, the information mentioned may be changed or developed.

    我经常需要从 720p 的视频里抽取幻灯片图片,用了类似下面的参数

    ffmpeg -i XXX.mp4 -r 0.07 image_%d

    但是,一个差不多两小时的视频大概需要 40,50 分钟左右去处理。

    i3_4160 + GT730 的配置。 我知道配置有点弱,但是这处理速度也太离谱了吧。

    我觉得它没用上显卡的硬件加速,但是怎么才能用上呢?

    Supplement 1    Oct 4, 2021
    谢谢大家的回复。
    https://trac.ffmpeg.org/wiki/HWAccelIntro 的 NV 链接里里并没找到我的显卡。
    所以,想要强的硬件加速估计得换显卡。

    说一下我的环境和结果:
    1 ) mp4 在一个机械硬盘,输出目录在固态
    2 )-hwaccel 加上去之后,总体性能提高不大,不过 cpu 使用率大幅减少。
    3 ) 测试结果(根据开始终了时间,手动算时间):
    no hwaccel to null - start
    09:59
    10:13
    end 14min
    -hwaccel auto to null - start
    10:13
    10:38
    end 25min
    no hwaccel qscale:v 31 - start
    10:38
    11:04
    end 26min
    -hwaccel auto qscale:v 31 - start
    11:04
    11:32
    end 28min
    no hwaccel 720p test start
    11:32
    11:59
    end 27min
    -hwaccel auto 720p test start
    11:59
    12:27
    end 28min
    ==============================================

    所用的 windows batch 脚本:
    @echo off

    @del /f /q .\1\*.*
    @del /f /q .\2\*.*
    @del /f /q .\3\*.*
    @del /f /q .\4\*.*

    @echo warm up
    @time /t
    ffmpeg -hwaccel auto -ss 15 -nostats -i XXXX.mp4 -r 0.07 -f null NULL > nul 2> nul
    @time /t
    @echo end

    @echo no hwaccel to null - start
    @time /t
    ffmpeg -ss 15 -nostats -i XXXX.mp4 -r 0.07 -f null NULL > nul 2> nul
    @time /t
    @echo end

    @echo -hwaccel auto to null - start
    @time /t
    ffmpeg -hwaccel auto -ss 15 -nostats -i XXXX.mp4 -r 0.07 -f null NULL > nul 2> nul
    @time /t
    @echo end

    @echo no hwaccel qscale:v 31 - start
    @time /t
    ffmpeg -ss 15 -nostats - XXXX.mp4 -qscale:v 31 -r 0.07 -f image2 ".\1\pic-%%04d.jpg" > nul 2> nul
    @time /t
    @echo end

    @echo -hwaccel auto qscale:v 31 - start
    @time /t
    ffmpeg -hwaccel auto -ss 15 -nostats -i XXXX.mp4 -qscale:v 31 -r 0.07 -f image2 ".\2\pic-%%04d.jpg" > nul 2> nul
    @time /t
    @echo end

    @echo no hwaccel 720p test start
    @time /t
    ffmpeg -ss 15 -nostats -i XXXX.mp4 -r 0.07 -f image2 .\3\pic-%%04d.jpg > nul 2> nul
    @time /t
    @echo end

    @echo -hwaccel auto 720p test start
    @time /t
    ffmpeg -hwaccel auto -ss 15 -nostats -i XXXX.mp4 -r 0.07 -f image2 .\4\pic-%%04d.jpg > nul 2> nul
    @time /t
    @echo end
    12 replies    2021-09-29 13:41:32 +08:00
    gainsurier
        1
    gainsurier  
       Sep 28, 2021
    你给的信息太少了,视频什么编码,ffmpeg 哪个版本
    mingl0280
        2
    mingl0280  
       Sep 28, 2021 via Android
    我看你这个瓶颈应该在硬盘写入速度上……不是没加速。
    zhanggang807
        3
    zhanggang807  
       Sep 28, 2021
    -c:v h264_videotoolbox
    用上 GUP 硬解之后你可能会发现还不如软解
    Kagari
        4
    Kagari  
       Sep 28, 2021 via Android
    cpu 太旧了,换新平台,6 核起步吧
    mingl0280
        5
    mingl0280  
       Sep 28, 2021   1
    @zhanggang807 没用,他那个纯粹是写入性能差。ffmpeg 不指定解码器的时候用 h264 解码 mp4 文件,已经是带帧 /切片级的并行了。如果非要加速的话他应该用 h264_qsv 或者 h264_cuvid (而且要写在-i 前面)
    GrayXu
        6
    GrayXu  
       Sep 28, 2021
    ffmpeg 默认调用应该都是软件编解码吧
    GalaDOS
        7
    GalaDOS  
       Sep 28, 2021   1
    先试试 ffmpeg -i XXX.mp4 -f null NULL 看看纯解码是什么速度,这个是上限,太慢就换电脑
    再试试 ffmpeg -i XXX.mp4 -qscale:v 31 image_%d.jpg 把输出画质压到最低,如果变快了就是磁盘 IO 的问题,换硬盘或者输出数据量压低一些
    再试试 ffmpeg -i XXX.mp4 -an -vf "framerate=0.07" image_%d.jpg 简化一下编码流程看看有没有救
    zhuangzhuang1988
        8
    zhuangzhuang1988  
       Sep 28, 2021   1
    首先关闭杀毒软件.
    holinhot
        9
    holinhot  
       Sep 28, 2021
    h264_cuvid
    Zepp
        10
    Zepp  
       Sep 28, 2021   7
    去看 ffmpeg 的官方指南吧: https://trac.ffmpeg.org/wiki/HWAccelIntro

    楼上也真乃神人,一堆 encoder 闭上眼张口就来。楼主用的显然不是苹果,你还叫他 h264_videotoolbox 这不是傻吗?还有 cuvid 早就是过去式了,现在的叫 nvenc,当然楼主的卡不一定支持,建议自己调研。
    zvl0reqglvd
        11
    zvl0reqglvd  
       Sep 28, 2021
    我用这个一般都不到一秒。不用固态?
    zhanggang807
        12
    zhanggang807  
       Sep 29, 2021
    @Zepp 问一句,你们博士都这么说话的么,还是只有你这么说话?
    首先,没细看,楼主非 macOS
    再次 我一直这么用,h264_videotoolbox,仅供楼主参考
    大家在这里提问回答也只是涨见识或者提供参考,话语中有攻击意味这就不对了
    About     Help     Advertise     Blog     API     FAQ     Solana     1356 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 45ms UTC 17:17 PVG 01:17 LAX 10:17 JFK 13:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86