Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Editly – Declarative command-line video editing (github.com)
429 points by mifino 65 days ago | hide | past | web | favorite | 75 comments



This looks great! Two alternatives if you are interested in doing similar things in python are moviepy (https://zulko.github.io/moviepy/) and vidpy (which I am working on, and still has many issues: https://antiboredom.github.io/vidpy/)


Neat! I love your demo. Could you say a bit more about how you're intending yours to be different? (I know zero about this kind of app, so this is genuine curiosity about the space and what differentiates tools.)


Why not do a 'Show HN'?


Great.. now we can have more videos like the one this parodies: https://youtu.be/Jrl9LQesl7U


That's painfully accurate...


HTML5 / 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 ;)


Well, I came here to congratulate for the good job, but everyone seems to be talking about creating automatic videos for youtube. Well, that's the thing with this kind of stuff, it goes both ways. Can be used for good or bad. But congratulations anyways. Good job.


From the headline I was hoping someone finally built a system that transcribes interview footage and lets you edit the video by editing the text.


descript.com does this I believe


Wow, this is exactly what I was picturing! Thank you for sharing.


Wow, that looks like exactly what I've been looking for.


> lets you edit the video by editing the text

What would happen if you insert a word into the text?


The voice is cloned by a GAN and new audio is generated, of course!


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.


That’s a great idea! Hope someone build it


didn't Adobe demo something like this?


Yes, Adobe Voco. They demoed[1] it once and then they never talked about it again.

[1]: https://youtu.be/I3l4XLZ59iw


Great project. I had to do some command line video editing a while ago and it was a fiddly and frustrating process. Keep going!


Somewhat related: I recently realized that in theory I should be able to easily use ffmpeg with Termux to cut and concatenate clips I shoot on my phone without recompression, since they're all guaranteed to have the same settings (as long as all inputs are landscape or portrait). However, typing out the file path for a list of files would be a complete pain on the phone.

Does anyone know of a way to select a list of files on Android and send that list as input to a script in Termux? That would open up quite a bit of automation possibilities


Put them in a given directory. When the phone is connected, use that as input to a script. Alternatively, use metadata such as date or location.


Sounds like a viable workaround if the automation app route doesn't work out for me, thanks!


You should be able to do that with the Tasker or Automate apps.


Will give that a try, thanks!



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


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.


By mute I mean silence the audio for a specified duration in a clip


No, audio support is very limited for now.


There was something similar posted a few weeks ago called video puppet, but it had more features.


Different features. And is a service, not standalone software.


Looks nice it gave me a good side project idea which is merging my family randomly cut small pieces with the music I liked. And combine with beats if possible. Thanks for sharing.


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.)


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 installing ffmpeg on Jessie Light on a rpi in the past.

If you know a good and easy way, or have a link to such a way, to install these on Mac / Windows / Ubuntu I think adding it to your readme could help you gain traction outside of people who already have some of the capacities needed to do such edits.

Edit: precised that I'm not looking for a way to install ffmpeg, I was just suggesting that pointing to a way in the README would be an improvement IMHO.


I use static builds from [0] for my Rockchip RK3368. You have to be okay with trusting those builds though.

[0] https://johnvansickle.com/ffmpeg/


tbh, what turned me off is having to have Node.js installed


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 builds from ffmpeg.org is pretty easy these days


apt install ffmpeg?


Yep, maybe that's all one would have to add in the readme for Linux guys


Cool, but why? What’s a use case for this?


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 overlays. This would be an alternative product for doing that.


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 with help text

Simply convert a video to a GIF

Resize video to any size or framerate and with automatic letterbox/crop (e.g. if you need to upload a video somewhere but the site complains Video must be 1337x1000 30fps)

[1] https://github.com/mifi/editly#use-cases


Or you're like me, and you just enjoy text-based file formats that you can version control.


>>Simply convert a video to a GIF

I wonder if animated GIFs will ever be replaced. Nothing beats the convenience of dropping in a GIF to express memes because embedded video clips still don't have that same easy workflow.


There are almost no gifs online nowadays, the word has been adopted to mean "short animation loop with no sound", but whenever you drop a "gif" anywhere online it's pretty damn sure actually an mp4 in a video tag


Ha, I tried to download a gif the other day and couldn't get one from Google or Giphy - they're all webp files that masquerade as gif (eg by having .gif URL ending but being a webp).


I noticed this happening with Google Image search the other day, too: image previews are base64 strings, and then sites will use URLs like https://some.site/image/abc123-GUID?format=jpeg for the source image on the site itself.

Hotlinking is endangered. Silently.


Use your imagination.

Edit: For a group of people that have critical thinking skills it's discouraging to see the same trite questions asked over and over again. The author of the project does not have to sell a use case. Use your imagination to create one. George Boole did not pitch the transistor.


