application development jon billings bbc
TRANSCRIPT
-
8/14/2019 Application Development Jon Billings BBC
1/16
iPla er on mobile: An internal exam
Jon Billings
Head of Development, A&M & Mobile
British Broadcasting Corporation
-
8/14/2019 Application Development Jon Billings BBC
2/16
Presentation summary
A review of the anatomy of the widget for
BBC iPlayer on mobile. Discusses how wellfactored software design leads to costeffective and affordable repurposing of AV
content for new platforms such as mobile,and shows how Nokia Widget Runtimeeffectively enables pure web shops such
as BBC to deliver compelling home screenapplications.
-
8/14/2019 Application Development Jon Billings BBC
3/16
Agenda
What is mobile iPlayer?
What we started with
What we built
Tricky stuff
-
8/14/2019 Application Development Jon Billings BBC
4/16
What is mobile iPlayer?iPlayer is
7 day TV & Radio catch upfor BBC content for UKusersAvailable for Mobile, PC,TV, Games consoles
BBC iPlayer on mobile is:iPlayer on somephonesWiFi, good browser, goodmedia playbackDRM protected download
preferredUI here is from WRT widget(and iPhone)
-
8/14/2019 Application Development Jon Billings BBC
5/16
What is mobile iPlayer?
Featured & Mostpopular list views onhome tab.
Channel/day andcategory list views on
TV & Radio tabs
Search givesradio/tv filterable listviews
-
8/14/2019 Application Development Jon Billings BBC
6/16
What is mobile iPlayer?
Some other handset platformshave this newer UI
Also includes live TV & Radio
-
8/14/2019 Application Development Jon Billings BBC
7/16
What we started with: Central iPlayer team with well factored platform
Comprehensive data modelling
Feeds of available content, with templating Relatively cheap model for adding new encoding profiles
Hairy business & editorial requirements
,
Network Operator concerns: Network load
User expectations: high quality AV
Handset diversity
Some have DRM (OMA 2) some dont.
Some support 3GPP PSS streaming, some dont
Lots of sensitivity to encoding profile details
Some APN handover problems.
-
8/14/2019 Application Development Jon Billings BBC
8/16
ContentProvisioning
Editorialteam content
selection
Existing BBC iPlayer infrastructure
1. Choose whatprograms to show
2. Initiate contentacquisition6. Make available
Main database ofbroadcast content:PIPS
Audience facing availablecontent feed (AKA Dynamite)
Audio/Videoencodeplatform
Content workfloworchestration
HTTPdistributionserver
3. Acquire asset
3GPstreamingserver
Contentmanipulation
4. Any processing
5. Move to
distribution
-
8/14/2019 Application Development Jon Billings BBC
9/16
What we built: Commissioned new AV encodes from BBC iPlayer
team Radio: AAC+ 56kbps stereo Radio: re-use Real Audio G2 streams
TV: 70kbps 176x96 12.5fps H.264 baseline 1, 32kbps 32khz AAC-LC
TV: 128kbps 320x176 25fps H.264 baseline 1, 56kbps 48khz AAC-LC
D:\fz\3g_5390716962194362924.3gp D:\fz\wifi_5390716962194362924.3gp
Created OMA 2 DRM packaging and License serving Java
apps to integrate with BBC iPlayer content productionworkflow CoreMedia SDK (www.coremedia.com)
30 man days
Used the higher res asset from above
-
8/14/2019 Application Development Jon Billings BBC
10/16
What we built: Json service runtime config provisioning
Which services apply to this handset on this network NOW? UA driven, via WURFL database lookup
Which media profiles are used by this device NOW?
Is there an upgrade available?
Javascript/WRT application
Hits config service to get its entitlement
Checks its own version against the upgrade service
Sets CSS attributes from config service (so has CSS customisation per model)
Maintains internal state e.g. crumb trail outstanding XHR requests etc
Xhr request to Dynamite feed engine for each section in the UI
Filtered by view type (e.g. featured, most popular etc) and device specific availability Markup from dynamite template, styling from app CSS
On item selection, another request to iPlayer systems for details of the item Full metadata, and auth controlled acccess to stream
-
8/14/2019 Application Development Jon Billings BBC
11/16
Putting it together: Get entitlement
/con/device.shtml
Get available content /featured/service_type/tv/limit/10/media_set/n-series/
/featured/service_type/radio/limit/10/media_set/n-series/
_ _ -
/mostpopular/service_type/radio/limit/10/media_set/n-series/
Get programme Episode /episodedetail/episode/b00nfl3z/
Get media URL /ms/4/json/stream/b00nfkyy/iplayer_streaming_n95_wifi
/ms/4/json/download/b00njlnw/iplayer_uk_download_oma_wifi
-
8/14/2019 Application Development Jon Billings BBC
12/16
Entitlement{
"device": "Nokia5800" , "supported": true ,
"device_class": "n-series" , "navigation_type": "nokia touchscreen" ,
streaming_ondemand": {
"video": { "isAllowed": true, "isSupported": true,
"profiles": ["iplayer_streaming_n95_wifi"]
},
audio": { "isAllowed": true, "isSupported": true,
"profiles": ["iplayer_uk_stream_real]
}
} ,"download_ondemand": {"video": { "isAllowed": true, "isSupported": true,
"profiles": ["iplayer_uk_download_oma_wifi"]
},
"audio": { "isAllowed": false, "isSupported": false,
"profiles": ["iplayer_uk_download_oma_wifi"]
}
}
}
-
8/14/2019 Application Development Jon Billings BBC
13/16
Available content
/featured/service_type/tv/limit/10/media_set/n-series/
List of 10 featured TV programmes available for this device groupUn-styled HTML via AJAX Assigned to featured Styling from CSS
-
8/14/2019 Application Development Jon Billings BBC
14/16
Episode page
/episodedetail/episode/b00nfl3z/
Details of available program, inc imageUn-styled HTML via AJAXStyling from CSS
-
8/14/2019 Application Development Jon Billings BBC
15/16
Media URL /ms/4/json/stream/b00nfkyy/iplayer_streaming_n95_wifi
{ "content" : true,pids" : { "b00nc9w0" :
{ "result" : "ok",
" " _ _ ,
"iplayer_streaming_n95_wifi" :"http://www.bbc.co.uk/mediaselector/4/sdp/b00nc9w0/iplayer_streaming_n95_wifi"
}
}
}
Parse out stream URL=> destination for onclick action
-
8/14/2019 Application Development Jon Billings BBC
16/16
Tricky stuff
WRT doesnt like all the mime-types
supported by the Browser E.G. OMA DLOTA : widget.openURL()
Connectivit control
Linking in/out from web pages not possible