channelAustin Open Media System Integration Diagram

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
stefanwray's picture

I've attached a diagram of channelAustin's Open Media System integration for purposes of sharing how we are integrating Open Media tools with our Synergy Broadcast System. Diagram indicates the three environments - Linux (Ubuntu), Windows, and Mac - and shows the pathways between workstations, encoders, servers, and archive.

The red line indicates a pathway that is incomplete as of this writing.

AttachmentSize
diagram_CA_OM_Syn2.jpg120.94 KB

Comments

Can you change the line from

kreynen's picture

Can you change the line from Content Agent to Drupal to be orange and label it inefficient instead of incomplete since we can move video from CA to Drupal. The only issue with that step is that the MPEG2 is reencoded again by FFMPEG. The line from Drupal to Synergy is incomplete is that Synergy is not providing the API and so nothing exists until Rich has time to write it. The Content Agent to Drupal step works, but takes longer and uses more CPU that necessary.

Explaining the Red Lines in Diagram

stefanwray's picture

The red line from Content Agent to Open Media represents metadata.

<img src="http://groups.drupal.org/files/diagram_CA_OM_Syn3.jpg: />

But we don't need any

kreynen's picture

But we don't need any metadata from Content Agent (CA). All of the metadata CA is pulling comes from the file and we can pull that again using FFMPEG (using ffmpeg_wrapper) like we do with duration in om_show...

$path = NULL;
if(file_exists($node->field_om_show_mpeg2[0]['filepath'])) {
  $path = $node->field_om_show_mpeg2[0]['filepath'];
}else if(file_exists($node->field_om_show_original[0]['filepath'])) {
  $path = $node->field_om_show_original[0]['filepath'];
}

if($path) {
  $duration = ffmpeg_wrapper_file_duration($path);
  $node_field[0]['value'] = $duration;
}else{
  $node_field[0]['value'] = '';
}

It's possible that we could leverage more advanced CA functionality like captions in the future, but (as far as I know) there is nothing in CA that we don't have access to with it now.

This is new information for me

stefanwray's picture

This is the first time that I've heard that we don't need any of the metadata from Content Agent. This would have been nice to know earlier.

The original plan was to try

kreynen's picture

The original plan was to try to treat Content Agent like FFMPEG. This is were we ran into the issue of XML-RPC vs. .xml files that was at the center of the whole smart vs. dumb discussion... first according to a Root6 sales person CA was going to support XML-RPC, then when pushed for documentation the developers admitted it wasn't.

Because CA can't communicate with other services until the end of a workflow step, we adjusted our approach to support preprocessors that we trust create valid MPEG2. Currently those include CA and Princeton's DVD Import.

Brian did a lot of work on Media Mover while we were in Boston and Amherst that should allow us to reconfigure it to skip the first Config (which recreates an MPEG2 from an MPEG2 in channelAustin's case) and resolve most (hopefully all) of the issues Kate outlined at UPTV.

I'm sorry if this wasn't clear.

Content Agent Metadata: 1 way or 2 way?

stefanwray's picture

channelAustin is using a product called Content Agent to encode .mov and .avi into .mpg files for playback on three channels with our Synergy Broadcast System server. Content Agent is proprietary software built in a Windows XP 2000 environment.

Producers copy video files (.mov or .avi) from external hard drives to an alias folder on the Producer Transfer Station. This alias folder points to a Watch Folder on Content Agent. Whenever a file is dropped into the Watch Folder, it is encoded to an .mpg -- with this work flow:

Only local images are allowed.

With this work flow, an .mpg file, plus XML .txt file is placed into the "ingest" folder on the Synergy Digital Archive Unit. An XML .txt file sample is below.

From what I understand, the only -- or if not only, the most important -- XML data needed is:

Right now, we have the xml.txt file going into the ingest folder just as a test. It's not doing anything there. Just wanted to see what the data export looks like.

We really need to have an XML-RPC connection to Content Agent (or something similar), and I've been talking with a company representative about this, but we will likely have to develop something ourselves, with support.

According to the company rep, the XML data for each encoded file is also sent to the SQL database that's on the same machine as Content Agent.

My latest thinking, and I could use some support on better understanding this, is that we should be able to go behind Content Agent and have a web service connected to SQL.

Content Agent does have, in its work flow, the ability to include a Command Line (through "CMD Line Application Launcher").

So there could be an .exe executable file that is triggered by the encoding work flow, that, after the extracted video file metadata is input into the SQL db, that it is exported via some web service and made available to the MySQL db on the OM System machine.

BUT, the problem with this, is that until there is a new Create Show record created for that particular digital file, then is not anywhere in the MySQL db to associate that data.

So -- alternately, maybe it needs to be set up so that when Create Show is submitted, a request is made to the SQL db on the Content Agent machine, and the required metadata associated with the filename - which in the example below is - is exported out of the SQL db and imported into the MySQL db along the new metadata created by the Create Show form input.

One question that I'm not clear on is whether we only need to be able to access metadata from Content Agent. I ask this because I believe at one point earlier on, we were talking about the need to both write to and read from Content Agent.

It would be good to clarify the work flow for Content Agent metadata in relation to the OM Project, and then set about figuring out the best web service to establish to move data from CA to OM.

<?xml version="1.0"?>