8 ms·
I've enjoyed using ffmpeg 1000% more since I was able to stop doing manually the tedious task of Googling for Stack Overflow answers and cobbling them into a co
by hbn 2y ago
I've enjoyed using ffmpeg 1000% more since I was able to stop doing manually the tedious task of Googling for Stack Overflow answers and cobbling them into a command and got Chat GPT to write me commands instead.
- levocardia 2y agoFor the longest time I had ffmpeg in the same bucket as regex: "God I really need to learn this but I'm going to hate it so much." Then ChatGPT came along and solved both problems!
- hackingonempty 2y agoCSS has entered the ChatGPT.
- permo-w 2y agoI've been looking for a good guide on prompting LLMs for CSS. does anyone know of any?
- johnisgood 2y agoI have no set of rules when prompting LLMs for CSS, it does seem to work more or less for me though. What are your current issues or what limitations have you ran into?
- permo-w 2y agomainly with trying to impart a particular art style.
- kccqzy 2y agoMy rule for using LLMs is that anything that's one off is okay. Anything that's more permanent and committed to a repo needs a human review. I strongly suggest you have an understanding of the basics (at least the box model) so that you are competent at reviewing CSS code before using LLM for that.
- teaearlgraycold 2y agoGotta be honest, years of configuring automod on Reddit have honed me into a regex God.
- earnestinger 2y agoNot sure about ffmpeg, but you should definitely try memorising regexp. Casual Search&replace that becomes possible is worth it.
- sergiotapia 2y agoin 15 years it never sticks and by the time i need it again i've forgotten it! :D
- kevin_thibedeau 2y agoDon't learn the Perl influenced extensions. You just need POSIX EREs (and BREs for some older utilities) which are simple enough to keep in the head.
- ziml77 2y agoAnd with the POSIX EREs, everything except the syntax for character classes will carry over to other common Regex dialects.
- Over2Chars 2y agoI'll just leave this here "The Insanity Of Linux's Regular Expressions " https://www.youtube.com/watch?v=ys7yUyyQA-Y https://www.youtube.com/watch?v=ys7yUyyQA-Y
- earnestinger 2y agoMany loosely compatible (so, not compatible if we are strict..) implementations are a problem, but awareness and testing helps. All in all, my life would be miserable if I would not have regexp available in grep/sed/editor/ide/java/python, their usefulness trump any such inconveniences.
- zxvkhkxvdvbdxz 2y agoInteresting. Being able to use regexps for text processing through my career has probably saved me a few thousand hours of programming one-off solutions so far. It is one of those skills that really pays off to learn proper. And speaking of ffmpeg, or tooling in general, I tend to make notes. After a while you end up with a pretty decent curated reference.
- codetrotter 2y agoI use regexes a lot. The main thing that always trips me up is dealing with escaping, because different tools I use – vim, sed, rg, and so on – sometimes have different meanings for when to escape or not. In one tool you’ll use + to match one or more times, and \+ to mean literal plus sign. In another tool you’ll use \+ to match one or more time, and + to mean literal plus sign. In one tool you’ll use ( and ) to create a match group, and \( and \) to mean literal open and close parentheses. In another tool you’ll use \( and \) to create a match group, and ( and ) to mean literal open and close parentheses. This is basically the only problem I have when writing regexes, for the kinds of regexes I write. Also, one thing that’s not a problem per se but something that leads me to write my regexes with more characters than strictly necessary is that I rarely use shorthand for groups of characters. For example the tool might have a shorthand for digit but I always write [0-9] when I need to match a digit. Also probably because the shorthand might or might not be different for different tools. Regexes are also known to be “write once read never”, in that writing a regex is relatively easy, but revisiting a semi-complicated regex you or someone else wrote in the past takes a little bit of extra effort to figure out what it’s matching and what edits one should make to it. In this case, tools like https://regex101.com/ https://regex101.com/ or https://www.debuggex.com/ https://www.debuggex.com/ help a lot.
- nuancebydefault 2y agoThe problem with escaping (like with using quotes) is often that you need to know through how many parsers the string goes. The shell or editor, the language you are programming in and the regexp engine each time can strip off an escape character or a set of outer quotes. That and of course different dialects of regexp makes things complicated.
- shlomo_z 2y ago... Then ChatGPT came along and I had 3 problems! https://regex.info/blog/2006-09-15/247 https://regex.info/blog/2006-09-15/247
- jmb99 2y agoFor me, it wasn’t so much learning ffmpeg, as it was understanding containers/codecs/encoders/streams/etc. Learning all of the intricacies there made ffmpeg make a lot more sense.
- skydhash 2y agoAlmost no one cares to understand the domain of the tool anymore, they only want result and expect a simplified interface that already does the unique thing they want to do, but can’t accept that a power tool can only be used with training.
- manbitesdog 2y agoSame here, it's one of these things where AI has taken over completely and I'm just a broker that copy-pastes error traces.
- magarnicle 2y agoMy experience got even better once I learned how complex filters worked.
- dylan604 2y agolearning how to use splits to do multiple things all in one command is a god send. the savings of only needed to read the source and convert to baseband video once is a great savings. i started with avisynth, and it took time for my brain to switch to ffmpeg. i don't know how i could function without ffmpeg at this point
- simonw 2y agoI use ffmpeg multiple times a week thanks to LLMs. It's my top use-case for my "llm cmd" tool: uv tool install llm llm install llm-cmd llm cmd use ffmpeg to extract audio from myfile.mov and save that as mp3 https://github.com/simonw/llm-cmd https://github.com/simonw/llm-cmd
- dekhn 2y ago"The future is already here. It's just not very well distributed" (honestly, the work you share is very inspiring)
- resonious 2y agoI tried this (though with a different tool called aichat) for extremely simple stuff like just "convert this mov to mp4" and it generated overly complex commands that failed due to missing libraries. When I removed the "crap" from the commands, they worked. So much like code assistance, they still need a fair amount of baby sitting. A good boost for experienced operators but might suck for beginners.
- Philpax 2y agoHate to be that guy, but which LLM was doing the generation? GPT-4 Turbo / Claude 3.x have not really let me down in generating ffmpeg commands - especially for basic requests - with most of their failures resulting from domain-specific vagaries that an expert would need to weigh in on m
- th0ma5 2y agoHate to be that guy, but which model works without fail for any task that ffmpeg can do?
- iameli 2y ago"Writing working commands first try for every single ffmpeg feature that exists" is the highest bar I've ever heard of, I love it. I'm gonna start listing it as a requirement on job postings. Like an ffmpeg speedrun.
- deleted 2y ago[deleted]
- urda 2y agoFor me it was using a container of it, instead of having to install all the things FFmpeg needs on a machine.
- Over2Chars 2y agoI think you're onto something. I've had hit or miss experiences with code from LLMs but it definitely makes the searching part different. I had a problem I'd been thinking about for some time and I thought "Ill have some LLM give me an answer" and it did - it was wrong and didn't work but it got me to thinking about the problem in a slightly different way and my quacks after that got me an exact solution to this problem. So I'm willing to give the AI more than partial credit.
- pdyc 2y agoI ended up creating my own tool to generate ffmpeg commands https://newbeelearn.com/tools/videoeditor/ https://newbeelearn.com/tools/videoeditor/
- skirge 2y agollm - Clippit of 202x, but for the original Pentium was enough.
- bambax 2y agoBasic syntax for re-encoding a video file did take me some time to memorize, but isn't in fact too hard: ffmpeg <Input file(s)> <Codec(s)> <MAPping of streams> <Video Filters> output_file - input file: -i, can be repeated for multiple input files, like so: ffmpeg -i file1.mp4 -i file2.mkv If there is more than one input file then some mapping is needed to decide what goes out in the output file. - codec: -c:x where x is the type of codec (v: video, a: audio or s:subtitles), followed by its name, like so: -c:v libx265 I usually never set the audio codec as the guesses made by ffmpeg, based on output file type, are always right (in my experience), but deciding the video codec is useful, and so is the subtitles codec, as not all containers (file formats) support all codecs; mkv is the most flexible for subtitles codecs. - mapping of streams: -map <input_file>:<stream_type>:<order>, like so: -map 0:v:0 -map 1:a:1 -map 1:a:0 -map 1:s:4 Map tells ffmpeg what stream from the input files to put in the output file. The first number is the position of the input file in the command, so if we're following the same example as above, '0' would be 'file1.mp4' and '1' would be 'file2.mkv'. The parameter in the middle is the stream type (v for video, a for audio, s for subtitles). The last number is the position of the stream IN THE INPUT FILE (NOT in the output file). The position of the stream in the output file is determined by the position of the map command in the command line, so for example in the command above we are inverting the position of the audio streams (taken from 'file2.mkv'), as audio stream 1 will be in first position in the output file, and audio stream 0 (the first in the second input file) will be in second position in the output file. This map thing is for me the most counter-intuitive because it's unusual for a CLI to be order-dependent. But, well, it is. - video filters: -vf Video filters can be extremely complex and I don't pretend to know how to use them by heart. But one simple video filter that I use often is 'scale', for resizing a video: -vf scale=<width>:<height> width and height can be exact values in pixels, or one of them can be '-1' and then ffmpeg computes it based on the current aspect ratio and the other provided value, like this for example: -vf scale=320:-1 This doesn't always work because the computed value should be an even integer; if it's not, ffmpeg will raise an error and tell you why; then you can replace the -1 with the nearest even integer (I wonder why it can't do that by itself, but apparently, it can't). And that's about it! ffmpeg options are immense, but this gets me through 90% of my video encoding needs, without looking at a manual or ask an LLM. (The only other options I use often are -ss and -t for start time and duration, to time-crop a video.)
- sathishvj 2y agoI would like to throw in a tool that I built into the ring: gencmd - https://gencmd.com/ https://gencmd.com/. There is a web version and also a CLI version. If the CLI is installed, you can do: gencmd -c ffmpeg extract first 1 minute of video Or you can just search for the same in the browser page.
- jjcm 2y agoIn addition to the many others mentioned, here's a script I just threw together that simplifies a lot of these chained commands - llmpeg: https://github.com/jjcm/llmpeg https://github.com/jjcm/llmpeg If you have ffmpeg installed and an OpenAI env api key set, it should work out of the box. Demo: https://image.non.io/1c7a92ef-0917-49ef-9460-6298c7a9116c.webp https://image.non.io/1c7a92ef-0917-49ef-9460-6298c7a9116c.we...
- NetOpWibby 2y agoTruly, a net positive to my life. Just a few days ago I asked my AI buddy (Claude) to create a zsh script to organize my downloads folder according to the Johnny Decimal system. I’ve since modified it to move the files to a JD setup on my desktop. The sense of elation I get when I wonder aloud to my digital friend and they generate what I thought was too much to expect. Well worth the subscription.
- archerx 2y agoWhy not just use Handbrake? It’s just FFMpeg but with a GUI.
- wildzzz 2y agoThat's fine for encoding but Handbrake doesn't let you do video streaming to my knowledge.
- nine_k 2y agoI do it the old way: I write down the commands as a shell script, and reuse later. But really what ffmpeg is missing is an expressive language to describe its operation. Something well-structured, like what jq does for JSON.
- skydhash 2y agoIt already does. It’s the cli flags. What you’re missing is the semantic which you can get with learning about containers, codecs, and other stuff. You don’t use grep and sed with no understanding of what a text file is.
- michaelcampbell 2y agoffmpeg and jq are 2 commands I've about given up trying to "use" with any facility and am more than happy to pawn that off to one of the Gippity's; chat, claude, etc.