[{"data":1,"prerenderedAt":451},["ShallowReactive",2],{"project-23006794":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":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":40,"post_text":42,"what":43,"said":86,"maker_in_thread":202,"shape":212,"grid":216,"attempts":415,"same_week":416,"maker_shows":33,"maker_hidden":443,"reader_version":444,"card":445},"23006794","Editly","Declarative command-line video editing","title","Show HN: Editly – Declarative command-line video editing","https:\u002F\u002Fgithub.com\u002Fmifi\u002Feditly","github.com","mifino",1588080984,2020,429,75,71,3028,3,"legend","dev_tools","video editing cli","cli",[24,25,26,27],"command-line video editing","declarative video editing","ffmpeg wrapper","video slideshow generator","curious",0.022,{"positive":31,"neutral":32,"mixed":33,"critical":31},5,13,2,25,{"idea":36,"execution":37,"docs":39},{"positive":33,"critical":18},{"positive":38,"critical":33},0,{"positive":38,"critical":38},[31,18,41,31,18,38,18,38,38,31,38,38,18,18,18,38,31,18,38,41,18,38,18,31,38,38,18,41,38,38,38,38,38,38,41,38,38,18,41,38],1,null,{"problem":44,"audience":42,"pricing":42,"motivation":42,"time_to_build":42,"stack":54,"openness":84,"stage":85,"team_size":85},{"value":45,"source":46,"evidence":47},"Editing videos from the command line without a GUI editor, by describing edits declaratively","inferred",[48,50],{"id":49},"post",{"id":51,"by":52,"text":53},"23007086","asicsp","they have a section [1] explaining their reasoning Create a slideshow from a set of pictures with text overlay Create a fast paced trailer or promo video Create a tutorial video…",[55,66,73],{"value":56,"source":57,"evidence":58},"JavaScript (Node.js)","commenter",[59,63],{"id":60,"by":61,"text":62},"23007084","btbuildem","tbh, what turned me off is having to have Node.js installed",{"id":64,"by":11,"text":65},"23009466","You should try to learn JS - it's really awesome. Asynchronous, incredibly stable, battle tested by billions of users every day, it has one of the best open source module…",{"value":67,"source":57,"evidence":68},"ffmpeg and ffprobe",[69],{"id":70,"by":71,"text":72},"23007015","areactnativedev","Looks great, from looking at the use cases and examples. What scares me is the requirement to have ffmpeg and ffprobe installed and available of course. Had a painful experience…",{"value":74,"source":57,"evidence":75},"WebGL\u002FGLSL transitions",[76,80],{"id":77,"by":78,"text":79},"23008615","ArtWomb","HTML5 \u002F WebGL integration makes this an essential tool for me. My target is a \"pure\" animation pipeline for ThreeJS scenes dumped to WebM files. Thanks for building ;)",{"id":81,"by":82,"text":83},"23014276","kimown","Can I use other glsl transition from shadertoy?","open_source","unknown",{"praise":87,"objections":107,"requests":130,"questions":152,"alternatives":171},[88,96],{"value":89,"source":57,"evidence":90},"Useful for automating video creation, e.g. user guide videos or resizing",[91,95],{"id":92,"by":93,"text":94},"23007126","onion2k","I've used the ffmpeg cli app to generate a set of user guide videos for a web app, and scripted it so that they can easily be recreated with client's logos and color schemes for…",{"id":51,"by":52,"text":53},{"value":97,"source":57,"evidence":98},"Looks great and useful",[99,103],{"id":100,"by":101,"text":102},"23008550","saaaam","This looks great! Two alternatives if you are interested in doing similar things in python are moviepy (https:\u002F\u002Fzulko.github.io\u002Fmoviepy\u002F) and vidpy (which I am working on, and…",{"id":104,"by":105,"text":106},"23007209","als0","Great project. I had to do some command line video editing a while ago and it was a fiddly and frustrating process. Keep going!",[108,112,116,123],{"value":109,"source":57,"evidence":110},"Requires ffmpeg installed, which is hard to set up",[111],{"id":70,"by":71,"text":72},{"value":113,"source":57,"evidence":114},"Requires Node.js",[115],{"id":60,"by":61,"text":62},{"value":117,"source":57,"evidence":118},"Written in JavaScript, seen as an ffmpeg wrapper",[119],{"id":120,"by":121,"text":122},"23007737","hnarn","Judging by the comments here I guess I'm the only one that feels extremely awkward about this being written in Javascript. I don't mind wrappers but is this essentially just an…",{"value":124,"source":125,"evidence":126},"Audio support is very limited","maker",[127],{"id":128,"by":11,"text":129},"23009245","No, audio support is very limited for now.",[131,141,148],{"value":132,"source":57,"evidence":133},"Mute audio sections within clips",[134,138],{"id":135,"by":136,"text":137},"23007831","umvi","Is there a way to mute specific windows of clips? I see you can do `cutFrom` and `cutTo` but say I just want to mute that section, not remove the entire section",{"id":139,"by":136,"text":140},"23009141","By mute I mean silence the audio for a specified duration in a clip",{"value":142,"source":57,"evidence":143},"Pandoc integration",[144],{"id":145,"by":146,"text":147},"23007643","xhkkffbf","Has anyone hacked together some Pandoc glue? It would be nice to just point it at some pandoc files. (Granted there will be a need for a few extra details with imagery.)",{"value":149,"source":57,"evidence":150},"Easier ffmpeg install instructions in README",[151],{"id":70,"by":71,"text":72},[153,160,167],{"value":154,"source":57,"evidence":155},"What is the use case?",[156],{"id":157,"by":158,"text":159},"23007023","gnomesteel","Cool, but why? What’s a use case for this?",{"value":161,"source":57,"evidence":162},"Can regular videos (not only GIFs) be created?",[163],{"id":164,"by":165,"text":166},"23007442","jacobush","Is this only for creating gifs? I was hoping it could create regular videos.",{"value":168,"source":57,"evidence":169},"Can shadertoy GLSL transitions be used?",[170],{"id":81,"by":82,"text":83},[172,176,180,191],{"value":173,"source":57,"evidence":174},"moviepy",[175],{"id":100,"by":101,"text":102},{"value":177,"source":57,"evidence":178},"vidpy",[179],{"id":100,"by":101,"text":102},{"value":181,"source":57,"evidence":182},"Descript",[183,187],{"id":184,"by":185,"text":186},"23007163","G2H","descript.com does this I believe",{"id":188,"by":189,"text":190},"23007507","didgeoridoo","This is pretty much exactly what Descript.com does with its “overdub” feature. You can even choose the emotion and intonation of the generated audio. It works freakishly well.",{"value":192,"source":57,"evidence":193},"Raw ffmpeg CLI",[194,198],{"id":195,"by":196,"text":197},"23010286","jonas21","Hmmm. I thought ffmpeg was already pretty good for declarative command-line video editing.",{"id":199,"by":200,"text":201},"23008969","Andrex","Until now couldn't the \"Programmatic video editing tool\" step be replaced with ffmpeg via CL?",{"comments":203,"answered":33,"key":204},4,[205,208,209],{"id":206,"text":207},"23008537","If by mute you mean cut away, then that's not implemented yet. You can achieve an inverse cutting by adding the same clip twice though, with cutFrom and cutTo.",{"id":128,"text":129},{"id":210,"text":211},"23009328","I might add the ffmpeg-static npm package, then no need for system ffmpeg. But that package does not work on raspberry pi, so yeah.. Downloading and installing static ffmpeg…",{"commenters":213,"max_depth":31,"maker_replies":203,"first_comment_mins":214,"lifespan_hours":215},62,19,22,[217,219,223,227,231,234,235,239,242,246,249,252,255,258,259,260,263,265,266,270,273,275,278,280,285,287,289,291,292,296,298,303,305,308,311,314,316,318,320,321,324,327,329,331,334,337,340,343,346,347,349,351,354,358,361,364,367,370,372,375,377,380,383,386,389,390,393,396,398,401,404,406,408,411,412],[100,38,31,218,101,38],"project\u002Fpositive\u002Fnone",[220,38,38,221,222,38],"23009641","commenter\u002Fneutral\u002Fnone","abetusk",[224,38,18,225,226,38],"23010143","project\u002Fneutral\u002Fidea","wpietri",[228,41,41,229,230,38],"23007412","project\u002Fcritical\u002Fidea","ArlenBales",[232,41,38,221,233,38],"23013020","gitgud",[77,33,31,218,78,38],[236,18,18,237,238,38],"23010002","project\u002Fmixed\u002Fidea","atum47",[240,203,18,225,241,38],"23007064","adwi",[243,203,38,244,245,38],"23007113","other\u002Fneutral\u002Fnone","fredmonroe",[247,203,38,244,248,38],"23007118","serverQuestion",[250,203,38,244,251,38],"23007191","jtvjan",[253,203,18,225,254,38],"23007147","amelius",[256,203,38,244,257,38],"23007287","ragebol",[188,203,38,244,189,38],[184,203,38,244,185,38],[261,203,38,244,262,38],"23011175","anchpop",[264,203,38,244,241,38],"23012841",[104,31,31,218,105,38],[267,268,38,244,269,38],"23008959",6,"vanderZwan",[271,268,38,244,272,38],"23009252","contingencies",[274,268,38,244,269,38],"23016664",[276,268,38,244,277,38],"23009434","detaro",[279,268,38,244,269,38],"23016660",[281,282,18,283,284,38],"23007080",7,"project\u002Fneutral\u002Fexecution","chpmrc",[135,286,18,225,136,38],8,[206,286,38,288,11,41],"maker\u002Fneutral\u002Fnone",[139,286,18,290,136,38],"project\u002Fneutral\u002Fnone",[128,286,38,290,11,41],[293,294,38,244,295,38],"23007177",9,"mingabunga",[297,294,38,244,277,38],"23007777",[299,300,31,301,302,38],"23017802",10,"project\u002Fpositive\u002Fidea","mertnesvat",[145,304,18,225,146,38],11,[70,306,18,307,71,38],12,"project\u002Fmixed\u002Fdocs",[309,306,38,244,310,38],"23007055","sirius87",[312,306,38,244,313,38],"23007066","ISL",[315,306,38,244,71,38],"23008965",[60,306,41,317,61,38],"project\u002Fcritical\u002Fexecution",[210,306,38,319,11,41],"maker\u002Fneutral\u002Fdocs",[157,32,18,225,158,38],[322,32,38,221,323,38],"23007040","JoeQuery",[325,32,38,221,326,38],"23009928","oh_sigh",[328,32,38,221,277,38],"23010324",[51,32,18,330,52,38],"project\u002Fneutral\u002Fdocs",[332,32,31,301,333,38],"23007165","nerdponx",[335,32,38,244,336,38],"23007354","otoburb",[338,32,38,244,339,38],"23007897","pbhjpbhj",[341,32,38,244,342,38],"23010073","rhizome",[344,32,38,244,345,38],"23007903","krsdcbl",[92,32,18,290,93,38],[81,348,18,225,82,38],14,[195,350,41,229,196,38],15,[352,350,18,225,353,38],"23015311","zzo38computer",[355,356,38,244,357,38],"23006967",16,"timpattinson",[359,356,38,244,360,38],"23007092","mikepurvis",[362,356,38,244,363,38],"23007129","neap24",[365,356,38,244,366,38],"23007377","lou1306",[368,356,38,244,369,38],"23007131","jjice",[371,356,38,244,226,38],"23010108",[373,356,38,244,374,38],"23007481","hckr_news",[376,356,38,244,323,38],"23007629",[378,356,38,244,379,38],"23007981","sergiomattei",[381,356,38,244,382,38],"23007971","hiccuphippo",[384,356,38,244,385,38],"23007987","bufferoverflow",[387,356,38,244,388,38],"23008344","time0ut",[199,356,41,229,200,38],[391,356,38,244,392,38],"23009205","jandrese",[394,356,38,244,395,38],"23009226","blululu",[397,356,38,244,254,38],"23009423",[399,356,38,244,400,38],"23009729","01100011",[402,356,38,244,403,38],"23010045","adtac",[164,405,18,290,165,38],17,[120,407,41,317,121,38],18,[409,407,38,221,410,38],"23008014","buzzerbetrayed",[64,407,38,221,11,41],[413,407,38,221,414,38],"23010094","SrslyJosh",[],[417,421,426,430,435,439],{"id":418,"name":419,"points":420,"category":20},"23021295","Insomnia Designer",317,{"id":422,"name":423,"points":424,"category":425},"22985055","Kanmail",271,"productivity",{"id":427,"name":428,"points":429,"category":20},"22996374","delta",261,{"id":431,"name":432,"points":433,"category":434},"22979288","exchangerate.host",249,"finance_crypto",{"id":436,"name":437,"points":438,"category":425},"22974380","Help Me Decide Please",194,{"id":440,"name":441,"points":442,"category":425},"22989904","gmail-helper",192,false,"v2",{"id":446,"name":5,"line":6,"ai":443,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":447,"top":18,"kw":448,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":449,"url":9,"mix":450,"praise":89,"objection":109,"sub":21},23006794,0.02,[24,25,26,27],"5315303005003330530130350031000000100310",[31,32,33,31],1793991008329]