Trite comments don't get better by equally trite responses.


Surely the authors did not create this application in a void without any idea of the intended usage.


Can I use other glsl transition from shadertoy?


Hmmm. I thought ffmpeg was already pretty good for declarative command-line video editing.


Reading the documentation for FFmpeg, it seems like FFmpeg can also be used to concatenate and overlay video and edit the audio, and supports captions and subtitles and many other functions too. It would seem that Editly supports the use of JSON5, and the use of JavaScript and HTML for custom graphics/animations (although I don't see a lot of the stuff that FFmpeg does in the documentation for Editly), but what I want is the ability to use PostScript for custom graphics and animations, rather than JavaScript. Although external graphics/animations are also helpful, but I think FFmpeg already does that anyways (and it also supports APNG, too, which is better than animated GIF, I think). However, neither FFmpeg nor Editly support farbfeld, as far as I can see.


Welcome to the era of the fully automated youtube channel.

Reddit scraper -> voice synthesizer -> Programmatic video editing tool -> youtube API

For extra credit add some kind of ML tool to identify "stories" in comments

Trash content, but a lot of people seem to watch it [1]

[1] https://www.youtube.com/watch?v=6QIh3GSgPPk


Your comment also reminds me a lot of the James Bridle piece from a few years ago about creepy, semi-automated YouTube content targeting kids:

"Other channels do away with the human actors to create infinite reconfigurable versions of the same videos over and over again. What is occurring here is clearly automated. Stock animations, audio tracks, and lists of keywords being assembled in their thousands to produce an endless stream of videos. The above channel, Videogyan 3D Rhymes — Nursery Rhymes & Baby Songs, posts several videos a week, in increasingly byzantine combinations of keywords."

https://medium.com/@jamesbridle/something-is-wrong-on-the-in...


Also, some of these videos are pretty disturbing or inappropriate for their intended audience. This phenomenon has been dubbed the "Elsagate" on Reddit.


I already view the “meme” phenomenon the same way: a creepy, possibly semi-automatically generated image based on random keywords.


I was talking to a friend about these about a week ago and it hit me how easy it would be to fully automate one of those channels. I started looking into scraping and automatic screenshots with selenium. After a little bit, it didn't feel right and I did a bit of thinking. I decided that (for me at least) it's not cool to use other people's experiences to profit off of in such a way. I really like the idea of completely automated workflows, but if it's going to be taking advantage of people's personal experiences, I don't think it's the way to go.


I'm with you on this. But if we think of this process as akin to a funnel, I really wonder about the people making it all the way to the bottom. It suggests a lot of stuff is getting created by people who just blow right past the ethical considerations.


It's mostly because YT actually pushes this garbage, while demonetizing or banning real people with tons of subscribers.


And then post that video back to reddit.

And then scrape youtube comments in videos posted on /r/videos and pass them as your own comment on the corresponding reddit posts.

Free karma.


Very strange indeed. I think I started seeing videos with content from AskReddit on YouTube last year with several thousands of views. My first thought was well why don’t these viewers just go on Reddit and read it there instead.


I prefer audio over text, so text to speech is my preferred medium if a high quality voice is used, such as the ones from Google. No TTS browser extension I have tried has a good ux. Article Reader and Evie on android are okay.


I read Reddit often and I honestly do enjoy those TTS compilations.

They're low effort, sure. But it's a different format and allows me to do other things while hearing creepy stories or whatnot.


Until now couldn't the "Programmatic video editing tool" step be replaced with ffmpeg via CL?


Not just Reddit. The other day I googled a fish my brother was interested in for his aquarium. There was a YT vid composed of a text-to-speech of a popular aquarium site's page on the fish, along with scrolling images from a Google image search on the fish variety.

It's been going on for a few years, but seems to have gotten worse lately.


Startup idea: auto twitch highlight to youtube aggregator as a service.

Put in your channel, upload your intro, outro, and paid testimonial for raid: shadow whatever, profit.


I look forward to someone building Narrated Hacker News.


Last I checked ByteDance (TikTok) bills itself as an AI company. This may have just been a pitch to woo investors, but this sort of thing would naturally fall into an AI business' revenue model.


I remember an old Maya demo where it would lipsync a face mesh with an audio track. The technology is there to have a fully automated news mascot read you the stories.



Is this only for creating gifs? I was hoping it could create regular videos.


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 ffmpeg wrapper in JS?


Is your problem with it the fact that it is a wrapper, or that it's javascript?

If you don't like that it's a wrapper, what is wrong with adding a wrapper that adds new functionality?

If you don't like that it's Javascript, how would another language somehow make this better? Especially with the sheer number of people that are already comfortable using Javascript.


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 ecosystems in the world, and it runs everywhere.


> it has one of the best open source module ecosystems in the world,

Left-pad, is-promise.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: