0% found this document useful (0 votes)
234 views16 pages

Application Development Jon Billings BBC

Presentation from the application development track. See http://tiny.symbian.org/seewiki for more information.

Uploaded by

SEE2009
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
234 views16 pages

Application Development Jon Billings BBC

Presentation from the application development track. See http://tiny.symbian.org/seewiki for more information.

Uploaded by

SEE2009
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

iPlayer on mobile: An internal exam

Jon Billings
Head of Development, A&M & Mobile
British Broadcasting Corporation
Presentation summary

 A review of the anatomy of the widget for


BBC iPlayer on mobile. Discusses how well
factored software design leads to cost
effective and affordable repurposing of AV
content for new platforms such as mobile,
and shows how Nokia Widget Runtime
effectively enables pure web shops such
as BBC to deliver compelling home screen
applications.
Agenda

 What is mobile iPlayer?


 What we started with
 What we built
 Putting it together
 Tricky stuff
What is mobile iPlayer?
•iPlayer is
• 7 day TV & Radio catch up
for BBC content for UK
users
•Available for Mobile, PC,
TV, Games consoles

•BBC iPlayer on mobile is:


•iPlayer on some phones
•WiFi, good browser, good
media playback
•DRM protected download
preferred
•UI here is from WRT widget
(and iPhone)
What is mobile iPlayer?

•Featured & Most


popular list views on
home tab.

•Channel/day and
category list views on
TV & Radio tabs

•Search gives
radio/tv filterable list
views
What is mobile iPlayer?

•Some other handset platforms


have this newer UI

•Also includes ‘live’ TV & Radio


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
 BBC Concerns: ‘bill shock’, content rights (roaming)
 Network Operator concerns: Network load
 User expectations: high quality AV
 Handset diversity
 Some have DRM (OMA 2) some don’t.
 Some support 3GPP PSS streaming, some don’t
 Lots of sensitivity to encoding profile details
 Some APN handover problems.
Existing BBC iPlayer infrastructure

Audience facing “available


content” feed (AKA Dynamite)

Editorial Content Main database of


Provisioning broadcast content:
team content
“PIPS”
selection 1. Choose what
programs to show

2. Initiate content
6. Make available acquisition

4. Any processing 3. Acquire asset


Content workflow Audio/Video
Content orchestration encode
manipulation platform

5. Move to
distribution
HTTP 3GP
distribution streaming
server server
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 production
workflow
 CoreMedia SDK (www.coremedia.com)
 30 man days
 Used the higher res asset from above
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
 MVC application that:
 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
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/tv/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
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"]
}
}
}
Available content

/featured/service_type/tv/limit/10/media_set/n-series/

•List of 10 “featured” TV programmes available for this device group


•Un-styled HTML via AJAX Assigned to “featured” <div>
•Styling from CSS
Episode page

/episodedetail/episode/b00nfl3z/

•Details of available program, inc image


•Un-styled HTML via AJAX
•Styling from CSS
Media URL
 /ms/4/json/stream/b00nfkyy/iplayer_streaming_n95_wifi

{ "content" : true,
pids" : { "b00nc9w0" :
{ "result" : "ok",
"media_file_size" : 209945796,
"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
Tricky stuff

 WRT doesn’t like all the mime-types


supported by the Browser
 E.G. OMA DLOTA : widget.openURL()
 Connectivity control
 Linking in/out from web pages not possible

You might also like