opencast: extending the ingest api to support partial tracks
TRANSCRIPT
Extending the ingest API to support partial tracks
SWITCH / Entwine
Lukas, Rohner Software Engineer
for the open minded
http://entwinemedia.com @entwinemedia
– for the open minded
What is it aboutThe current implementation of the Ingest API expects the ingested media packages to contain tracks of equal length that are starting at the same time. The SWITCHcast recorder is able to deal with pauses and other crazy situations during recording. In order to support these use cases, the ingest API has been extended to support the addition of tracks that don’t start at time 0, are shorter or contain pauses.
– for the open minded
Current behavior (Sample)
Presentation Track
Presenter Track
Audio Track
Ingested Tracks
Time
– for the open minded
Current behavior (Sample)
Presentation Track
Presenter Track
Audio Track
Audio Track
Muxed together
Time
– for the open minded
New behavior partial tracks (Sample)
Presentation Part A
Presenter Part A Presenter Part B Presenter Part C
Audio Part A Audio Part B
Presentation Part B
Ingested Partial Tracks
Time
– for the open minded
New behavior partial tracks (Sample)
Presentation Part BPresentation Part A
Presenter Part A Presenter Part B Presenter Part C
Audio Part A Audio Part B
Extract first/last image frames
Time
– for the open minded
New behavior partial tracks (Sample)
Presentation Part BPresentation Part A
Presenter Part A Presenter Part B Presenter Part C
Frame Frame
… … …
Audio Part A Audio Part BSilent Track
Convert image frames to videos fill the gaps
Time
– for the open minded
New behavior partial tracks (Sample)
Concatenated Presentation Track
Concatenated Presenter Track
Concatenated Audio Track
Concatenate partial tracks
Time
– for the open minded
How it worksSMIL catalog
Synchronized Multimedia Integration Language (W3C) XML Structure
Already used in the cutting tool FFmpeg
Extract first/last image frames Converting image to videos fill gaps
Generating silent audio Audio/Video concatenation
– for the open minded
How to use
Extended Ingest API zipped mediapackage (create it yourself)
Transactional API
– for the open minded
Extended Ingest APIPOST /ingest/addPartialTrack
Parameter Type Description
url String The location of the media
flavor String The kind of media
startTime Integer The start time
mediaPackage String The media package as XML
– for the open minded
Extended Ingest APIPOST /createMediaPackage POST /addPartialTrack ("presenter/partial", 10)
POST /addPartialTrack ("presenter/partial", 50)
POST /ingest
Track
TrackTrack
– for the open minded
How to use
PartialImportWorkflowOperationHandler
Inserted at first position in the workflow Reading SMIL
Instructing FFmpeg commands