Video Blog

Video v0.2 Released

:: relase

By: Leif Andersen

We just launched Video v0.2. This release marks the first stable version of Video for since v0.1.1 over a year ago. This release uses FFmpeg as a backend directly, rather than going through MLT. As such, Video is significantly more stable. Additionally, Windows and macOS users don’t need to worry about installing any more third party libraries, as Video comes bundled with the versions of FFmpeg required to run.1

You can download the latest version of Video using the Racket archives, by running:

raco pkg install video

or installing it in DrRacket. Alternatively, you can download a tarball on Github.

The following is a list of features since the last release candidate for Video. See previous blog posts or the LOG file for a full list.

  • Complete rewrite of compiler (first two passes).
  • New compiler creates significantly more stable video programs.
  • Can now properly decode wav files
  • Remove explicit #:transitions/#:merges keywrods from playlists/filters.
  • Fixed bug preventing video from being compiled on systems without ffmpeg.
  • (Still requires ffmpeg to run.)
  • Improve video player stability.
  • Seek bar and counter much more reliable.
  • Disable some unstable features, to be enabled for the next release.
  • Minimum required version of Racket bumped to 7.0
  • Add a —prove flag to raco video to get information about media file.
  • When using the video player server, sound stops when the server is out of scope.
  • The video-player-server% object is now considerably easier to construct.
  • Add #:start/#:end/#:length as special keywords for clip function.
  • Improve pause responsiveness
  • Add -m flag to play media files without a video program
  • Fix bug where audio wouldn’t play on windows
  • Pause feature no longer additionally stops the video.
  • Improved audio/video syncing in live preview.
  • Fixed bugs in front half of Video compiler.
  • Made ‘canvas’ an optional parameter

1Linux users will still need to install FFmpeg themselves. Video will work best with FFmpeg 3.x, but may also work with 2.7+ with mixed results.

Video v0.2 Releace Candidate

:: release

By: Leif Andersen

Update: We have released a second release candidate. This fixes several bugs users have posted on the issue tracker.

The first release candidate for Video v0.2 has been released! You can install it from the command line with:

raco pkg install video-testing

As before, the video Racket package points to the latest stable version (v0.1 when writing this post), so use video-testing to download the RC.

You can report any bugs you find here:

Here is a list of the major changes from the last beta:

  • Update Video to use a version of libvid that does not segfault.
  • More precise dependencies in Video’s info file.
  • If FF_LOG=stdout, then do no redirection of ffmpeg’s logging.
  • More complete render parameterization.
  • Cleaner error messages.
  • Fixed bug preventing Video from rendering audio-only files.
  • Pause feature no longer additionally stops the video.
  • Improved audio/video syncing in live preview.
  • Fixed bugs in front half of Video compiler.
  • Made ‘canvas’ an optional parameter

Making an IDE Plugin for DrRacket

:: racket, drracket, tutorial

By: Leif Andersen

I recently had several students ask me to show them how to make DrRacket plugins for their new language. It is easy to do, but I noticed that there aren any existing guides on how to do it. There is the plugin documentation, which is a good reference and has some good examples. Unfortunately, it lacks a good step by step tutorial on how to make new IDE plugins. This post is that tutorial.

DrRacket plugins fall into one of two main categories:

  1. Language-Specific Plugins
  2. Global Plugins

The former only enables the plugin when the user is editing a file in that plugin’s associated language. The latter, however, is for plugins that should always be enabled, such as DrRacket’s Vim Mode. This tutorial covers both plugin styles.

Video at RacketCon 2017

:: news

By: Leif Andersen

I recently gave a talk about Video at RacketCon 2017. The Video goes over the basics of the language’s API and gives some incites on the tower of DSLs Video runs on. If you haven’t watched the Video yet you can find it below.

Video v0.2 Beta

:: release

By: Leif Andersen

Today we are announcing the first stable beta for Video. To install it, you can first install Racket, and then run:

raco pkg install video-testing

Alternatively, within DrRacket, go to File -> Install Package, and type in video-testing.

Either way, make sure you installed video-testing, the video package points to the latest stable build of Video, which is v0.1.1 at the time of this release.

The documentation for this version can be viewed on the Racket documentation website. Unlike with the Alpha builds, the documentation has been updated to reflect the new version. As such:

Video v0.2-beta is now mature enough for programmers to reliably use it without segfaults.

The above sentence is significant because it means Video is now one of the most stable open source video production tools available.

Video v0.2 Alpha

:: release

By: Leif Andersen

Update2 A third alpha is released. This should be the last alpha build. The next release will be a beta. You can download the build here.

Update: A second alpha release has been created. This fixes some bugs preventing Video from working on Windows and Linux. Video has now been tested on all three platforms. You can download the build here.

This is an alpha version of Video v0.2. The main update here is dropping MLT as a dependency, and bundling FFmpeg for Windows and Mac builds. As such, Video can be used out of the box on now, without the need to hunt down the more obscure MLT library separately. Linux machines must still download the correct version of FFmpeg themselves. However, this is much easier to do.

Specifically, FFmpeg 3.2 is recommended, but the following specific library versions are also usable:

  • libavcodec v57
  • libavformat v57
  • libavutil v55
  • libswscale v4
  • libswresample v2
  • libavfilter v6

Again, these are included for the mac/windows builds, and are all part of an FFmpeg 3.x installation.

Some notes about why this is still alpha:

  • The video preview currently does not work. People needing access to this feature need to use v0.1.1.
  • Video has not been thoroughly tested

Once the first one has been addressed we can move to beta, and once both have been addressed we can move to rc.

You can download the release here.

Please report any issues you find on the bug tracker. (If you don’t have a github account you can also use this anonymous form.