Loose Coupling for Multipurpose Distribution

Download Report

Transcript Loose Coupling for Multipurpose Distribution

Loose Coupling for Multipurpose Distribution
Bruce Devlin
Chief 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
Loose Coupling … what ??
•
The best way to explain Loose Coupling is to look at …
Tight coupling … 
4
© 2011 AmberFin Limited
Start easy … Simple Business Web Page
• Let’s make a web page
• It will say “Hello World”
• Nicely(ish) styled
© 2011 AmberFin Limited
.html
Tightly coupled web page
<html>
.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>
© 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
Language
Insensitive
Content
<html>
Business Rules
.html
<head>
<title>Tight Coupling</title>
<script type="text/javascript">function img(){
document.body.background="smpte.png" };</script>
</head>
Structure
<body onload="img();">
<table border="2">
<tr><td font face="arial bold">Message</td></tr>
<tr><td>Hello World</td></tr>
</table>
</body>
</html>
Look & Feel
© 2011 AmberFin Limited
Language
Sensitive
Content
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
•
•
•
•
.html
Structure is defined in HTML
Styling in CSS
Logic in some language
Data in some database
.css
.dB
© 2011 AmberFin Limited
.js
.java
.php
.asp
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)
.dB
© 2011 AmberFin Limited
.html
.css
.js
.java
.php
.asp
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
Generic State of the Art Facility
Business Layer
MAM, DAM,
BPM, frys?
SD
• SD Playout
HD
• HD Playout
• Multi-rate Web Streaming
CDN
• CDN
Delivery
Web Services
• IPTV
• Versioning
• International
• Captioning Accessibility
© 2010
2011 AmberFin Limited
Pg:13
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
Generic State of the Art Facility
Business Layer
SD
• SD Playout
$$
New BPM
rule
HD
• HD Playout
•
New MAM
process
Multi-rate Web Streaming
New MAM
• CDNrule
move
CDN
Delivery
• IPTV
New API
parameter
• Versioning
• International
New profile
• Captioning Accessibility
New format
© 2010
2011 AmberFin Limited
Pg:17
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
Generic State of the Art Facility
Business Layer
SD
• SD Playout
$$$
New BPM
rule
HD
• HD Playout
•
New MAM
process
Multi-rate Web Streaming
New MAM
• CDN
integration
CDN
Delivery
• IPTV
Brand New
API
• Versioning
• International
New profile
structure
• Captioning Accessibility
New format
© 2010
2011 AmberFin Limited
Pg:20
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
API
Work orders
OtherB
Transcode
© 2011 AmberFin Limited
The Work Order Layer
Business Layer
(Business Process Management paradigm)
Media Asset Management
(Media Logistics Management)
Work orders
KPIs
Media Manipulation / Transform
(Media Manipulation Paradigm)
© 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 id=”black”><file name=”d:/library/black/black.mxf” />
</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>
© 2011 AmberFin Limited
</segments>
</input>
</input>
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
<inputs>
<input id=”feature1”>
<file name=”AmberFin:\examples\feature1.mxf”>
<crop>2,2,1,1</crop>
</file>
right
top
4:3
left
© 2011 AmberFin Limited
bottom
Output Scaling
<output conversion=”MXF Op1a MPEG2”>
<display>
<size width=“320” />
<aspectratio>16/9</aspectratio>
</display>
height
width
© 2011 AmberFin Limited
Output Positioning
<output conversion=”MXF Op1a MPEG2”>
<containersize>240,500</containersize>
<display>
<size width=“320”>
<offset hoffset=“100” voffset=“100”>
</display>
hoffset
height
voffset
width
© 2011 AmberFin Limited
Output Blanking
<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>
top
bottom
left
© 2011 AmberFin Limited
right
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
Encoder
compressed
video
1% of incoming
bitrate is
“good energy”
99% of incoming
bitrate is
discarded
© 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
Encoder
compressed
video
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
What do I store here?
Business Layer
SD
• SD Playout
HD
• HD Playout
• Multi-rate Web Streaming
CDN
• CDN
Delivery
• IPTV
• Versioning
• International
• Captioning Accessibility
© 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
Loosely coupled essence – AS02, IMF
asset
version file
asset.mxf
media
asset_v0.mxf
asset_a0.mxf
Media is forward referenced from
the version file
asset_a3.mxf
asset_vanc0.mxf
extra
© 2011 AmberFin Limited
Pg:50
Loose Coupling – a joy
•Stable, abstracted business oriented communications
•Independent of transcoder vendor
•Independent of delivery specification
http://www.amwa.tv
(FIMS)
http://www.vcoforum.org
(profiles)
http://www.smpte.org
(IMF)
•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
Stay Loose!
Bruce Devlin
CTO, AmberFin
© 2011 AmberFin Limited