Loading sub-menu...

1.3.0 Release Candidate Process

compared with
Current by developer
on may 15, 2015 09:35.

Key
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (84)

View Page History
{pop-away:metadata | comments | children | labels}

h2. Table of contents
{anchor:tags}

* [1.3.0 rc tags|#tags]
* [Features and improvements|#features]
* [New Documentation -- under construction|#docs]
* [Device Scripts for a profile|#scripts]
* [Encoders and muxers|#encoder]
* [New bin: RTP|#rtp]
* How to use Custom bin
* [Updated REST plugin|#rest]
* [Comment on metadata treatment|#metadata]
In this page you can find the following items:

{anchor:tags}
h3. 1.3.0-rc source code.
{toc:style=circle|maxLevel=4|printable=true}

The 1.3.0-rc1 are available as tags on [Teltek's Github|https://github.com/teltek/Galicaster].
h3. Release Candidate Source Code
----
The following list includes all the release candidates published so far for the 1.3.0 version:
* [1.3.0-rc1|http://webfiler.teltek.es/webfiler/galicaster/galicaster-1.3.0-rc1.tgz]
* [1.3.0-rc2|http://webfiler.teltek.es/webfiler/galicaster/galicaster-1.3.0-rc2.tgz]
* [1.3.0-rc3|http://webfiler.teltek.es/webfiler/galicaster/galicaster-1.3.0-rc3.tgz]
* [1.3.0-rc4|http://webfiler.teltek.es/webfiler/galicaster/galicaster-1.3.0-rc4.tgz]

{anchor:features}
h3. Feature 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.

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, you can use the usual channels for any questions or suggestions - email, github or the community list.

*Features:*

* Support RTP network sources, such as Axis cameras (mpeg4 and h264)
* Custom Bin - for define new sources with Gstreamer syntax
* External scripts for configuring devices
* Configurable encoders and muxes.
* Close session and shutwdown option.
*New Features:*

* New [RTP device module|#rtp] \- to support RTP network devices such as Axis cameras. (mpeg4 and h264)
* New [Custom device module|#custom] \- to test new sources within Galicaster using GStreamer syntax. (advanced users)
* [External scripts in profiles|#scripts] for device configuration.
* [Configurable encoder and muxer|#encoder].
* Close session and shutdown option on the UI.
* Save crashed recordings on restart.

*Improvements:*

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

*Plugins*
*New or improved Plugins*

* Recover missed scheduled on startup
* Screensaver control for Ubuntu 12.04
* No_audio_dialog renewed
* Save crashed recordings on restart
* 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 configurable.

h3. New documentation -- under construction {anchor:docs}
{anchor:docs} ----
New documentation has been included in 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.

h3. New documentation -- under construction
Till the 1.3.0 release documentation is best consulted on the wiki. New pages include:

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.
* [Compatible hardware|Compatible hardware]
** [Galicaster:Logitech webcams]
** [Galicaster:Hauppauge capture cards]
** [Galicaster:Bluecherry PV and BC cards]
** [Galicaster:Blackmagic capture cards]
** [Galicaster:Epiphan framegrabbers]
** [Galicaster:Osprey Cards]
** [Galicaster:Datapath video capture cards]
* [Galicaster configuration]
** [Galicaster:Plugins]
** [Galicaster:Input Profiles]
** [Device module configuration]
* Device modules:
** [Galicaster:V4l2 device module]
** [Galicaster:Pulse device module]
** [Galicaster:Epiphan device module]
** [Galicaster:Datapath device module]
** [Galicaster:Hauppauge device module]
** [Galicaster:Blackmagic device module]
** [Galicaster:Firewire device module]
** [Galicaster:RTP device module]

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]
h3. Acknowledgments

[Capture card table|Galicaster:New Capture cards table]
We will like to thank those whose contribution to this 1.3.0 release has been outstanding:

Karen Dole, Harvard University (USA)
Jussi Talaskivi,University of Juväskilä (Finland)
Olav Bringedal, University of Bergen ( Norway)
Guillem Rivas & Miguel Escrivá, University Politechnic of Valencia (Spain)

We also want to extend our gratitude to all the people that have tested Galicaster, contributed reporting bugs, proposed issues and given suggestions through the different communication channels.


h3. New Features description
----
{anchor:scripts}

h3. Features
h4. External scripts in profiles

h4. Device Scripts for a profile

From 1.3 every profile can establish set up 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
To specify the script to be executed, include its full path in the profile data section:
{code:none}
[data]
name = profile
execute = /home/user/scripts/script1.py /home/user/scripts/script1.sh
{code}


*Example:*
Configure a Logitech c920 to a power line frequency of 50Hz
{code:none}
# file: /home/user/scripts/script1.sh
v4l2-ctl -d /dev/webcam -c power_line_frequency=1
{code}

{anchor:encocder}

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.
Most of the device modules of Galicaster are now able to configure the encoder and muxer which will process the data.
Exceptions include:
* Hauppauge can't cannot define the encoder nor the muxer.
* RTP only allows to define the muxer

** mpegtsmux

_Note: Pulse parameter is_ {{{_}encoder{_}}} _not_ {{{_}audioencoder{_}{}}}_, this denomination will be modified for the next RC._
{section}
{column:width=60%}
{note}In RC1 the Pulse parameter is {{{_}encoder{_}}}, not {{{_}audioencoder{_}}}. This denomination was corrected in RC2.{note}
{column}
{column}{column}
{section}
To know more of the parameters of each muxer and encoder consult the Gstreamer documentation.
{code:none}gst-inspect flvmux{code}

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
videoencoder = 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.
h4. RTP device module

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].
A new device module has been developed in order to provide compatibility with network cameras and other RTP-based devices. This module records video or video+audio encoded on MPEG4 or H264, with audio in ACC or MP3.

Consult the [plugin configuration|Galicaster:RTP device plugin] and contact us for troubleshooting.
The module 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 module on other cameras, please report your results back to the [community list|Galicaster:Community].

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


{anchor:custom}

h4. Custom device module

This feature is meant for advanced users. You can define a custom bin 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=60%}
{note:title=Element naming}
The elements source (src), valve and sink must be named as those in the example, so that the program can identify them.
{note}
{column}
{column:width=40%}
{column}
{section}

{anchor:logger}

h4. Configurable logger

The log files location, the minimum log level shown and whether the logs rotate or not can be easily set up in this version:

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

{section}
{column:width=60%}
{note:title=Directory IO permissions}
Make sure Galicaster has write permissions in the directory where the logs are to be stored.
{note}
{column}
{column:width=40%}
{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 REST interface to access some parameters and features of Galicaster.

If activated, the REST plugin will response in at the 0.0.0.0 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
|| URL || Description ||
| {{*/state{*}}} | Show some state values |
| {{*/repository{*}}} | List MP keys |
| {{*/repository/<id>*}} | Get MP manifest (XML) |
| {{*/metadata/<id>*}} | Get MP metadata (JSON) |
| {{*/start{*}}} | Start a manual recording |
| {{*/stop{*}}} | Stop current recording |
| {{*/operation/ingest/<id>*}} | Ingest MP |
* */operation/sidebyside/:id* : | {{*/operation/sidebyside/>id>*}} | Export MP to side-by-side |
* */operation/exporttozip/:id* : | {{*/operation/exporttozip/<id>*}} | Export MP to zip |
* */screen* : get a screenshoot of the active
| {{*/screen{*}}} | Get a screnshot of the current desktop |

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

{section}
{column:width=60%}
{note:title=Visualizing JSON}To test this plugin, we recommend using add-ons on your browser to visualize JSON data.{note}
{column}
{column}{column}
{section}

{anchor:metadata}

h4. Galicaster 1.3 Metadata Treatment

Before Galicaster 1.3, only some metadata was collected, specially on with Series metadatata metadata, 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:
After studying and discussing the current situation with metadata regarding Matterhorn and Galicaster, we have made the following modifications in the behaviour on Galicaster's side:

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

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

h3. Regarding device behaviour on missing signal and resolution change.

We've compiled a list of the behaviour of the video devices when the signal is missing - unplugged or camera off - or the resolution changes - for VGA capturing devices.

This list was checked over Ubuntu 12.04 with newest drivers and Galicaster 1.3.0rc1

* Datapath:
** Provides configurable No signal black screen, with time counter.
** Scale to designated resolution.
** We recommend using the newer possible driver.
* NCast:
** Provides mock signal.
** Scales input.
* Epiphan:
** Newest drivers provides green screen on failure and scales on resolution change.
** V4L2 device module can be used instead of Epiphan's, specifying caps
* Osprey:
** provides a blue screen
* Bluecherry PV:
** provides a blue screen with caps well configured, otherwise it may fail
* Hauppauge:
** Provides black. If configured on Tuner it provides noise.
** Unfortunately, switch to a good input and standard requires to stop the preview. Other sources can switch on runtime (Osprey f.i.).
* *RTP: Fails*
* *Blackmagic: Fails "silently".*
** It may be a GStreamer issue since the driver works with the vendor SW.
** External HW can prevent failures.
** Doesn't allow resolution change.
* *Firewire: Fails*
* *Webcams: Fails and Galicaster crashes.*

Silently means that it won't report an error on Galicaster but the resulting MP will be erronous.

Summing up; Firewire, RTP, webcams and Blackmagic sources need continuous signal.
If signal recovers, user can reload the profile except for webcams, where Galicaster needs to be restarted manually.