[{"data":1,"prerenderedAt":429},["ShallowReactive",2],{"project-42706637":3},{"id":4,"name":5,"line":5,"line_source":6,"title":7,"url":8,"domain":9,"maker":10,"posted_at":11,"year":12,"points":13,"comments":14,"rank_in_year":15,"shown_in_year":16,"top":17,"tier":18,"category":19,"subcategory":20,"format":21,"keywords":22,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":43,"post_text":45,"what":46,"said":79,"maker_in_thread":196,"shape":198,"grid":203,"attempts":393,"same_week":394,"maker_shows":38,"maker_hidden":421,"reader_version":422,"card":423},"42706637","LLMpeg","title","Show HN: LLMpeg","https:\u002F\u002Fgithub.com\u002Fjjcm\u002Fllmpeg","github.com","jjcm",1736908183,2025,169,80,416,3837,11,"notable","dev_tools","command line helper","cli",[23,24,25,26,27],"ffmpeg","llm","natural language","shell script","openai","debated",-0.071,{"positive":31,"neutral":31,"mixed":32,"critical":33},6,1,9,22,{"idea":36,"execution":39,"docs":40,"design":42},{"positive":37,"critical":38},5,4,{"positive":32,"critical":37},{"positive":41,"critical":41},0,{"positive":41,"critical":41},[41,32,41,41,41,32,44,32,41,41,41,41,41,41,44,37,32,41,41,32,41,41,41,41,41,41,44,32,41,37,32,41,44,41,37,37,44,44,37,32],3,"Inspired by the \"ffmpeg by examples\" comments, here's a simple script that pulls it all together. Set your OpenAI API key env var and make the script executable, and you're golden.",{"problem":47,"audience":63,"pricing":63,"motivation":63,"time_to_build":63,"stack":64,"openness":78,"stage":78,"team_size":78},{"value":48,"source":49,"evidence":50},"Hard-to-remember ffmpeg command syntax and options.","commenter",[51,55,59],{"id":52,"by":53,"text":54},"42752320","PaulKeeble","FFMpeg is one of those tools that is really quite hard to use. The sheer surface area of the possible commands and options is incredible and then there is so much arcane…",{"id":56,"by":57,"text":58},"42752984","fastily","ffmpeg has abysmal defaults. I've always been of the opinion that CLI utilities should have sane defaults useful to a majority of users. As someone who has used ffmpeg for well…",{"id":60,"by":61,"text":62},"42755675","moritzwarhier","Same! And I was pleasantly surprised by this working well without any additional parameters. But I'd also confirm the other comments after going through the steps for shrinking a…",null,[65,72],{"value":66,"source":49,"evidence":67},"Bash script",[68],{"id":69,"by":70,"text":71},"42752717","j45","I love that this is a bash script. Long live bash scripts universal ability to mostly just run.",{"value":73,"source":74,"evidence":75},"OpenAI API","maker",[76],{"id":77},"post","unknown",{"praise":80,"objections":96,"requests":137,"questions":160,"alternatives":166},[81],{"value":82,"source":49,"evidence":83},"Fun, useful for learning ffmpeg and for LLM-assisted shell use",[84,88,92],{"id":85,"by":86,"text":87},"42752770","fitsumbelay","probably more helpful for learning than actual productivity with ffmpeg but really like this project (zap emoji)",{"id":89,"by":90,"text":91},"42761324","shrisukhani","Neat! It'd be good to have a little more configurability but this is still really cool",{"id":93,"by":94,"text":95},"42752858","dvektor","this might be the best use of llm's discovered to date",[97,112,122],{"value":98,"source":49,"evidence":99},"Executes LLM-generated commands, a security risk",[100,104,108],{"id":101,"by":102,"text":103},"42752283","vunderba","It's good that you have a \"read\" statement to force confirmation by the user of the command, but all it takes is one errant accidental enter to end up running arbitrary code…",{"id":105,"by":106,"text":107},"42752412","fourthark","I always wonder what's the difference between LLMing shell commands and ``` curl https:\u002F\u002Fexample.com | sh ```",{"id":109,"by":110,"text":111},"42751708","stabbles","Did you look at the implementation? It executes arbitrary code",{"value":113,"source":49,"evidence":114},"LLMs produce wrong ffmpeg commands and hallucinate options",[115,119],{"id":116,"by":117,"text":118},"42751832","minimaxir","The system prompt may be a bit too simple, especially when using gpt-4o-mini as the base LLM that doesn't adhere to prompts well. > You write ffmpeg commands based on the…",{"id":120,"by":117,"text":121},"42753651","So that last one is a hallucination: there's no `n_frames` variable for the select filter: https:\u002F\u002Fffmpeg.org\u002Fffmpeg-filters.html#select_002c-aselect At the least, I learnt a lot…",{"value":123,"source":49,"evidence":124},"Redundant with existing tools like llm or shell_gpt",[125,129,133],{"id":126,"by":127,"text":128},"42752591","behnamoh","this is redundant; why not just use simonwilson's `llm` that can do this too? * flagged.",{"id":130,"by":131,"text":132},"42756487","KingMob","For anyone who wants a broader CLI tool, consider Willison's `llm` tool with the `cmd` plugin, or something like `shell_gpt`.",{"id":134,"by":135,"text":136},"42751427","alpb","I'd probably use GitHub's `??` CLI or `llm-term` that already this without needing to install a purpose-specific tool. Do you provide any specific value add on top of these?",[138,149,156],{"value":139,"source":49,"evidence":140},"Show and explain the generated command before running it",[141,145],{"id":142,"by":143,"text":144},"42756809","leobg","This should be a terminal utility. ``` xx ffmpeg video1.mp4 normalize audio without reencoding video to video2.mp4 ``` And have sensible defaults. Like auto generating the output…",{"id":146,"by":147,"text":148},"42751664","yreg","FFmpeg is a tool that I now use purely with LLM help (and it is the only such tool for me). I do however want to read the explanation of what the AI-suggested command does and…",{"value":150,"source":49,"evidence":151},"Check for empty OPENAI_API_KEY",[152],{"id":153,"by":154,"text":155},"42753118","preciousoo","Small nit: this should check\u002Fexit if OPENAI_API_KEY is empty",{"value":157,"source":49,"evidence":158},"Restrict execution to ffmpeg only",[159],{"id":101,"by":102,"text":103},[161],{"value":162,"source":49,"evidence":163},"What value does this add over existing LLM CLI tools?",[164,165],{"id":134,"by":135,"text":136},{"id":126,"by":127,"text":128},[167,175,182,189],{"value":168,"source":49,"evidence":169},"llm with cmd plugin \u002F llm-jq",[170,171],{"id":130,"by":131,"text":132},{"id":172,"by":173,"text":174},"42751543","xnx","Reminds me of llm-jq: https:\u002F\u002Fgithub.com\u002Fsimonw\u002Fllm-jq",{"value":176,"source":49,"evidence":177},"shellmind",[178],{"id":179,"by":180,"text":181},"42756796","magistr4te","I finished shellmind (https:\u002F\u002Fgithub.com\u002Fwintermute-cell\u002Fshellmind) a few days ago, and it might interest you! It avoids having to copy-paste commands, by integrating directly…",{"value":183,"source":49,"evidence":184},"cmdline-ai-helper",[185],{"id":186,"by":187,"text":188},"42762968","sovok","Seems to be a common thing. I did something similar two days ago. Pretty helpful so far: https:\u002F\u002Fgithub.com\u002Fcombatwombat\u002Fcmdline-ai-helper",{"value":190,"source":49,"evidence":191},"llmpeg by gstrenge",[192],{"id":193,"by":194,"text":195},"42753697","mkagenius","Llmpeg by Gstrenge a few months ago - https:\u002F\u002Fgithub.com\u002Fgstrenge\u002Fllmpeg",{"comments":41,"answered":41,"key":197},[],{"commenters":199,"max_depth":200,"maker_replies":41,"first_comment_mins":201,"lifespan_hours":202},56,7,5436,386,[204,206,207,211,214,216,219,220,223,226,228,229,233,234,236,239,240,243,246,248,251,254,257,260,262,264,267,270,271,274,276,279,282,285,287,290,293,296,298,301,303,305,307,308,311,314,317,320,323,325,327,330,331,333,335,338,340,344,345,346,350,352,354,356,358,362,364,368,370,373,377,379,383,384,388,391],[52,41,41,205,53,41],"other\u002Fneutral\u002Fnone",[56,41,41,205,57,41],[208,41,32,209,210,41],"42753180","project\u002Fcritical\u002Fidea","Vampiero",[212,41,41,205,213,41],"42753684","andai",[215,41,41,205,210,41],"42756674",[217,41,41,205,218,41],"42755339","jasonjmcghee",[60,41,41,205,61,41],[221,41,41,205,222,41],"42757230","bambax",[224,41,41,205,225,41],"42762014","varenc",[101,32,32,227,102,41],"project\u002Fcritical\u002Fexecution",[179,32,41,205,180,41],[230,32,44,231,232,41],"42757688","project\u002Fneutral\u002Fidea","kernel-panics",[186,32,41,205,187,41],[116,235,32,227,117,41],2,[237,235,41,205,238,41],"42752807","sdesol",[120,235,41,205,117,41],[241,235,41,242,238,41],"42753945","commenter\u002Fneutral\u002Fnone",[244,235,41,205,245,41],"42755925","gbin",[247,235,41,205,238,41],"42759207",[249,44,41,205,250,41],"42751840","davmar",[252,44,41,205,253,41],"42752516","mochajocha",[255,44,41,205,256,41],"42752715","tomrod",[258,44,41,242,259,41],"42753132","sitkack",[261,44,41,205,213,41],"42753706",[263,44,41,205,259,41],"42761072",[265,44,41,205,266,41],"42761205","halJordan",[268,44,41,205,269,41],"42755628","varispeed",[142,38,44,231,143,41],[272,38,37,273,213,41],"42759428","project\u002Fpositive\u002Fidea",[275,38,41,205,266,41],"42761164",[277,38,32,209,278,41],"42774955","mikepalmer",[280,37,41,205,281,41],"42751939","kazinator",[283,37,41,242,284,41],"42752109","unleaded",[286,37,41,242,253,41],"42752520",[288,37,41,242,289,41],"42752618","bdhcuidbebe",[291,37,41,205,292,41],"42752350","andreasmetsala",[294,37,41,205,295,41],"42752401","airstrike",[297,37,32,209,281,41],"42760881",[299,37,41,242,300,41],"42767063","adwn",[302,37,41,242,281,41],"42771506",[304,37,41,242,300,41],"42772250",[306,37,41,205,225,41],"42752460",[172,31,41,205,173,41],[309,200,41,205,310,41],"42753212","jchook",[312,200,41,205,313,41],"42753612","npollock",[315,200,41,205,316,41],"42754155","oguz-ismail",[318,200,41,205,319,41],"42754553","miles",[321,200,41,205,322,41],"42756249","xuhu",[324,200,41,205,310,41],"42884619",[326,200,41,205,310,41],"42754594",[146,328,44,329,147,41],8,"project\u002Fneutral\u002Fdocs",[105,328,32,227,106,41],[332,328,41,205,253,41],"42752527",[334,328,41,205,147,41],"42753038",[336,33,41,205,337,41],"42770864","vishnuharidas",[134,339,44,231,135,41],10,[341,339,37,342,343,41],"42751554","project\u002Fpositive\u002Fexecution","lutherqueen",[109,339,32,227,110,41],[193,17,41,205,194,41],[347,348,41,205,349,41],"42756763",12,"forty",[130,351,44,231,131,41],13,[353,351,41,242,180,41],"42756777",[355,351,41,242,131,41],"42758511",[357,351,41,242,180,41],"42762722",[359,360,41,205,361,41],"42751571",14,"scosman",[69,363,37,273,70,41],15,[365,366,41,205,367,41],"42754828",16,"kookamamie",[93,369,37,273,94,41],17,[89,371,44,372,90,41],18,"project\u002Fmixed\u002Fdesign",[374,375,44,329,376,41],"42754887",19,"Fnoord",[153,378,32,227,154,41],20,[380,381,37,273,382,41],"42752585",21,"jerpint",[85,34,37,273,86,41],[385,386,41,205,387,41],"42753849",23,"sebastiennight",[389,386,41,242,390,41],"42754294","lgas",[126,392,32,209,127,41],24,[],[395,400,404,408,412,416],{"id":396,"name":397,"points":398,"category":399},"42645218","pdftris",1289,"games",{"id":401,"name":402,"points":403,"category":399},"42644168","Factorio Blueprint Visualizer",450,{"id":405,"name":406,"points":407,"category":399},"42678754","DoomPDF",369,{"id":409,"name":410,"points":411,"category":19},"42666492","dockview",334,{"id":413,"name":414,"points":415,"category":19},"42712666","ItsLaunched",246,{"id":417,"name":418,"points":419,"category":420},"42697346","BadWebsiteBlocklist",225,"productivity",false,"v2",{"id":424,"name":5,"line":5,"ai":421,"cat":19,"year":12,"points":13,"comments":14,"rec":28,"s":425,"top":17,"kw":426,"maker":10,"domain":9,"tier":18,"attempts":41,"strip":427,"url":8,"mix":428,"praise":82,"objection":98,"sub":20},42706637,-0.07,[23,24,25,26,27],"0100013100000035100100000031051030553351",[31,31,32,33],1794036667939]