Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Video: A Language for Making Movies (lang.video)
85 points by bedits on July 30, 2024 | hide | past | favorite | 56 comments


Archive.org link for the v0.2 documentation:

https://web.archive.org/web/20210419191239/https://docs.rack...


This looks interesting. Thanks for digging that up.

I've done a little video editing using Adobe Premiere (mid-2000's) and Shotcut (2022). The UI for both seemed overwrought and difficult to get what I wanted out of. A text description of timecodes and filter parameters sounds a ton easier to use.

Having said that, I assume that would exist if the market actually wanted it.


Avisynth+ does that. It is well supported and has a huge community.

http://avisynth.nl/index.php/Main_Page


I'll check that out :) I'd be curious how well this would work without being able to see the video you're messing with (fully blind myself). Will give that a whirl.


Author of videolang:

Avisynth+ is awesome.

Interestingly enough, the first version of video was actually built on top of libmlt: https://www.mltframework.org/

I was just dissatisfied with it due to its lack of functions. I can't remember why I didn't just use avisynth as it does actually have functions.


Definitely going to check that out. Thank you for the link.


AviSynth also has a 'function' keyword.


I agree the UI for Premiere can be overwhelming to a new user. Also, the keyboard shortcuts are clearly assigned by engineers and not editors.

When I switched from tape-to-tape editing to NLEs in 2005, I started a new keyboard shortcut layout that was more intuitive, and was all on the left side of the keyboard, allowing the right hand to never have to leave the mouse.

I made a tutorial teaching Premiere by way of these shortcuts (although these shortcuts work on just about every NLE, with slight variations). The tutorial is long, but if you just go through the first part, explaining each shortcut, you can get pretty far along learning how to edit with Premiere.

The video and shortcut layout download is here: https://davidblairportfolio.com/daves-premiere-pro-tutorial

This might be the only editing tutorial that uses as an editing example the editing of the tutorial you're watching.


This "language" looks more like a file format to be honest.


Well, it gets compiled to Racket code, and has distinct syntax, so it seems to fit the bill as a language.


If the project's repository is https://github.com/videolang/video , then the last commit was 5 years ago.

> You can find the documentation for the current stable version of Video on the Racket docs website.

The link resolves to "Page not found" for me, same for the versions listed below: 0.2, 0.1. The link to 0.0 [1] works - but the page describes it as the oldest version.

[1]: https://docs.racket-lang.org/video/index.html


> This is a highly unstable and experimental DSL for editing videos. Do not use this library as core parts of it are still being written.

From docs v0.0 link. Not terribly informative, but it’s a start.

Edit: oh, someone found an archive of 0.2 docs: https://news.ycombinator.com/item?id=41106319


I’ve seen a talk about this at BOB conference at Berlin some years ago. I learned a lot about DSLs in scheme, also the talk was highly entertaining. I’d recommend it for anyone into scheme or lisp.


Unfortunately not updated anymore, but in essence it was just an interface to ffmpeg options. So either create pre-defined script modules for all your ffmpeg tasks, or video language scripts. Practically it doesn't really matter, but I think I'd go for simple scripting modules out of familiarity.


Ya, I haven't updated video in years. I'm perfectly happy to do it, but I just haven't had a need, and no one asking for updates. :D

There is a lot of overlap between video and ffmpeg's filtergraph. The biggest difference, however, is that video tries to provide a full language on top of it, that tries to use NLVEs as an abstraction, rather than pure filters.

It worked out very well for lots of videos with very similar composites (in my case it was making conference recordings). But frankly, OBS also fit the bill almost as well so we started using that.


Cool! I am the maintainer of a project that does very similar things. Maybe this is relevant for people trying to compose videos in JS or TS. https://github.com/redotvideo/revideo

It's based on the browser canvas and allows for instant preview of compositions. We recently rebuilt our renderer on top of the web-codecs API which makes it super fast. Would love some feedback!


Author of videolang here:

Oh wow, that's really neat!

I'd also love to plug Remotion https://www.remotion.dev/ That also has a video making product. (I don't work with them, but would love to!)


> Copyright © 2016-2019 Leif Andersen

Is it still being updated?



Im not sure, but I think Leif has graduated


That I did. You can find my dissertation here: https://www2.ccs.neu.edu/racket/pubs/#dissertation-andersen


I have been using around 2010 avisynth. The premise seems similar

https://sourceforge.net/projects/avisynth2/files/AviSynth%20...

http://www.avisynth.org/

Last update seems to be from 2015 though.


Documentation seems to be 404 (except for the earliest version, v0.0).


How does this compare to vapoursynth? That's a python DSL, mainly used for video filtering, but one can use it to splice together video.


I would like to see a few examples of usage of this tool. Like code and video example.


It’s no very clear from the homepage what it does.


