View Source

{pop-away:metadata | comments | children | labels}

{anchor:tags}
h3. 1.3.0-rc source code.

The 1.3.0-rc1 are available as tags on [Teltek's Github|https://github.com/teltek/Galicaster].
* [1.3.0-rc1|http://webfiler.teltek.es/webfiler/galicaster/galicaster-1.3.0-rc1.tgz]

{anchor:features}
h3. New features and improvements
----

The following list includes the most important improvements on this new release. During the release candidate testing process we will be updating the documentation both in the code (at docs/) and in this wiki regarding these changes. Anyway, use the usual channels for any questions or suggestion - email, github, community.


*New Features:*

* [Support for RTP network devices|#rtp], such as Axis cameras (mpeg4 and h264)
* [Custom Inputs|#custom] - to define new sources with Gstreamer syntax
* [External scripts in profiles|#scripts] for devices configuracion
* [Configurable encoder and muxer|#encoder].
* Close session and shutwdown option on UI.
* Save crashed recordings on restart



*Improvements:*

* Ruled Vu-meter
* Configurable Side-by-side layout
* New Pop-ups decoration
* Configurable resolution for UI
* [Configurable logger|#logger] - location, syslog, rotation ...
* [Improved metadata treatment|#metadata]
* [Updated REST endpoint|#rest]

*New or improved Plugins*

* New Check_Repository_plugin: To start missed scheduled recordings on startup
* Screen_Saver_Plugin: improved screensaver control for Ubuntu 12.04
* No_audio_dialog_plugin: general improvement, more comfigurable




h3. New documentation -- under construction {anchor:docs}
----

New documentation has been included on the code (docs/ folder) as well as in this wiki. This documentation is both partial and provisional but is already useful. Following the release process we will be updating it.

Device plugins:
* [Galicaster:V4l2 device plugin]
* [Galicaster:Pulse device plugin]
* [Galicaster:Epiphan device plugin]
* [Galicaster:Datapath device plugin]
* [Galicaster:Hauppauge device plugin]
* [Galicaster:Blackmagic device plugin]
* [Galicaster:Firewire device plugin]
* [Galicaster:RTP device plugin]
* [Galicaster:Custom device plugin]

[Capture card table|Galicaster:New Capture cards table]





h3. New Features description
----
{anchor:scripts}
h4. External scripts in profiles

From 1.3 every profile can establish a configuration script. The script will be executed before the profile is loaded.
Usually a script will configure a certain device but it could include any other task.

To specify the script to be executed include is full path on the profile data section
{code:none}
[data]
name = profile
execute = /home/user/scripts/script1.py
{code}


*Example:*
Configure a Logitech c920 to a power line frequency of 50Hz
{code:none}
v4l2-ctl -d /dev/webcam -c power_line_frequency=1
{code}

{anchor:encoder}

h4. Configurable Encoder and Muxer

Most of the device plugins of Galicaster are now able to configure the encoder and muxer where the data will be stored.
Exceptions include:
* Hauppauge cannot define the encoder nor the muxer.
* RTP only allows to define the muxer

*Parameters and examples:*
* videoencoder
** x264enc quantizer=22 speed-preset=2 profile=1
** xvidenc bitrate=50000000
** ffenc_mpeg2video quantizer=4 gop-size=1 bitrate=10000000
* audioencoder
** lamemp3enc target=1 bitrate=192 cbr=true
* muxer
** flvmux
** avimux
** mpegtsmux

_Note: Pulse parameter is_ {{{_}encoder{_}}} _not_ {{{_}audioencoder{_}{}}}_, this denomination will be modified for the next RC._

To know more of the paramaters of each muxer and encoder consult the Gstreamer documentation. Consult us for instructions to configure your custom encoder and muxer.
{{gst-inspect flvmux}}

*Example:*
Configure a Logitech c920 to encode a 720p, H264+MP4 video:
{code:none}
[track1]
name = Webcam
encoder = x264enc bitrate=1000 pass=5 quantizer=23
location = /dev/video0
file = CAMERA.mp4
device = v4l2
muxer = mp4mux faststart=true
caps = image/jpeg, framerate = 24/1, width=1280, height=720
flavor = presenter
{code}


{anchor:rtp}
h4. RTP plugin

A new device plugin has been developed in order to provide compatibility with network cameras and other RTP-based devices. This plugin records video or video+audio encoded on MPEG4 or H264, with audio on ACC or MP3.

This plugin has been extensively tested over several [Axis network cameras|Galicaster:Axis Network Cameras], with and without audio. Other devices has been tested but in a lesser degree - Epiphan Broadcasters, for instance-. If you test this plugin on other cameras please report it back to the [community list|Galicaster:Community].

Consult the [plugin configuration|Galicaster:RTP device plugin] and contact us for troubleshooting.


{anchor:custom}
h4. Custom bin

This feature is meant for advanced users. Defining a custom bin allow to test new sources within Galicaster.

{code:none}
[track1]
name = custom
location = default
file = CAMERA.avi
device = custom
flavor = presenter
active = True
pipestr = videotestsrc name=gc-custom-src is-live=true ! video/x-raw-yuv,framerate=10/1,width=640,height=480 ! tee name=tee-vt ! queue ! ffmpegcolorspace ! xvimagesink sync=false async=false qos=false name=gc-custom-preview tee-\
vt. ! queue ! valve drop=false name=gc-custom-valve ! queue ! ffmpegcolorspace ! queue ! filesink name=gc-custom-sink async=false
{code}

{section}
{column:width=40%}
{note:title=Element naming}
The elements source (src), valve and sink must be named as in the example, to allow the program to recognize them.

{note}
{column}
{column:width=60%}
{column}
{section}

{anchor:logger}
h4. Configurable logger

In this version, specifying where the logs are stored, the minimum level showed and whether the logs rotate or not is very simple:

{code:none}
[logger]
path = /var/log/galicaster/galicaster.log
level = DEBUG
rotate = True
{code}

{section}
{column:width=40%}
{note:title=Be Careful}
Make sure Galicaster has write permissions in the directory where the logs are to be kept.
{note}
{column}
{column:width=60%}
{column}
{section}

Galicaster can also use the system log (syslog) instead:

{code:none}
[logger]
use_syslog = True
{code}


{anchor:rest}
h4. REST Plugin

The REST endpoint plugin for Galicaster is a module to provide an experimental endpoint interface to access some parameters and features of Galicaster.

If activated, the REST plugin will response in the localhost address through the 8080 port.

Current endpoints include:
* /*state* : show some state values,
* */repository* : list mp keys ,
* */repository/:id* : get mp manifest (XML)
* */metadata/:id* : get mp metadata (JSON)
* */start* : starts a manual recording
* */stop* : stops current recording
* */operation/ingest/:id* : Ingest MP
* */operation/sidebyside/:id* : Export MP to side-by-side
* */operation/exporttozip/:id* : Export MP to zip
* */screen* : get a screenshoot of the active


Activating this plugin as simple as:
{code:none}
[plugins]
rest = True
{code}

_To test the plugin we recommend using add-ons on your browser to visualize JSON data._

{anchor:metadata}
h4. Galicaster 1.3 Metadata Treatment

Before Galicaster 1.3, only some metadata was collected, specially on Series metadatata where only _name_ and _identifier_ where preserved.

After study and discuss the current situation on metadata regarding Matterhorn and Galicaster we've made the following modifications on the behavior on Galicaster's side:

* All metadata is captured, both in episode and series.
* If custom parameters are included on the Matterhorn schedule they are conserved through Galicaster.
* The only parameters that can be modified are: title, presenter, language, description and Series
** A change on Series makes all series parameters change at once
* Empty parameters are not included on the files.

Unfortunately Matterhorn overwrittes the metadata of a returning mediapackage, so modifications have to be made in order to preserve any changes on the capturer. However, if a mediapackage is ingested a second time the metadata - but the identifier - will be preserved.