[{"data":1,"prerenderedAt":504},["ShallowReactive",2],{"project-40410637":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":47,"post_text":50,"what":51,"said":90,"maker_in_thread":180,"shape":188,"grid":193,"attempts":465,"same_week":466,"maker_shows":32,"maker_hidden":496,"reader_version":497,"card":498},"40410637","ffmpeg-english","ffmpeg-english \"capture from \u002Fdev\u002Fvideo0 every 1 second to jpg files\"","title","Show HN: ffmpeg-english \"capture from \u002Fdev\u002Fvideo0 every 1 second to jpg files\"","https:\u002F\u002Fgithub.com\u002Fdheera\u002Fscripts\u002Fblob\u002Fmaster\u002Fffmpeg-english","github.com","dheera",1716162610,2024,153,99,550,3515,16,"notable","dev_tools","command line helper","cli",[24,25,26,27,28],"ffmpeg","natural language","gpt-4","shell command generator","python script","roasted",-0.391,{"positive":32,"neutral":33,"mixed":34,"critical":35},4,22,1,28,55,{"execution":38,"privacy":39,"idea":42,"docs":45,"design":46},{"positive":34,"critical":32},{"positive":40,"critical":41},0,14,{"positive":43,"critical":44},3,9,{"positive":40,"critical":40},{"positive":40,"critical":40},[34,40,40,34,34,43,43,40,34,34,43,34,34,43,40,40,40,40,48,34,34,34,34,40,43,34,43,49,48,43,43,34,43,48,34,34,34,40,34,34],5,2,null,{"problem":52,"audience":50,"pricing":50,"motivation":50,"time_to_build":50,"stack":62,"openness":88,"stage":89,"team_size":89},{"value":53,"source":54,"evidence":55},"Writing ffmpeg commands is hard, so the tool takes plain English and produces the command.","inferred",[56,58],{"id":57},"post",{"id":59,"by":60,"text":61},"40418262","smarm52","> \"Makes ffmpeg easier to use by accepting plain English.\" Interesting, any testing? Applications? Efficacy demonstrations?",[63,74,85],{"value":64,"source":54,"evidence":65},"Python",[66,70],{"id":67,"by":68,"text":69},"40411208","bonyt","If you want this to be a little safer, instead of just those guardrails to prevent semicolons and such, you can split the command into an array of arguments, and use…",{"id":71,"by":72,"text":73},"40416943","zekrioca","Please, do not use subprocess.Popen. Use something like plumbum, way safer and more robust.",{"value":75,"source":54,"evidence":76},"GPT-4 API",[77,81],{"id":78,"by":79,"text":80},"40411847","pseudosavant","And the GPT-4 API would want to respond with an output to do that when that isn't what the user asked for?",{"id":82,"by":83,"text":84},"40411349","LeoPanthera","…by sending your request to the ChatGPT API and then executing the result. What could possibly go wrong?",{"value":24,"source":54,"evidence":86},[87],{"id":57},"open_source","unknown",{"praise":91,"objections":104,"requests":128,"questions":140,"alternatives":151},[92],{"value":93,"source":94,"evidence":95},"Fun idea and useful for quick ffmpeg tasks","commenter",[96,100],{"id":97,"by":98,"text":99},"40411399","AzzyHN","Terrible idea, I love it This is good use case for a well-trained LLM, rather than the broad scope of chatGPT",{"id":101,"by":102,"text":103},"40412166","hallway_monitor","I needed to speed up a video by dropping 9 out of every 10 frames yesterday. It took all of 30 seconds to type my request into GPT and paste the result, and I could inspect it…",[105,121],{"value":106,"source":94,"evidence":107},"Executing LLM output without review is unsafe (shell injection, malicious commands)",[108,112,116,120],{"id":109,"by":110,"text":111},"40412558","amiga386","It's not a good use case for anything. Never ask a remote endpoint that's not owned by you and not run by you, what commands you should run on your system. Certainly don't…",{"id":113,"by":114,"text":115},"40414078","tirpen","Getting a suggested command from a chat bot is not a terrible idea. Directly executing commands given by a chat bot on your machine it without inspecting it first is pure madness.",{"id":117,"by":118,"text":119},"40416463","axegon_","Here's a hypothetical but very real scenario: someone discovers a vulnerability in openAI's API (vulnerabilities are everywhere these days), you prompt it to do something for you…",{"id":82,"by":83,"text":84},{"value":122,"source":94,"evidence":123},"Sending commands to a remote API is a privacy and trust risk",[124,125],{"id":109,"by":110,"text":111},{"id":126,"by":110,"text":127},"40415243","> Same goes for output from an LLM This is the crux of our disagreement. It does not go the same. You have no idea what the LLM is going to write, neither does the LLM, nor the…",[129,135],{"value":130,"source":94,"evidence":131},"Use a local LLM instead of a remote API",[132],{"id":133,"by":11,"text":134},"40413108","I do envision training a local LLM which would mostly resolve this concern, but at the moment the vast majority of people don't have a good enough GPU in their system to run an…",{"value":136,"source":94,"evidence":137},"Use subprocess with argument arrays rather than shell execution",[138,139],{"id":67,"by":68,"text":69},{"id":71,"by":72,"text":73},[141],{"value":142,"source":94,"evidence":143},"Why temperature 0.5 rather than 0?",[144,148],{"id":145,"by":146,"text":147},"40412547","fmbb","> temperature=0.5 Why not 0? I’m not a prompt engineer so I never worked with the API, but I thought the “temperature” was a little knob they added for variety in responses. Is…",{"id":149,"by":11,"text":150},"40413089","Good question! I used 0.5 out of habit, but I do need to do some more experimenting with this parameter. But yes, intuitively it should probably be low. I'll do some experiments…",[152,159,166,173],{"value":153,"source":94,"evidence":154},"GitHub Copilot CLI (??)",[155],{"id":156,"by":157,"text":158},"40413894","H8crilA","I recommend `??` from GitHub Copilot. It's basically this, but for any command, not just ffmpeg. I use it all the time. And it asks for confirmation to execute the command :)…",{"value":160,"source":94,"evidence":161},"Open Interpreter",[162],{"id":163,"by":164,"text":165},"40413485","fragmede","http:\u002F\u002Fopeninterpreter.com will just run commands for you",{"value":167,"source":94,"evidence":168},"llm-cmd",[169],{"id":170,"by":171,"text":172},"40415862","imjonse","This is what llm cmd does for any command, and it also offers a chance to edit it before running https:\u002F\u002Fgithub.com\u002Fsimonw\u002Fllm-cmd",{"value":174,"source":94,"evidence":175},"Warp and Wave Terminal",[176],{"id":177,"by":178,"text":179},"40411568","orliesaurus","If you used any \"new\" terminal - like Warp [1] (which requires you to login to use wtf) or Wave Terminal[2] (open source and bring your own AI is supported) - you'll be very…",{"comments":181,"answered":34,"key":182},6,[183,184,185],{"id":149,"text":150},{"id":133,"text":134},{"id":186,"text":187},"40413425","One relatively easy way to be safe is to do this inside a docker container with only whatever files you're working with mounted inside. I created a new script…",{"commenters":189,"max_depth":190,"maker_replies":181,"first_comment_mins":191,"lifespan_hours":192},72,8,41,71,[194,196,200,202,205,207,210,212,215,219,223,227,230,233,237,238,239,242,245,247,250,252,256,259,262,265,267,268,272,275,278,281,283,285,286,289,291,294,297,300,301,303,305,307,310,313,316,319,320,321,323,326,328,330,333,336,339,342,344,347,351,354,356,359,362,366,369,371,374,376,379,381,386,389,392,394,397,401,403,406,408,412,415,419,421,425,429,433,435,437,440,444,447,450,452,454,456,458,461],[67,40,43,195,68,40],"maker\u002Fneutral\u002Fexecution",[197,40,34,198,199,40],"40411694","project\u002Fcritical\u002Fprivacy","ajsnigrutin",[78,40,40,201,79,40],"commenter\u002Fneutral\u002Fnone",[203,40,40,201,204,40],"40412754","jesprenj",[206,40,40,201,79,40],"40418951",[208,40,40,201,209,40],"40424082","6510",[211,40,40,201,79,40],"40424353",[213,40,40,214,209,40],"40424834","other\u002Fneutral\u002Fnone",[216,40,34,217,218,40],"40411954","project\u002Fcritical\u002Fexecution","parentheses",[220,40,43,221,222,40],"40412104","project\u002Fneutral\u002Fexecution","a_t48",[224,40,34,225,226,40],"40412049","project\u002Fcritical\u002Fidea","vagab0nd",[228,40,34,225,229,40],"40412724","seba_dos1",[231,40,40,214,232,40],"40413125","sorokod",[234,40,43,235,236,40],"40412966","project\u002Fneutral\u002Fidea","sureIy",[163,40,40,214,164,40],[71,40,43,195,72,40],[240,40,40,201,241,40],"40417110","theamk",[243,40,40,244,72,40],"40442207","commenter\u002Fneutral\u002Fexecution",[246,40,40,244,241,40],"40447893",[248,40,34,225,249,40],"40416998","jan_Sate",[156,34,40,251,157,40],"other\u002Fneutral\u002Fidea",[253,34,43,254,255,40],"40414184","project\u002Fneutral\u002Fdocs","wccrawford",[257,34,43,254,258,40],"40414549","superpope99",[260,34,34,198,261,40],"40416854","sublinear",[263,34,40,214,264,40],"40417138","throwup238",[145,49,43,266,146,40],"maker\u002Fneutral\u002Fdesign",[149,49,40,266,11,34],[269,49,43,270,271,40],"40415385","project\u002Fneutral\u002Fdesign","cwillu",[273,43,34,225,274,40],"40416399","nop_slide",[276,43,34,225,277,40],"40416646","ecjhdnc2025",[279,43,34,225,280,40],"40417336","fzeroracer",[282,43,34,198,60,40],"40418297",[97,32,48,284,98,40],"project\u002Fpositive\u002Fidea",[109,32,34,198,110,40],[287,32,40,201,288,40],"40412721","rezonant",[133,32,40,290,11,34],"maker\u002Fneutral\u002Fidea",[292,32,40,201,293,40],"40413693","lucianbr",[295,32,40,296,110,40],"40414250","commenter\u002Fneutral\u002Fprivacy",[298,32,40,296,299,40],"40414339","tucosan",[126,32,40,201,110,40],[302,32,40,296,299,40],"40416729",[304,32,40,296,110,40],"40417062",[306,32,40,296,241,40],"40417192",[308,32,40,296,309,40],"40414255","broken-kebab",[311,32,40,201,312,40],"40413746","asddubs",[314,32,40,201,315,40],"40415857","madeofpalk",[317,32,48,284,318,40],"40413408","elcomet",[113,32,34,198,114,40],[117,32,34,198,118,40],[322,32,40,214,164,40],"40413509",[324,48,34,198,325,40],"40412144","terribleperson",[186,48,40,327,11,34],"maker\u002Fneutral\u002Fprivacy",[329,48,34,217,325,40],"40418499",[331,181,34,198,332,40],"40410875","throwaway888abc",[334,181,34,198,335,40],"40412067","mminer237",[337,181,34,198,338,40],"40412346","lyu07282",[340,181,40,296,341,40],"40412452","leoh",[343,181,40,201,288,40],"40412743",[345,181,40,201,346,40],"40413462","amake",[348,181,43,349,350,40],"40412490","project\u002Fneutral\u002Fnone","kaibee",[352,181,40,214,353,40],"40423992","internetter",[355,181,40,214,110,40],"40412573",[357,181,34,217,358,40],"40413049","hawski",[360,181,40,214,361,40],"40413839","baq",[363,364,43,235,365,40],"40412084",7,"mianos",[367,190,43,235,368,40],"40411585","Waterluvian",[370,190,43,254,164,40],"40412417",[372,44,43,235,373,40],"40413246","easyThrowaway",[170,375,34,225,171,40],10,[377,375,48,284,378,40],"40416331","epiccoleman",[177,380,43,235,178,40],11,[382,383,43,384,385,40],"40413375",12,"project\u002Fmixed\u002Fexecution","liampulles",[387,388,40,195,11,34],"40413082",13,[390,388,43,221,391,40],"40413377","maCDzP",[393,388,40,221,11,34],"40421288",[395,388,43,254,396,40],"40414386","Ulti",[398,41,34,399,400,40],"40412427","project\u002Fcritical\u002Fnone","cynicalsecurity",[101,402,34,225,102,40],15,[404,18,43,221,405,40],"40417717","djyde",[59,407,43,349,60,40],17,[409,410,43,270,411,40],"40411388",18,"TZubiri",[413,410,43,221,414,40],"40411422","qiqitori",[416,410,48,417,418,40],"40412338","project\u002Fpositive\u002Fexecution","superkuh",[420,410,40,417,11,34],"40413118",[422,423,34,198,424,40],"40416595",19,"aunwick",[426,427,43,221,428,40],"40411685",20,"GaggiX",[430,431,34,198,432,40],"40412438",21,"KingMachiavelli",[434,431,40,214,288,40],"40412755",[436,431,40,214,277,40],"40413269",[438,33,34,225,439,40],"40413383","sambazi",[441,442,40,443,277,40],"40411831",23,"other\u002Fcritical\u002Fnone",[445,442,40,214,446,40],"40412395","smabie",[448,442,40,214,449,40],"40412615","eternauta3k",[451,442,40,214,229,40],"40412657",[453,442,40,214,164,40],"40412408",[82,455,34,198,83,40],24,[457,455,34,198,199,40],"40411681",[459,455,34,217,460,40],"40412043","oefrha",[462,455,43,463,464,40],"40413621","project\u002Fneutral\u002Fprivacy","_flux",[],[467,472,477,482,487,492],{"id":468,"name":469,"points":470,"category":471},"40431126","Pls Fix",444,"web_saas",{"id":473,"name":474,"points":475,"category":476},"40429200","graphgame.sabrina.dev",321,"games",{"id":478,"name":479,"points":480,"category":481},"40441945","Unify",298,"ai",{"id":483,"name":484,"points":485,"category":486},"40392548","EquityVal",287,"finance_crypto",{"id":488,"name":489,"points":490,"category":491},"40443927","Neosync",246,"data",{"id":493,"name":494,"points":495,"category":491},"40432213","Openpanel",244,false,"v2",{"id":499,"name":5,"line":6,"ai":496,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":500,"top":18,"kw":501,"maker":11,"domain":10,"tier":19,"attempts":40,"strip":502,"url":9,"mix":503,"praise":93,"objection":106,"sub":21},40410637,-0.39,[24,25,26,27,28],"1001133011311300005111103132533135111011",[32,33,34,35],1794036655052]