There's no explanation of how to use it, or even a code snippet. And the documentation is down. So not very useful I'm afraid :(


I've always thought that tech websites often start with the wrong thing, with installation instructions front & centre like this one.

If I'm coming to the website looking for that info I'll be happy to dig around a little bit to find it. If I'm coming to the website as a curious observer that information is not useful, it's wasting space that could be used demonstrating _why_ I'd want to install it.


Same. Installed it. Couldn't find a small thing I could play around with. Clicked on the docs link and got an error. Very disappointing.


The documentation was hosted on another site, and at least one version of it has moved to https://docs.racket-lang.org/video/index.html. Sadly it says almost nothing - I think this is v0.0 and can't find a way to change that. The more recent documentation source code is at https://github.com/videolang/video/tree/master/video/scribbl... and there are examples at https://github.com/videolang/video/tree/master/video/example... (without any explanation, and they don't seem to do much).

Unsearchable name, Scheme-like syntax, no accessible documentation, no compelling examples ... not much chance of success. Still, the idea of a "language for making movies" is interesting.


Additionally: no sample video (that's what this project is about, right?). And using terms only an ingroup can understand ("what's DrRacket again?")


There are some conference slides linked from project website: https://lang.video/pub/icfp2017/slides.pdf


This might be really neat, but apparently it's for people who already know what it is. The website does so little to explain it that it feels unwelcoming.


I clicked off for this reason. Sounds really interesting but nowhere does it even show a screenshot or capabilities.


Author here. Yikes, I didn't realize that Racket's documentation builder broke. It looks like it has for some time. I'll fix that momentarily. In the meantime, you can look at the source for the documentation at:

https://github.com/videolang/video/blob/master/video/scribbl...


Oh, it also looks like @arm found a wayback snapshot at:

https://web.archive.org/web/20210419191239/https://docs.rack...

Still will fix that ASAP, thanks!


Honestly from the title I thought this was a think piece about visual media and human communication.


A clever name, but not a good one.

Makes the headline read weirdly, doesn’t tell me anything about what it is and probably has poor SEO.

Also, as someone with literally 0 video editing experience, why would I want my video editor to be programmable?


I'll be that guy: curious name :/


In the same realm as "Go", but we seem to get by searching with "golang".


Even videolang is just a letter away from VideoLAN. I love the idea as I built something similar in the past though.


I wish people would stop using common nouns for program names, not only is it hard to search for, but it's kind of ... arrogant? Like you think you're the best there is and will ever be for that particular noun? Imagine if Google Chrome renamed to 'Browser'


That's a pet peeve of mine for a long time. It pollutes the global namespace, it's hard to search for, gives no information on what the product or company does (e.g. Alphabet) and lacks originality.

Edit: as someone noted in a siblings comment, it's also make harder to help people. I had a hard time making someone install "Signal" at a stressing time because that's just a normal word in French.


> It pollutes the global namespace

I think we should rely less on global namespaces. DNS was designed in a way that specifically allows for the same name to mean different things for different people. I should be able to use my first name as a domain name if I want. Other people should also be able to use their first name if they want. Other people still should be able to use whatever domain they want to disambiguate between the two. This is a feature of all high level programming languages within a rounding error.

> it's hard to search for

It was the first result for me on Kagi when I searched "video lang". I also tested Google and DDG and unfortunately it didn't even make the first page. I wonder why Kagi was able to surface it, but not the other two.

Either way, I recommend using search engines for discovery rather than recall, and you've already discovered this through other means. For recall, save a link to it. I personally use Org Roam for capture and recall.

> I had a hard time making someone install "Signal" at a stressing time because that's just a normal word in French.

The English word comes from the French word[0], but as an English speaker at least, the name makes a lot of sense to me. Particularly, it is a descriptive name that to me doesn't feel super generic like video lang.

[0] https://en.wiktionary.org/wiki/signal


Author here:

The idea for calling it Video originated from it just being a library in Racket for editing videos. The name `video` fit the trend for packages in Racket at the time:

* `pict` - was an existing library for making pictures * `slideshow` - was an existing library for making slideshows * `math` - was an existing library for...well..math (beyond what the language natively provided) * `web-server` - was an existing library for making webservers.

You get the idea, extending it:

* `video` - was a new (and thus far only in Racket) library for making videos. (note the lower case `v`)

Unfortunately video grew far beyond what I expected it to (yes still small, but I honestly expected to be the only user ever, rather then one of a dozen or so users). Unfortunately as mentioned in previous comments, I suck at naming things. But also unfortunately, no one else offered another name. So video just sort of...stuck. I eventually tacked `Lang` onto the end of it, and made the initial `V` uppercase in a desperate attempt to give it a slightly more unique name. But then that became too close to videolan...which...sigh...did I mention I fucking suck at naming things?


The number of people who call Google Maps just “Maps” is continually depressing.


I agree. Giving instructions to untrained people becomes a nightmare.


In this context, you'd import the language just like a library, and feed the file to the Racket compiler. This an embedded language, so there can be no confusion.


Hey Apple, are you listening? Pages, Numbers, Photos, Finder, Messages...


To be fair these are part of a preinstalled suite of native apps, an extension of the OS, rather than being part of the larger app ecosystem. You could argue that implicitly they have the brand-name in front: e.g. "Apple/Mac Photos" or "iMessage".

Every OS has a "Calculator" or something like "Notes", these are reasonable names. Just like you have Google/Apple "Maps" or "Calendar". It's standard to use such naming for apps within a branded suite.


Yeah, that's basically how I treat Google stuff with generic names: I call them "Google Maps", "Google Photos", etc. When I hear Apple users talk about their music service, they call it "Apple Music".


> Every OS has a "Calculator"

wait till you hear about iPadOS


Oh, they know. The arrogance is intentional.


Also Gnome


Perhaps the worst possible name, going by the spirit/ideas similar to trademark.

This is calling your programming language "Program"


Author here:

Ya...its a terrible name. Most of the people I work with tell me I shouldn't be allowed to name things. And frankly, I agree. I mean, for fuck sake, I named my latest project (hybrid visual-textual programming languages): VISr:

https://visr.pl

It was supposed to stand for visual and interactive syntax realized, buuuut....ya.

(For the record, I got started working on VISr because I wanted interactive code snippets in my Video programs. And while I 'technically' got a prototype of it, as documented in my dissertation, its very...lacking...)




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

Search: