被 Web 端 FFmpeg 折磨了:进度总卡在 99%,求大佬指点 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
如果想在 V2EX 获得更好的推广效果,欢迎了解 PRO 会员机制:
pro/about
jsxyzb

被 Web 端 FFmpeg 折磨了:进度总卡在 99%,求大佬指点

  •  
  •   jsxyzb 5h 7m ago 660 views

    我把自己日常要用的一个视频处理需求做成了在线工具:videosnap.cc

    本来目标很朴素:

    • 不用装软件
    • 尽量浏览器本地处理
    • 少上传原视频,降低隐私顾虑

    结果最近被一个问题狠狠干懵了:处理进度卡在 99% 很久,没挂但就是不结束。


    复现现象(真实可复现)

    在部分机器 + 中大视频文件下:

    • 前面进度推进正常
    • 到 99% 后长时间不动
    • CPU 看着还在跑
    • 页面不报错
    • 用户体感就是:“卡死了”

    我目前的判断

    大概率是尾段组合问题,不是单点 bug:

    1. ffmpeg.wasm 处理结束后,JS 侧 Uint8Array/Blob 搬运开销太大
    2. Worker <-> Main thread 消息传递产生了额外 copy
    3. MEMFS / WORKERFS 在大文件尾段读写时可能有阻塞;OPFS 还没来得及完整验证,准备继续试

    已尝试(但还没彻底解决)

    • 调 ffmpeg 参数,减少中间产物
    • 主流程尽量放到 Worker
    • 尝试 WORKERFS
    • 尝试 OPFS
    • 控制并发,压低内存峰值
    • 修正进度条策略(避免“假 100%”)

    想请教各位的关键问题

    1. 你们做 Web 端 ffmpeg 时,有没有遇到这种“99% 假完成”?
    2. 大文件场景下,最终导出阶段你们是怎么设计的?
    3. OPFS 在真实生产里是否明显优于 MEMFS/WORKERFS
    4. 有无推荐的排查维度:内存曲线、拷贝次数、阶段耗时埋点等?

    项目地址:https://videosnap.cc 先谢过各位

    7 replies    2026-05-09 14:53:55 +08:00
    qxmqh
        1
    qxmqh  
       5h 0m ago
    你看看我的 https://fastcut.video
    Perry
        2
    Perry  
       4h 58m ago via iPhone
    现在推广自己做的 AI Slop 都这么发帖了? AI 写的文案自己读过没,不尬么?
    andyskaura
        3
    andyskaura  
       4h 42m ago
    虽然你这是推广,不过我也说下前两天遇到的现象和你的很像。
    在做大文件断点续传的时候,mac 上都很正常。
    但在 windows 上 createWritable 如果开启次数频繁,哪怕写不同位置,也会导致报错:“An operation that depends on state cached in an interface object was made but the state had changed since it was read from disk.”。

    windows chrome 老版本的 File System Access API 的 writable 行为更不稳定。
    jsxyzb
        4
    jsxyzb  
    OP
       4h 17m ago
    @Perry 是用 AI 帮我写的,本来是求助贴,怎么被划到推广了,早知道就手码了
    jsxyzb
        5
    jsxyzb  
    OP
       4h 15m ago
    @qxmqh 又是会员,就是不想成为会员,才自己写的
    jsxyzb
        6
    jsxyzb  
    OP
       4h 14m ago
    @andyskaura 不是推广,是想写求助帖的,自己写的不好看,AI 润色了下,变成推广了
    kinkin666
        7
    kinkin666  
       3h 13m ago
    ffmpeg.wasm 没有缓冲区的概念嘛,喂给它东西,还有它输出的东西,可不可以打到缓冲区里面
    About     Help     Advertise     Blog     API     FAQ     Solana     4547 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 67ms UTC 10:07 PVG 18:07 LAX 03:07 JFK 06:07
    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