© 2011 amberfin limited loose coupling for multipurpose distribution bruce devlin chief technical...
TRANSCRIPT
© 2011 AmberFin Limited
Loose Coupling for Multipurpose Distribution
Bruce DevlinChief Technical Officer
© 2011 AmberFin Limited
Some Words …
• Wrapper• MXF, GXF, QuickTime, AVI
• Codec• Encoder, Transcoder
• Format Conversion• Up conversion, Down conversion, Cross Conversion
• Standards Conversion• Frame rate conversion 50Hz 60Hz, 60Hz 50Hz
• API• Some programming interface like web services, C++, Java
• SOA• Service Oriented Architecture – a methodology
© 2011 AmberFin Limited
File Based Workflows
•Why?
© 2011 AmberFin Limited
• The best way to explain Loose Coupling is to look at …
Tight coupling …
4
Loose Coupling … what ??
© 2011 AmberFin Limited
Start easy … Simple Business Web Page
• Let’s make a web page• It will say “Hello World”• Nicely(ish) styled
.html
© 2011 AmberFin Limited
Tightly coupled web page
<html> <head> <title>Tight Coupling</title> <script type="text/javascript">function img(){ document.body.background="smpte.png" };</script> </head> <body onload="img();"> <table border="2"> <tr><td font face="arial bold">Message</td></tr> <tr><td>Hello World</td></tr> </table> </body></html>
.html
© 2011 AmberFin Limited
Time passes ...
• Requirements change• Someone invents
– iPhone, gPhone, iPad, gPad, dPad
• Our business grows– Spanish, Italian, French, German, British English etc.
• Our web page must change with our business
© 2011 AmberFin Limited
Tightly coupled web page
<html> <head> <title>Tight Coupling</title> <script type="text/javascript">function img(){ document.body.background="smpte.png" };</script> </head> <body onload="img();"> <table border="2"> <tr><td font face="arial bold">Message</td></tr> <tr><td>Hello World</td></tr> </table> </body></html>
Business Rules
Language SensitiveContentLook & Feel
Language Insensitive
Content
Structure
.html
© 2011 AmberFin Limited
Tightly coupled web page
• Quick to develop• Quick to deploy• A pain to update• A pain to maintain• A pain to scale
• Tight Coupling makes change expensive!
© 2011 AmberFin Limited
Loosely coupled web page
• Structure is defined in HTML• Styling in CSS• Logic in some language• Data in some database
.html
.css
.js.dB
.java
.php
.asp
© 2011 AmberFin Limited
Loosely coupled web page
• Change language but don’t touch styling• Change styling but don’t touch structure• Add new content safely• Replicate and scale using existing
IT tools (database replication etc)
.html
.css
.js.dB
.java
.php
.asp
© 2011 AmberFin Limited
How loose is loose?
• This stuff ain’t trivial• Explore probabilities of change• Explore consequences of change• Explore costs of change• Explore system stability of change
© 2011 AmberFin Limited
Business Layer
Pg:13Pg:13
Generic State of the Art Facility
• SD Playout
HD
CDN
Delivery • CDN
• HD Playout
SD
• Multi-rate Web Streaming
• IPTV
• Versioning
• International
• Captioning Accessibility
© 2010 AmberFin Limited
MAM, DAM, BPM, frys?
Web Services
© 2011 AmberFin Limited
Day #1 – it goes live
• Business Process system• Manages which jobs to run
• Media Management system• Manages where the content is and which transcoder to use
• Transcoder• Has profiles configured for all the deliverables• Receives instructions from above and just works
© 2011 AmberFin Limited
Time passes …
© 2011 AmberFin Limited
Day #n – it gets fun
• The business enters a new territory• A new language needs to be added• The new Avocado zPad is selling well …• Every asset is needed in a new transcode profile …• Many assets need new language and captions adding …• What needs to change?
• Plan A• Update existing system with a new profile
© 2011 AmberFin Limited Pg:17Pg:17
Generic State of the Art Facility
© 2010 AmberFin Limited
Business Layer
• SD Playout
HD
CDN
Delivery • CDN
• HD Playout
SD
• Multi-rate Web Streaming
• IPTV
• Versioning
• International
• Captioning Accessibility
Business Layer
New format
New profile
New API parameter
New MAM move rule
New MAM process
New BPM rule
$$
© 2011 AmberFin Limited
Tight coupling alert !
© 2011 AmberFin Limited
Day #n – it gets fun
• The business enters a new territory• A new language needs to be added• The new Avocado zPad is selling well …• Every asset is needed in a new transcode profile …• Many assets need new language and captions adding …• What needs to change?
• Plan B• Throw in a new brand of transcoder
© 2011 AmberFin Limited Pg:20Pg:20
Generic State of the Art Facility
© 2010 AmberFin Limited
Business Layer
• SD Playout
HD
CDN
Delivery • CDN
• HD Playout
SD
• Multi-rate Web Streaming
• IPTV
• Versioning
• International
• Captioning Accessibility
Business Layer
New format
New profile structure
Brand New API
New MAM integration
New MAM process
New BPM rule
$$$
© 2011 AmberFin Limited
Even tighter coupling alert !
© 2011 AmberFin Limited
Wouldn’t it be nice …
• To have a standard Transcode API• Change friendly – it expects system change over time
• Codec neutral – cheaply add a new codec variant
• Vendor neutral – add a new vendor to the mix cheaply
• Loosely coupled – tries to localise the impacts of change
© 2011 AmberFin Limited
AmberFin Proposal to FIMS & VCOForum
• Focussed on …• How a job is described
• What stays constant between jobs
• What changes job by job
• Ignores the compute complexity of the job
• Assumes existence of …• transcode() function via RPC, SOAP, RESTful
© 2011 AmberFin Limited
Wake up, it’s Quiz time
• Which of the following are transcodes?• MPEG2 to MPEG4 conversion• Rewrap MXF to QuickTime• IMX50 to Long GOP SD VoD• IMX50 to XDCAM50• Motion Compensated Standards convert from
720x576 @ 50i to 1920x1080 @ 60i
© 2011 AmberFin Limited
System diagram view
OtherB
Transcode
API
Work orders
© 2011 AmberFin Limited
The Work Order Layer
Business Layer
(Business Process Management paradigm)
Media Asset Management
(Media Logistics Management)
Media Manipulation / Transform
(Media Manipulation Paradigm)
Work orders KPIs
© 2011 AmberFin Limited
The Work Order Interface
• Goals• Allow a MAM / business system to make business decisions• Allow a MAM / Automation system to make logistics decisions• Pass those decisions to the Transcoder• Don’t rely on 2 transcoders having the same capabilities• Don’t make it company specific• Orient the API towards the Business System needs
• The API• is an abstract transcode API• provides a Work Order Interface• enables the creation of a SOA Media Manipulation Service
© 2011 AmberFin Limited
Transcode()
• transcode( param )
• This section describes param
© 2011 AmberFin Limited
AbstractTranscode API
• Transcode Request Structure
Input Specification
Segment List Specification
Transcode Output Override
© 2011 AmberFin Limited
Simple Example
<transcodeparameters template=”Default”>
<inputs>
<input id=”asset”><file name=”z:/examples/asset1.mxf” /></input>
</inputs>
<segments style=”in(inclusive),out(exclusive)”>
<segment>
<input>asset</input>
</segment>
</segments>
<output conversion=”MXF Op1a MPEG2”>
<attributes>
<attribute name=“videobitrate” value=“50000000” />
</attibutes>
</output>
</transcodeparameters>
© 2011 AmberFin Limited
Simple Splice Example
<inputs>
<input id=”feature”><file name=”z:/examples/feature1.mxf” /></input>
<input id=”trailer”> <file name=”z:/examples/trailer1.mxf” /> </input>
</inputs>
<segments style=”in(inclusive),out(exclusive)”>
<segment>
<input>trailer</input>
</segment>
<segment>
<input>feature</input>
</segment>
</segments>
© 2011 AmberFin Limited
Cut and Splice Example
<inputs>
<input id=”asset”><file name=”z:/examples/asset1.mxf” /> </input>
<input id=”black”><file name=”d:/library/black/black.mxf” /> </input>
</inputs>
<segments style=”in(inclusive),out(exclusive)”>
<segment>
<input>asset</input>
<out>00:15:00:00</out>
</segment>
<segment>
<input>black</input>
</segment>
<segment>
<input>asset</input>
<in>00:15:00:00</in>
</segment>
</segments>
© 2011 AmberFin Limited
Audio Channel Alignment example
Aligned
Audio Lead (+offset)
Audio Lag (-offset)
© 2011 AmberFin Limited
Closed Caption (CC) Streams
<inputs>
<input id=”feature1”>
<file name=”AmberFin:\examples\feature1.mxf”>
<file name=“Feature1English.scc”>
<stream id=”English” />
</file>
<file name=”Feature1Spanish.scc”>
<stream id=”Spanish” />
</file>
</input>
<inputs>
© 2011 AmberFin Limited
Closed Caption (CC) Streams
<output conversion=”Windows Media (VC1)”>
<captions type=”SAMI”>
<stream>Spanish</stream>
<stream>English</stream>
</captions>
</output>
© 2011 AmberFin Limited
Input Cropping
top
bottomleft
right
4:3
<inputs><input id=”feature1”>
<file name=”AmberFin:\examples\feature1.mxf”> <crop>2,2,1,1</crop>
</file>
© 2011 AmberFin Limited
Output Scaling
width
height
<output conversion=”MXF Op1a MPEG2”> <display>
<size width=“320” /><aspectratio>16/9</aspectratio>
</display>
© 2011 AmberFin Limited
Output Positioning
voffset
hoffset
width
height
<output conversion=”MXF Op1a MPEG2”> <containersize>240,500</containersize><display>
<size width=“320”><offset hoffset=“100” voffset=“100”>
</display>
© 2011 AmberFin Limited
Output Blanking
top
bottom
<output conversion=”MXF Op1a MPEG2”> <containersize>240,500</containersize><display>
<size width=“320”><offset hoffset=“100” voffset=“-100”><border>10,10,10,10</border>
</display>
left right
© 2011 AmberFin Limited
Encoding Attributes
<attribute name="Mode" value=""> audio mode<attribute name="BitRate" value=""> in bps<attribute name="Passes" value=""><attribute name="MinimumBitRate" value=""> in bps<attribute name="AverageBitRate" value=""> in bps<attribute name="MaximumBitRate" value=""> in bps<attribute name="GOPLength" value=""><attribute name="AudioBitRate" value=""> in bps<attribute name="AudioSampleRate" value=""> in Hz<attribute name="KeyFrameInterval"> in s <attribute name="BufferSize"> in s
© 2011 AmberFin Limited
Watermarking
<output conversion=”MXF Op1a MPEG2”><watermarking
type=“civolution”index=“2”payload=“1379”
/></output>
© 2011 AmberFin Limited
But it’s more than just codecs
High Energy video Encodercompressedvideo
1% of incoming bitrate is
“good energy”
99% of incoming bitrate isdiscarded
© 2011 AmberFin Limited
Interlace is Evil – why broadcast this?
© 2011 AmberFin Limited
Interlace is Evil – when you can broadcast this?
© 2011 AmberFin Limited
Loosely coupled APIs allow Business Quality choices
High Energy video Encodercompressedvideo
Interlace pollutes outputs
Use API to select quality based on Business Need
© 2011 AmberFin Limited
The Work Order Layer
•Stable, abstracted business oriented communications•Independent of transcoder vendor•Independent of delivery specification
•Transcoder specific comms•One or more transcoders behind interface
© 2011 AmberFin Limited
Stay loose!
• This stuff ain’t trivial• Explore probabilities of change• Explore consequences of change• Explore costs of change• Explore system stability of change
• Play “What if …” with the business folk before designing
© 2011 AmberFin Limited
Business Layer
• SD Playout
HD
CDN
Delivery • CDN
• HD Playout
SD
• Multi-rate Web Streaming
• IPTV
• Versioning
• International
• Captioning Accessibility
Business Layer
What do I store here?
© 2011 AmberFin Limited
What do I store here?
• SD
• HD
• What are you trying to optimise (the caching strategy problem)?• Playout centric
• Edit centric
• Acquisition centric
• Facilities house – bit of everything
© 2011 AmberFin Limited Pg:50
extra
asset
media
asset.mxf
asset_v0.mxf
asset_a0.mxf
asset_a3.mxf
asset_vanc0.mxf
Media is forward referenced from the version file
version file
Loosely coupled essence – AS02, IMF
© 2011 AmberFin Limited
Loose Coupling – a joy
•Stable, abstracted business oriented communications•Independent of transcoder vendor•Independent of delivery specification
•Transcoder specific comms•One or more transcoders behind interface
http://www.amwa.tv (FIMS)
http://www.vcoforum.org (profiles)
http://www.smpte.org (IMF)
© 2011 AmberFin Limited
Stay loose!
• This stuff ain’t trivial• Explore probabilities of change• Explore consequences of change• Explore costs of change• Explore system stability of change
• Play “What if …” with the business folk before designing
© 2011 AmberFin Limited
Stay Loose!
Bruce Devlin
CTO, AmberFin