Media backends

The media backend application does the work of playing and controlling the media based on requests from the Storyboard application over a Storyboard IO channel. The default Storyboard IO channel name is com.crank.media_backend. This value can be overwritten by setting the SBMEDIA_CHANNEL_NAME environment variable to a new value. Currently the only supported media backend is based on gstreamer.

gstreamer-backend

This media backend uses the gstreamer framework to play and control audio and video files. In order to use this backend the platform must have gstreamer and the required plugins installed. It is a good idea to try and play content with the “gst-launch” application to ensure a proper installation before running gstreamer-backend. This backend also uses Storyboard IO for communication with the Storyboard application so please ensure Storyboard IO is functional and the application has the “greio” plugin loaded.

Options:

-e : Render the video content with an external buffer
               
-p pipeline: Use the defined gstreamer pipeline to play the media
                
-v: increase verbosity, debug output
                        

Action data

The “new.audio” and “new.video” actions take an extra_data argument. This argument is a string which can contain the following options which must be separated by a “;”.

Gstreamer pipeline

You can specify the gstreamer pipeline used to play the particular media by either passing it on the command line to gstreamer-backend with the “-p” option or by passing it to the actions. The pipeline can be passed in as:

“pipeline:[your pipeline]”

This pipeline can be similar to the one used with the “gst-launch” application with a few minor modifications. In order to allow the changing of the media file the first part of the pipeline must contain a named filesrc element as follows:

“pipeline:filesrc location=video.mov name=media-src”

Doing this will allow the code to find the named element and replace the location with a new video file.

External render extensions

If the content is to be rendered with an external render extension then you can pass the “-e” option or add an option to the extra_data argument as follows:

“use_external”