177 pointsby bjano9 days ago18 comments
  • jjbinx0075 days ago
    I recently used Gemini to help with some dashcam videos that weren't being saved properly. I was sure most of the data were there but the files wouldn't play in VLC or MPC, so I asked Gemini.

    It suggested various things to try, and after pasting in the error messages each time it suggested more and more radical things. Eventually it suggested a program called Untrunc, where you give it a working video file as a reference and then the file that's faulty and as if by magic it worked!

    Just wanted to mention this in case anyone else is struggling to get FFmpeg to repair a file.

    • pjc505 days ago
      Interesting - I took a look at how this works and why it needs a reference, and the answer is the usual one of the 'moov atom': a critical piece of metadata. Lots of programs output it at the end of the file, but that makes it vulnerable to truncation, and for streaming it's useful to move it to the beginning of the file. ffmpeg refers to this as "fast start".
      • jjbinx0075 days ago
        That makes sense, thanks for that
  • kkukshtel5 days ago
    To yes, and this —

    I've started doing something similar on the command line with Claude Code that works incredibly well:

    claude -p "use ffmpeg to convert myvideo.mov into an h264 video suitable for youtube upload" --dangerously-skip-permissions

    Highly recommended! I use --dangerously-skip-permissions because I just want to set it and forget it and dont need to babysit the run.

    • blueboo5 days ago
      `llm cmd` by simonw is even better for one-off commands. It spits out the invocation and you can repurpose as suits your needs. Thanks Simon!
      • 4m1rk5 days ago
        simonw's llm is amazing. Basically disappointed me for trying to build any LLM powered cli tool
    • teddyh5 days ago
      Em-dash alert.
      • fao_5 days ago
        Not OP, but the whole "AI using em-dashes when people writing would use commas" is very annoying given that the em-dash is readily available on my phone (hold on - to get one) and on my computer (compose - -), and I only started using it because people pointed out that commas are incorrect in this instance :(

        FTR I don't, and have never used AI to write or do any "creative work", because it's not creativity if it doesn't come from you.

        • MOARDONGZPLZ5 days ago
          I also have regularly used hyphens, en dashes, and em dashes since college. Way preceding LLMs. Now I second guess my literary style.
          • fao_5 days ago
            Yeah, same. To be clear I'm frustrated and annoyed that people are using LLMs to replace writing just... normal everyday things, that it is beneficial to think through and consider and form in your mind; it is likewise frustrating that immediately the first thing that anyone really did with AI was spam online submission forms for writers groups hard enough that they got taken offline.
        • 5 days ago
          undefined
  • jjcm6 days ago
    Great work on this - I made a terminal command similar to this (llmpeg), and was actively trying to get exactly this working - a webasm compiled version of ffmpeg that could encode in the browser. I for the life of me couldn't get the provided examples on https://github.com/ffmpegwasm/ffmpeg.wasm to run.

    Just for my own development curiosity, was there anything specific you had to do to get ffmpegwasm to work?

    • dheera6 days ago
      I made a script of this sort too originally called "ffmpeg-english" last year. Interesting how people reacted to it:

      https://news.ycombinator.com/item?id=40410637

      I then made a more general version of it for all commands:

      https://github.com/dheera/scripts/blob/master/helpme

      Example usage:

          $ helpme ffmpeg assemble all the .jpg files into an .mp4 timelapse video at 8fps
    • bjano5 days ago
      The creator of that repo has a blog with some posts on building a wasm version of FFmpeg, I mostly followed those: https://jeromewus.medium.com/ I also used some of their scripts for building the 3rd-party libraries.

      It took a bit of trial and error to see which versions of the different libraries and build tools work together.

    • iamflimflam16 days ago
      I had the same problem - would love to see a working example.
    • nzoschke6 days ago
      I don’t know about the browser but I’ve been playing with a WASM build through this Go wrapper. Nice to not need CGO.

      https://codeberg.org/gruf/go-ffmpreg

      • zahlman5 days ago
        I'm a little confused as to how someone makes an "mpreg" joke in the project name, but censors "lame" in the README.
        • aspenmayer5 days ago
          Lame could be considered an ableist slur, I guess?
  • toddmorey6 days ago
    The Warp terminal[1] is excellent for this type of thing. In agent mode, you just describe what you want to have happen and it generates the proper command(s) (that you can approve before running).

    I use it a lot to convert videos and turn a folder of tiff files into pngs at 1/2 size, etc. It's great at generating FFMEG commands and chaining the right tools together.

    [1] https://www.warp.dev

    • WesleyLivesay5 days ago
      I was going to mention Warp here as well. It is fantastic when it comes to almost anything in the terminal. It has caused me to use the terminal a lot more on all of my computers because I don't have to spend a bunch of time poking around on Google to find the command to run.

      I have used it for ffmpeg and then a lot of other slightly more complex commands. A recent one from the other day was gathering up all of the .epub documents in a directory tree, renaming them to the name of the directory they were in, and then placing them all in one single directory. That would have been a whole project for me, and Warp gave me the command with just that description. Any LLM interface would have done the same, but Warp just let me hit "Enter" and run it, no need to copy and paste.

    • d4rkp4ttern5 days ago
      Also in zed you can hit ctl-enter in terminal or in code and get the same
      • aitchnyu5 days ago
        IME as a dev, I got value from Aider using AI as a commodity to edit code. The sparkly buttons in AWS Cloudwatch log queries, Mongo Compass desktop app and other apps with AI features are hit or miss so far.
  • orderone_ai6 days ago
    This is such a convenient tool for a casual user, and a great application of an LLM to a narrow task that probably couldn't be handled quite so easily everywhere. Also a great example of the emerging 'chat driven' UX trend, which I'm really liking.
    • madeofpalk5 days ago
      I think it's amusing how the most consistent usecase for "LLM for CLI" is to use ffmpeg.
  • adamgusky5 days ago
    Anyone that has built something with FFmpeg understands why this is at the top of HN.
  • danielvaughn6 days ago
    I tried to implement something very similar recently, and had the hardest time getting the LLM to produce anything remotely resembling actual ffmpeg commands.
    • ilaksh6 days ago
      You were using a weak LLM then. The difference between one of the leading edge LLMs like Gemini 2.5 Pro, o3, or Claude 4 and an average LLM or one you can run on your typical PC/laptop is night and day.
    • victorbjorklund5 days ago
      Which model did you use? Claude has been spot on for all my needs.
    • cchance6 days ago
      load up the man pages into the context maybe?
    • jeanlucas6 days ago
      for real? to me it works fine with just chatGPT (free)
  • bsenftner6 days ago
    I think you need to add some liberal filename handling. I have directories of videos generated by various AI video models, and they have spaces in the filenames, not just one, but the prompt to generate the video plus the major parameters are all the filename. They are long, pains in the ass to work with, but they are there. Would be nice if your tool could work with them.
  • alalonde4 days ago
    Nice! Reminds me of the ooo-wow early LLM days where those little explain-Regexps one-off sites were popping up everywhere. Seems inevitable that the LLMs will slurp up this functionality natively as well
  • matcha-video5 days ago
    Love this! Folks here should also check out https://wide.video if they're looking for a VERY full featured free in-browser video editor
  • pdyc6 days ago
    interesting, i created a video editor to generate ffmpeg commands because it was difficult to adjust ffmpeg commands on commandline https://newbeelearn.com/tools/videoeditor/ . This lets you tweak ffmpeg commands visually.
  • somesun5 days ago
    a similar website https://ffmpeg.app/
  • guluarte5 days ago
    I also recommend djcopley/ShellOracle if you are lazy like me and never remember the commands.
  • raincole5 days ago
    That's great. How could it work in browser? Is it a webassembly implementation of FFmpeg?
  • p0w3n3d5 days ago

      I'm sorry Dave, I'm afraid I cannot do that
    • runeks5 days ago
      How do you know my name?!
      • p0w3n3d5 days ago
        It's been sent in the tracking cookie
  • baobabKoodaa5 days ago
    This is a perfect use case for thin LLM wrappers!
  • yakattak6 days ago
    Honestly what a great application of LLMs. FFmpeg is a very powerful tool, and as with most powerful tools is very complicated to run correctly. Do the files get uploaded though? Or does it just grab the location on disk?
    • bjano5 days ago
      Nothing is uploaded, everything runs locally.
    • 26d06 days ago
      This appears to use ffmpeg.wasm
      • ale425 days ago
        Therefore you lose any hardware acceleration I guess? I'd prefer to run an actual native ffmpeg on my machine, but of course then there's the security issue of copy-pasting a command line of "unknown" origin...
  • Hassanijaz5 days ago
    [dead]