V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cxxnullptr
V2EX  ›  Flutter

相同的 FFmpeg 命令,命令行中运行很快, Flutter 中运行巨慢,如何 Debug?

  •  
  •   cxxnullptr · 36 天前 · 980 次点击
    这是一个创建于 36 天前的主题,其中的信息可能已经有所发展或是发生改变。

    就是一个简单的图片加水印任务:

    ffmpeg -hide_banner -y -i image.AVIF -i watermark.png -filter_complex "overlay=(main_w-overlay_w-50):(main_h-overlay_h-50)" output.AVIF
    

    命令行中运行几乎秒完成,但在 Flutter 中几乎要半分钟。

    await Process.run('ffmpeg', [
        '-hide_banner',
        '-y',
        '-i',
        'image.AVIF',
        '-i',
        'watermark.png',
        '-filter_complex',
        'overlay=(main_w-overlay_w-50):(main_h-overlay_h-50)',
        'output.AVIF',
    ]);
    

    整了一天了,完全没有头绪,求教,求教

    2 条回复    2024-09-04 11:29:13 +08:00
    jifengg
        1
    jifengg  
       36 天前
    你可以试试加 “-v 0”,把 ffmpeg 的输出完全关掉。
    有可能是进程的输出流(包括 Error 流)阻塞了。

    如果可以,但是你希望保留输出,那么研究一下 dart 里如何把 Process 的输出读取出来
    cxxnullptr
        2
    cxxnullptr  
    OP
       35 天前
    @jifengg 好的,谢谢,我试一试
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5574 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 03:25 · PVG 11:25 · LAX 20:25 · JFK 23:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.