= C3 Ticket Tracker

The C3 Ticket Tracker is the central managing component in our postprocessing pipeline, releasing the final recordings. The tracker is a PHP web application and distributes tasks in form of 'tickets' to various workers. The workers – written in Perl, Python, or PHP – advance the state and update the ticket's properties via tracker's XML RPC API. The core system was initially written by FeM for 27C3 in 2010, and was released under the Apache License 2.0 end of 2017. Our instance is deployed at https://tracker.c3voc.de.

source code:

https://github.com/crs-tools/tracker

workers

https://github.com/crs-tools/crs-scripts (Perl)

https://github.com/voc/publishing (Python)

https://github.com/crs-tools/tracker-lib-php (PHP)

custom fuse filesystem driver used by tracker workers

(VOC) encoding profiles: TODO

Further resources:

FeM tracker Beschreibung / FeM *C3 Doku

FeM tracker doku

old FeM tracker doku (probably outdated but still usefull

== Concepts

The C3 Ticket Tracker enables the (semi-)automated recording, editing & release of multilingual videos. In order to complete a release successfully, certain project settings must be configured and a few of the state transitions must be operated manually:

=== Ticket types and hierarchy

One of the really good features of the C3 tracker is that propertyies are inherited through the hierarchy:

Project settings (Conference or Series)

Meta ticket (Parent with Fahrplan-ID & -Metadata)

Recording ticket (Language, etc)

Main encoding ticket (MP4)

additional encoding tickets, e.g. WebM, MP3, Opus, SD formats, etc.

=== Ticket states

For each ticket type, the tracker has a predefined set of states, which can be enabled and disabled on an per project basis. Here is an example workflow with only one manual checking step:

== Usage during event

=== Task: Cut

see cutting

c3_tracker_-_schnitt_mit_kdenlive.mp4

Usage video YT link (german)

TODO: CCCamp15 Recording / Postprocessing integrieren

=== Task: Check

see checking

Ticket types and states

Parent tickets for each Fahrplan entry

one recording ticket for each parent

several encoding tickets, one for each format – e.g. MP4 HD, MP4 SD, WebM, MP3, Opus

== Project setup

Create tracker project (you can also clone a matching project to have prefilled properties)

Import schedule.xml

Set all master tickets from staging to staged via mass-edit

Adjust project properties, recommendations: (full reference at the bottom of the page)

Compare project properties with previous instalment of the same event

see Project setup for more details

=== User Roles User accounts can have different roles depending on what the user should be able to do:

“User” - can cut and edit tickets

“Restricted” - can only use already defined actions and can't define new actions

“Superuser” - can edit profiles and (re)import fahrplan

“Admin”

more details on https://github.com/crs-tools/tracker/blob/master/src/Config/AccessControl.php

== Recording Files that should be handled by the tracker (input files) should be named as follows:

<room>-YYYY-MM-DD_HH-MM-SS.<extension>

Files need to be placed in directories according to the room name “”“”“”

Naming for intro and outro:

Intro <frab-id>.dv

Outro: outro.dv

== Postprocessing

=== Cut The cutting process requires start and end marks. The tracker accepts frame numbers. If your player does not show frame numbers you can approximate with the formula

seconds * 25

assumed you have 25 frames per second. Note that this means you cut per second not per frame !!!

== Trackerfahrer Scripts

see Trackerfahrer Scripts

== Ticket Properties

see Ticket Properties