[HN Gopher] Video: A Language for Making Movies
       ___________________________________________________________________
        
       Video: A Language for Making Movies
        
       Author : bedits
       Score  : 75 points
       Date   : 2024-07-30 04:46 UTC (18 hours ago)
        
 (HTM) web link (lang.video)
 (TXT) w3m dump (lang.video)
        
       | kmoser wrote:
       | Documentation seems to be 404 (except for the earliest version,
       | v0.0).
        
       | fouronnes3 wrote:
       | I'll be that guy: curious name :/
        
         | jpk wrote:
         | In the same realm as "Go", but we seem to get by searching with
         | "golang".
        
           | tnzk wrote:
           | Even videolang is just a letter away from VideoLAN. I love
           | the idea as I built something similar in the past though.
        
         | rjh29 wrote:
         | 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'
        
           | n3storm wrote:
           | I agree. Giving instructions to untrained people becomes a
           | nightmare.
        
           | roydivision wrote:
           | Hey Apple, are you listening? Pages, Numbers, Photos, Finder,
           | Messages...
        
             | ryukoposting wrote:
             | Oh, they know. The arrogance is intentional.
        
             | oersted wrote:
             | 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.
        
               | shiroiushi wrote:
               | 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".
        
               | fragmede wrote:
               | > Every OS has a "Calculator"
               | 
               | wait till you hear about iPadOS
        
             | nextaccountic wrote:
             | Also Gnome
        
           | Doctor_Fegg wrote:
           | The number of people who call Google Maps just "Maps" is
           | continually depressing.
        
           | gwervc wrote:
           | 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.
        
             | Zambyte wrote:
             | > 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
        
           | rscho wrote:
           | 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.
        
           | LeifAndersen wrote:
           | 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?
        
         | LeifAndersen wrote:
         | 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...)
        
       | rjh29 wrote:
       | 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 :(
        
         | bjackman wrote:
         | 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.
        
           | noufalibrahim wrote:
           | 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.
        
         | Eduard wrote:
         | Additionally: no sample video (that's what this project is
         | about, right?). And using terms only an ingroup can understand
         | ("what's DrRacket again?")
        
         | mkl wrote:
         | 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.
        
         | rafaelferreira wrote:
         | There are some conference slides linked from project website:
         | https://lang.video/pub/icfp2017/slides.pdf
        
       | arm wrote:
       | Archive.org link for the v0.2 documentation:
       | 
       | https://web.archive.org/web/20210419191239/https://docs.rack...
        
         | EvanAnderson wrote:
         | 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.
        
           | CodeArtisan wrote:
           | Avisynth+ does that. It is well supported and has a huge
           | community.
           | 
           | http://avisynth.nl/index.php/Main_Page
        
             | noiv wrote:
             | AviSynth also has a 'function' keyword.
        
             | EvanAnderson wrote:
             | Definitely going to check that out. Thank you for the link.
        
             | zersiax wrote:
             | 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.
        
             | LeifAndersen wrote:
             | 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.
        
           | bux93 wrote:
           | This "language" looks more like a file format to be honest.
        
             | rscho wrote:
             | Well, it gets compiled to Racket code, and has distinct
             | syntax, so it seems to fit the bill as a language.
        
           | thelightherder wrote:
           | 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.
        
       | soperj wrote:
       | > Copyright (c) 2016-2019 Leif Andersen
       | 
       | Is it still being updated?
        
         | mkl wrote:
         | No: https://github.com/videolang/video/commits/master/. Last
         | commit November 2019.
        
           | rscho wrote:
           | Im not sure, but I think Leif has graduated
        
             | LeifAndersen wrote:
             | That I did. You can find my dissertation here:
             | https://www2.ccs.neu.edu/racket/pubs/#dissertation-andersen
        
       | preek wrote:
       | 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.
        
       | Brosper wrote:
       | I would like to see a few examples of usage of this tool. Like
       | code and video example.
        
       | INTPenis wrote:
       | 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.
        
         | LeifAndersen wrote:
         | 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.
        
       | jagged-chisel wrote:
       | > 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
        
       | liampulles wrote:
       | 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.
        
       | renegat0x0 wrote:
       | 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.
        
       | thih9 wrote:
       | 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
        
       | bentt wrote:
       | 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.
        
         | chankstein38 wrote:
         | I clicked off for this reason. Sounds really interesting but
         | nowhere does it even show a screenshot or capabilities.
        
           | LeifAndersen wrote:
           | 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.
           | ..
        
             | LeifAndersen wrote:
             | Oh, it also looks like @arm found a wayback snapshot at:
             | 
             | https://web.archive.org/web/20210419191239/https://docs.rac
             | k...
             | 
             | Still will fix that ASAP, thanks!
        
         | pimlottc wrote:
         | Honestly from the title I thought this was a think piece about
         | visual media and human communication.
        
       | b2bsaas00 wrote:
       | It's no very clear from the homepage what it does.
        
       | hkonsti wrote:
       | 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!
        
         | LeifAndersen wrote:
         | 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!)
        
       | dartos wrote:
       | 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?
        
       ___________________________________________________________________
       (page generated 2024-07-30 23:01 UTC)