
Show HN: Editly – Declarative command-line video editing - mifino
https://github.com/mifi/editly
======
saaaam
This looks great! Two alternatives if you are interested in doing similar
things in python are moviepy
([https://zulko.github.io/moviepy/](https://zulko.github.io/moviepy/)) and
vidpy (which I am working on, and still has many issues:
[https://antiboredom.github.io/vidpy/](https://antiboredom.github.io/vidpy/))

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

------
ArlenBales
Great.. now we can have more videos like the one this parodies:
[https://youtu.be/Jrl9LQesl7U](https://youtu.be/Jrl9LQesl7U)

~~~
gitgud
That's painfully accurate...

------
ArtWomb
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 ;)

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

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

~~~
G2H
descript.com does this I believe

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

------
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!

------
vanderZwan
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

~~~
contingencies
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.

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

------
chpmrc
[https://github.com/mifi/editly/blob/master/sources/glFrameSo...](https://github.com/mifi/editly/blob/master/sources/glFrameSource.js#L5)
thank you for your honesty!

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

~~~
mifino
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.

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

~~~
mifino
No, audio support is very limited for now.

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

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

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

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

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

~~~
ISL
apt install ffmpeg?

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

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

~~~
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 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](https://github.com/mifi/editly#use-cases)

~~~
otoburb
>> _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.

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

~~~
rhizome
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](https://some.site/image/abc123-GUID?format=jpeg)
for the source image on the site itself.

Hotlinking is endangered. Silently.

------
kimown
Can I use other glsl transition from shadertoy?

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

~~~
zzo38computer
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.

------
timpattinson
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](https://www.youtube.com/watch?v=6QIh3GSgPPk)

~~~
mikepurvis
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...](https://medium.com/@jamesbridle/something-is-wrong-on-the-
internet-c39c471271d2)

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

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

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

~~~
buzzerbetrayed
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.

