5 ms·
The greatest addition to FFmpeg in the recent past was the addition of large language models translating my "ffmpeg command to mix audio file onto video file" i
by rosmax_1337 3y ago
The greatest addition to FFmpeg in the recent past was the addition of large language models translating my "ffmpeg command to mix audio file onto video file" into actually executable FFmpeg commands.
Being cheeky of course here. FFmpeg is great. An AI assistant was what I needed to execute my ~12 FFmpeg commands per year though, with ease and speed.
- thejazzman 3y agoOh, you nailed it. I was so excited the moment I realized I didn't have to struggle with that complicated CLI I mean I've only done it once with ffmpeg but it felt so good
- hiAndrewQuinn 3y agoI did it just today to convert a Filipino movie I yt-dlp'd from WebM to MP4. Teen me would be so excited by this excellent new world of ours.
- pdimitar 3y agoBut but, yt-dlp can download it to .MP4 or .mkv already? It invokes ffmpeg during its final steps.
- __jonas 3y agoI always do yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best" Not sure if there is a better way, ideally I would just like it to always default to that.
- nicolasp 3y agoYou can put these options in a config file and they will become the default: https://github.com/yt-dlp/yt-dlp?tab=readme-ov-file#configuration https://github.com/yt-dlp/yt-dlp?tab=readme-ov-file#configur...
- pdimitar 3y agoAs the sibling poster said, you can and should configure `yt-dlp`. Here are the contents of my config file: --restrict-filenames --output '%(title)s.%(ext)s' --ignore-errors --embed-subs --all-subs --sub-langs all,-live_chat --compat-options no-live-chat --convert-subs srt --format 'vcodec=av01/bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' --convert-thumbnails jpg --embed-thumbnail --audio-quality 0 --add-metadata --xattrs --xattr-set-filesize --prefer-free-formats --geo-bypass --no-mark-watched --console-title --no-warnings --sponsorblock-remove all --compat-options embed-thumbnail-atomicparsley You can look them up on the README. It's quite a bit of work, granted, but to me it was very worth it.
- epiccoleman 3y agoChatGPT / LLMs really are great with ffmpeg. Not too long ago I wrote a blog post outlining an ffmpeg command I needed (mostly for my own future reference). It almost feels quaint now, given that you can get the same kind of explanation from GPT. I bet if I pasted the command in my article into ChatGPT I would get an explainer that's basically identical to what I wrote. https://epiccoleman.com/posts/2023-03-19-ffmpeg-mp4-webm https://epiccoleman.com/posts/2023-03-19-ffmpeg-mp4-webm
- bathtub365 3y agoI did this yesterday and first the command it gave me was wrong.
- wahnfrieden 3y agoGPT4?
- bathtub365 3y agoIt’s whatever the free default is. I’m not going to give them money if it can’t get basic things right.
- wahnfrieden 3y agoYea they are limiting their growth by not giving a peek. It's a world of difference. Try it via API for $0.50.
- trillic 3y agoPaste the man page into the prompt
- pantsforbirds 3y agoLLMs are the best thing to happen to command line tools. I get so much productivity out of them now.
- 0xdeadbeefbabe 3y agoIt's frustrating when they give you a plausible answer that doesn't exist though.
- notatoad 3y agoit is, but typing "no, `--do-x` is not a valid option, please only give me real commands" back into a chat window is a hell of a lot less frustrating than sifting through docs that may or may not even exist.
- autoexec 3y agoSeems risky to start running commands on your machine that a hallucinating AI spit out at you without understanding them, but I guess they can at least let you know what to look up so you can double check what the command will do.
- pantsforbirds 3y agoIt really depends on what you're doing right? Any command line work that I use an LLM to help with is non-destructive. I'll use jq, ffmpeg, etc., but I don't update the initial source.
- Shawnj2 3y agoI’m not writing another line of regex lol
- dan_quixote 3y agoI feel the same about sed and awk :)
- Solvency 3y agoMakes you wonder why developers had to invent such shitty CLI UX in the first place instead of natural language syntax, keywords, and arguments.
- IshKebab 3y agoProbably because: 1. ffmpeg exposes all of its options through the CLI, and there are a lot of options. So it's probably always going to be completely undiscoverable. It really needs a GUI to be usable, but that's a project in itself (I guess the project is Handbrake). 2. They probably didn't put a lot of work into the UX of the CLI since it's an open source project. 3. Backwards compatibility.
- imbnwa 3y ago>So it's probably always going to be completely undiscoverable. It really needs a GUI to be usable, but that's a project in itself (I guess the project is Handbrake). I don't buy this. A TUI is completely possible, e.g. LazyGit, Htop, etc, countless tools indicate you can get pane-based UIs going in the terminal; the FFmpeg team has simply never made such a thing a priority. But even without a TUI, the most basic use-cases are well-known after over 15+ years of existence, simple prompt-based wizards, i.e. "git add -p", should be offered; again, a matter of priority rather than being intractable. A year ago or so someone posted a subscription service they made for composing the pipeline graph visually
- IshKebab 3y ago> A TUI is completely possible Sure. A TUI is basically a poor man's GUI. > simple prompt-based wizards, i.e. "git add -p", should be offered I agree. Wouldn't be hard. I think you may as well use Handbrake though.
- bensecure 3y agoNatural language syntaxes universally suck. A faux english syntax isn't easier to use if you don't know which english in particular will be accepted. A complex cli interface fundamentally can't be easy to use. A GUI can fix that by making things discoverable and by integrating the documentation into the UI, but the ffmpeg devs presumably see that as someone else job (and there have been people to step up).