tkvlc

It involves making a frame widget in Tcl, and then passing its Windows
HWND or X Window ID to C (use winfo id window) to initialize the
libVLC media player. Alternatively, a photo image can be passed
which receives the decoded video frames.

User also can use this extension in console program, just not pass HWND
when using tkvlc::init to initialize (after version 0.4).
However, tkvlc in console program now only work when interactive with tclsh.

The event callback is invoked with an additional argument, which is
made up of the event type (string): media, state, time, position,
audio, and frame.

The event type frame occurs when new pixels have been rendered into
a photo image.

UNIX BUILD

Only test on openSUSE LEAP 42.2 and Ubuntu 14.04.

First is to install libVLC development files. Below is an example for openSUSE:

sudo zypper in vlc-devel

Below is an example for Ubuntu:

sudo apt-get install libvlc-dev

And please notice, I think user still needs VLC codec package when playing a multimedia file.

Building under most UNIX systems is easy, just run the configure script
and then run make. For more information about the build process, see
the tcl/unix/README file in the Tcl src dist. The following minimal
example will install the extension in the /opt/tcl directory.

$ cd tkvlc
$ ./configure --prefix=/opt/tcl
$ make
$ make install

If you need setup directory containing tcl configuration (tclConfig.sh),
below is an example: