25 comments

  • senshi001 14 hours ago ago

    Just a thought - is the text “Click to upload” with a cloud icon perhaps a bit misleading?

    If it’s fully client side, then you are just opening a file in essence - no clouds in sight!

    • hdb2 12 hours ago ago

      Yeah, if the author sees this, it would be best to change this to "Click to Open". We can argue about the icon (I would say the floppy image), but seeing the word "upload" with a cloud icon 1000% means "send this up to the Internet."

    • pooploop64 14 hours ago ago

      I agree something like a folder or file icon would be more accurate.

    • shevy-java 13 hours ago ago

      I guess UI-wise some changes wouldn't be bad, but I am just glad it works. I am currently converting an ancient .mpg into a .mp4; I could do so via ffmpeg from the commandline, but I always forget which options to use, so a GUI kind of frees brain space here.

  • pepa65 2 hours ago ago

    Note that this is the webpage: https://tejaswigowda.com/ffmpeg-webCLI

    Works really well. It does say "100% local. Data never leaves your browser." but indeed, a icon that does not a cloud-upload would be clearer.

  • arpadav 12 hours ago ago

    this might be an extremely stupid question, but is this just a demo project of https://github.com/ffmpegwasm/ffmpeg.wasm? or is this bringing forth some other utility that im not seeing?

  • majorchord 13 hours ago ago

    vibe-coded, and the github repo does not even contain the sources, just a single 'server.js' that is only for the documentation

    • fastily 12 hours ago ago

      Yup the readme reeks of llm generated fluff. Lately I find myself getting more and more suspicious whenever I see lots of emojis in markdown headers..

    • rmast 12 hours ago ago

      It looks like most of the sources might be under the “docs” subfolder.

    • rvz 12 hours ago ago

      Just look at the descriptive commit messages. /s

      Tells you that most here just read the headline and not the code or commits any-more and this will just become abandonware.

  • ale42 14 hours ago ago

    Nice interface at a first glance, for sure can be useful for users who would find using the actual thing too cumbersome. How does performance compare to the native app? Is any form of hardware decoding/encoding like h264_nvenc available? (I guess not?)

    • dtf 14 hours ago ago

      I would imagine the only way to use NVENC directly from a browser would be via WebCodecs.

  • jamal-kumar 15 hours ago ago

    Any chance those AVX-512 optimizations they released a while ago work within this? [1]

    [1] https://www.phoronix.com/news/FFmpeg-July-2025-AVX-512

    • dtf 14 hours ago ago

      I think WASM SIMD is only 128-bit wide.

    • adzm 14 hours ago ago

      Note those only apply to scene_sad which is used for scene change detection and freeze detection and a few other things like mpdecimate -- it's a very specific use case

  • anoop4bhat an hour ago ago

    fantastic. It really works great!

  • colek42 11 hours ago ago

    In 2016 I was working for an organization that wanted a video streaming web app, but could not tolerate any latency. In the past, we solved this with an NAPI extension in Firefox. They removed this for good security reasons, but it left our users without an option. They would have to move to an electron app. Distributing this app and updating it across 1000s of terminals worldwide was not something we were set up to do. I hacked together something like this and could not believe how well it worked. The initial POC is here: https://github.com/colek42/streamingDemo.

  • bxclltkfz 12 hours ago ago

    I love this, be interesting if this could make an in-browser video editor

  • mdswanson 12 hours ago ago

    I find it fascinating that we keep trying to build things that already exist, but on top of another app (web browser). I mean, it's cool to see, and it will have its use-cases, but I wonder where we'd be if we didn't have to do this.

  • zuzululu 13 hours ago ago

    this is ffmpeg running inside the browser am I correct? did not know this was possible. wonder what else we can run via webassembly

    • rmast 12 hours ago ago

      The things that are harder to get running in a browser via webassembly tend to have a GUI, network communication, or system calls that browsers don’t provide the APIs that are needed to support. But I’ve seen workarounds using websocket proxy servers to get around the lack of raw TCP or UDP socket access.

      I’ve been surprised how easy it can be to get Python and C# code running in a browser.

  • theturtletalks 12 hours ago ago

    FFmpeg is so useful for TTS

  • shevy-java 13 hours ago ago

    Interesting idea - must have been a lot of work to add all those features. I just tried it and it works locally too, which is pretty epic.

  • westurner 15 hours ago ago

    From https://news.ycombinator.com/item?id=44717303 :

    > Objective metrics and tools for video encoding and source signal quality: netflix/vmaf, easyVmaf, psy-ex/metrics, ffmpeg-quality-metrics,

    netflix/vmaf: https://GitHub.com/netflix/vmwaf

    gdavila/easyVmaf: https://github.com/gdavila/easyVmaf

    psy-ex/metrics: https://github.com/psy-ex/metrics/

    slhck/ffmpeg-quality-metrics: Calculate quality metrics with FFmpeg (SSIM, PSNR, VMAF, VIF) https://github.com/slhck/ffmpeg-quality-metrics

    Something like this would be great too:

    The Ardour Manual > Loudness Analyzer and Normalizer: https://manual.ardour.org/mixing/basic-mixing/loudness-analy...

  • luispa 13 hours ago ago

    This is dope. Made a PR.