<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <language>en</language>
    <title>Technology + Creativity at the BBC Feed</title>
    <description>Technology, innovation, engineering, design, development.
The home of the BBC's digital services.</description>
    <pubDate>Tue, 21 Sep 2021 13:38:10 +0000</pubDate>
    <generator>Zend_Feed_Writer 2 (http://framework.zend.com)</generator>
    <link>https://www.bbc.co.uk/blogs/internet</link>
    <atom:link rel="self" type="application/rss+xml" href="https://www.bbc.co.uk/blogs/internet/rss"/>
    <item>
      <title>Streaming Euro 2020 live at a record new scale</title>
      <description><![CDATA[During the 2018 World Cup quarter final our systems at the time became overwhelmed, leading to a major outage. How did we scale our live streaming architecture to stream the Euro 2020 final online to a new record of 7.1 million viewers?]]></description>
      <pubDate>Tue, 21 Sep 2021 13:38:10 +0000</pubDate>
      <link>https://www.bbc.co.uk/blogs/internet/entries/fe629b38-57af-49c8-8922-352174101511</link>
      <guid>https://www.bbc.co.uk/blogs/internet/entries/fe629b38-57af-49c8-8922-352174101511</guid>
      <author>Pierre-Yves Bigourdan</author>
      <dc:creator>Pierre-Yves Bigourdan</dc:creator>
      <content:encoded><![CDATA[<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p09wkqqj.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p09wkqqj.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p09wkqqj.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p09wkqqj.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p09wkqqj.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p09wkqqj.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p09wkqqj.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p09wkqqj.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p09wkqqj.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>Summer 2021 offered a rich selection of events to sports enthusiasts: <a href="https://www.uefa.com/uefaeuro-2020/">Euro 2020</a>, <a href="https://www.wimbledon.com/">Wimbledon</a> and the <a href="https://olympics.com/tokyo-2020/en/">Tokyo Olympics</a>, to name but a few. An ever-increasing proportion of the BBC&rsquo;s audience has been moving from traditional broadcast to online consumption - <a href="https://www.bbc.co.uk/sport/football/51198762">the Euro 2020 Final</a>, where Italy played England, set <a href="https://www.bbc.co.uk/mediacentre/2021/bbc-scores-with-euro-2020-wimbledon">a new record for BBC iPlayer</a>, with 7.1 million viewers streaming the match online.</p>
<p>In comparison, <a href="https://www.bbc.co.uk/sport/football/44706648">the 2018 World Cup Quarter Final</a>, where Sweden opposed England, only attracted <a href="https://www.bbc.co.uk/mediacentre/latestnews/2018/iplayer-jul">3.1 million online viewers</a>, yet our systems at the time became overwhelmed, leading to <a href="https://www.radiotimes.com/tv/sport/football/bbc-iplayer-crashes-during-englands-victorious-world-cup-quarter-final/">a major outage</a>. Luckily enough, this happened at the very end of the match when the outcome was already settled. However, this incident did not go unnoticed by our engineers and triggered a significant redesign of our workflows.</p>
<p>How did we scale our live streaming architecture to reliably deliver media and allow audience figures to reach new heights?</p>
<h2>From pull to push</h2>
<p>To answer that question, let&rsquo;s first review what happened in 2018. Many streaming platforms, including iPlayer at the time, operate with what is commonly described as a pull model. The player on your TV, phone or computer requests the media from a third-party <a href="https://en.wikipedia.org/wiki/Content_delivery_network">Content Distribution Network (CDN)</a>. This forwards the request to the BBC&rsquo;s routing and caching servers, which in turn send it on to the packager. The role of this last system is to transform encoded media by wrapping the raw video and audio into container files that are suitable for distribution to a variety of client devices.</p>
<p>You can view things as a funnel: multiple layers of caching and routing are present along the way to collapse millions of player requests every second down to a trickle of requests back to the origin media packager, each layer pulling the media from the next layer up. All of this occurs while trying to keep as close to the live time of the event as possible.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p09wkpz3.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p09wkpz3.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p09wkpz3.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p09wkpz3.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p09wkpz3.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p09wkpz3.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p09wkpz3.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p09wkpz3.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p09wkpz3.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>The 2018 pull model. Arrows represent the flow of media requests, from iPlayer on user devices all the way up to the packager.</em></p></div>
<div class="component prose">
    <p>Even though widely used, this pattern has some significant drawbacks, the best illustration being the major incident that hit the BBC during the 2018 World Cup quarter-final. Our routing component experienced a temporary wobble which had a knock-on effect and caused the CDN to fail to pull one piece of media content from our packager on time. The CDN increased its request load as part of its retry strategy, making the problem worse, and eventually disabled its internal caches, meaning that instead of collapsing player requests, it started forwarding millions of them directly to our packager. It wasn&rsquo;t designed to serve several terabits of video data every second and was completely overwhelmed. Although we used more than one CDN, they all connected to the same packager servers, which led to us also being unable to serve the other CDNs. A couple of minutes into extra time, all our streams went down, and angry football fans were cursing the BBC across the country.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p09wkq2m.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p09wkq2m.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p09wkq2m.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p09wkq2m.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p09wkq2m.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p09wkq2m.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p09wkq2m.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p09wkq2m.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p09wkq2m.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>BBC iPlayer outage during the Euro 2018 quarter-final. Photo: Steve Hy</em></p></div>
<div class="component prose">
    <p>We did fix and mitigate the immediate performance issue. After running several long and deep root cause analysis sessions, we concluded that having our media servers exposed to a request load that was ultimately not in our control was not a safe position to be in.</p>
<p>We decided to re-architect the system by switching from a pull to a push model. The idea is quite simple: produce each piece of media once and publish it to a dedicated live origin storage service per CDN. From where we stand, the CDN acts as a pure ingest point and has no visibility on any of our servers. In other words, we alleviate any risk of the CDN overwhelming our systems: as more people view our streams, the load remains constant. We end up with a much cleaner separation of concerns, with the BBC accountable for producing all media in time and the CDN now solely responsible for caching it and making it available for download at scale.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p09wkq78.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p09wkq78.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p09wkq78.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p09wkq78.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p09wkq78.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p09wkq78.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p09wkq78.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p09wkq78.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p09wkq78.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>The 2021 push model. BBC iPlayer on user devices simply downloads media that was previously published to a CDN.</em></p></div>
<div class="component prose">
    <h2>Drilling down on the packager</h2>
<p>Before they arrive at our packager, video and audio signals are encoded into formats appropriate for distribution to our audiences. The cloud-based encoder is also responsible for generating an adaptive bitrate set of outputs, in other words, a range of picture and sound qualities to cater for different network speeds and device capabilities.</p>
<p>The resulting encoded media is then sent to the packager. Its role is to prepare all the files which will be requested by devices to play a stream over an HTTP connection. The packager produces two types of streams:</p>
<p>- <a href="https://en.wikipedia.org/wiki/HTTP_Live_Streaming">HLS</a> streams: in our case, the encoded media is packaged in fragmented <a href="https://en.wikipedia.org/wiki/MPEG_transport_stream">transport stream (TS)</a> containers. Apple devices and some older TVs use these.<br />- <a href="https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP">DASH</a> streams: in our case, the encoded media is packaged in fragmented <a href="https://en.wikipedia.org/wiki/ISO/IEC_base_media_file_format">ISO BMFF</a> containers (MPEG-4 part 12), commonly referred to as fragmented MP4. All other devices use these.</p>
<p>At a high level, the revised workflow is composed of four main components, the repackager, the distributor, the manifest generator, and the conductor:</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p09wkq97.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p09wkq97.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p09wkq97.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p09wkq97.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p09wkq97.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p09wkq97.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p09wkq97.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p09wkq97.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p09wkq97.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>A high-level architecture of the new push packager workflow.</em></p></div>
<div class="component prose">
    <p>All four components are designed as load-balanced fleets of microservices to support the load of dozens of BBC streams continuously flowing through them. These streams correspond to all our linear TV channels and their many regional variants, half a dozen World Service streams, and a variable number of event streams. The workflow is run in two independent cloud regions to allow for additional resiliency. Let&rsquo;s delve into the role of each component.</p>
<p><strong>The repackager</strong></p>
<p>The upstream encoder produces video using <a href="https://en.wikipedia.org/wiki/Advanced_Video_Coding">the H.264 standard</a> and audio using <a href="https://en.wikipedia.org/wiki/Advanced_Audio_Coding">the AAC standard</a>. Both the video and audio are wrapped in TS containers, and the encoder continuously sends small container files which hold roughly 4s of content each. The repackager component receives these chunks of content via HTTP PUT requests. Conveniently, their format is suitable for HLS streaming: to make HLS available, the repackager can simply forward them untouched to the next component in the workflow, the distributor.</p>
<p>However, it additionally needs to transform the TS chunks in a format suitable for our DASH streams. The repackager&rsquo;s task is to parse the TS container and extract the raw H.264/AAC data. Using information gathered by reading through this media data, it rewraps the pictures and sound in an MP4 container with all required metadata. The generated MP4 files are sent to the distributor alongside their TS counterparts.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p09wkqdj.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p09wkqdj.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p09wkqdj.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p09wkqdj.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p09wkqdj.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p09wkqdj.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p09wkqdj.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p09wkqdj.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p09wkqdj.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>Structured metadata from one of our generated MP4s, displayed in the mp4box.js viewer.</em></p></div>
<div class="component prose">
    <p><strong>The distributor</strong></p>
<p>The distributor component receives the MP4 and TS chunks sent by the repackager over HTTP, and in turn, publishes them to CDN storage locations so that our audiences can access them. Depending on the stream, one file may be published to several CDN endpoints for additional redundancy. The distributor can essentially be viewed as a one-to-many mapper, handling all authentication and retry behaviour when interacting with a CDN.</p>
<p>Additionally, for every TS chunk it receives, the distributor sends an HTTP request to the manifest generator, triggering the generation of a manifest corresponding to that chunk.</p>
<p><strong>The manifest generator</strong></p>
<p>Manifests are text documents. Their primary goal is to guide the player to download the different media chunks within a given stream. When the play button is pressed, the player first downloads the manifest, and using the information it contains, keeps on requesting small media files containing 4s of content. The downloaded files are rendered one after the other, allowing viewers to have a continuous and seamless playback experience. HLS and DASH define different types of manifests, and the manifest generator component is responsible for creating these variants. Generated manifests are sent to the distributor component over HTTP to be published to the CDN alongside the media chunks.</p>
<p><strong>The conductor</strong></p>
<p>The conductor provides several REST API endpoints to configure the behaviour of the other components in the workflow. For example, it is responsible for driving the automatic scaling of the microservices when additional streams are started, adjusting the monitoring, keeping track of start and end time of events, filtering encoder inputs, and a variety of other management tasks.</p>
<h2>Paving the way to the future</h2>
<p>Driven by a cross-departmental effort involving several teams, our push packager workflow has been successfully running in production since February 2021. Initially trialled with <a href="https://www.bbc.co.uk/schedules/p015pksy">the BBC Two HD channel</a>, it now continuously carries over 40 streams, with additional event streams soon to be migrated. Over a million new files are produced every hour, and billions of media chunks have successfully been uploaded to CDN storages since its inception. Across all summer 2021 sporting events, the system allowed us to reach a record 253 million play requests on BBC iPlayer and BBC Sport.</p>
<p>Even though the numbers shared here fit well within the realm of hyper-scale when it comes to data produced and network traffic, it is worth noting that online streaming is a small proportion of the BBC&rsquo;s audience coverage. Linear broadcast TV still makes up the lion&rsquo;s share. However, online consumption is steadily increasing, reaching about a quarter of all viewers during the summer events, and an IP-only future is fast approaching. With these efforts, we will be better placed to move forward: our new packager gives us the flexibility to adapt our content to take full advantage of improvements in specifications <span style="text-decoration: underline;">and</span> allows us to reliably and cost-effectively serve millions more online viewers in the coming years.</p>
<p>Want to see our system in action? Open <a href="https://www.bbc.co.uk/iplayer">BBC iPlayer</a> and simply press play on one of our live streams!</p>
<ul>
<li><strong><a href="https://www.bbc.co.uk/rd/blog/2021-07-uhd-hdr-television-production-workflow">BBC R&amp;D -&nbsp;Designing UHD HDR for Euro 2020</a></strong></li>
<li><a href="https://www.bbc.co.uk/mediacentre/2021/iplayer-top-10-jan-jun"><strong>BBC Media Centre - Record-breaking first half of 2020 on BBC iPlayer</strong></a></li>
<li><strong><a href="https://www.bbc.co.uk/rd/projects/low-latency-live-streaming-mpeg-dash">BBC R&amp;D -&nbsp;Low Latency Live Streaming with MPEG DASH</a></strong></li>
<li><strong><a href="https://www.bbc.co.uk/rd/blog/2021-06-streaming-adaptive-bitrate-quality-resolution-bandwidth">BBC R&amp;D -&nbsp;Higher quality video streams and improving adaptive bitrate reliability</a></strong></li>
</ul>
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>New look subtitles and playback for BBC iPlayer on TV</title>
      <description><![CDATA[We’re rolling out a new look for playback on connected TV - clean, sleek and pared-back, with new, improved, customisable subtitles.]]></description>
      <pubDate>Thu, 08 Apr 2021 08:00:32 +0000</pubDate>
      <link>https://www.bbc.co.uk/blogs/internet/entries/bea5fa67-fd72-40df-acce-2966cf499ae2</link>
      <guid>https://www.bbc.co.uk/blogs/internet/entries/bea5fa67-fd72-40df-acce-2966cf499ae2</guid>
      <author>Andrew White</author>
      <dc:creator>Andrew White</dc:creator>
      <content:encoded><![CDATA[<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p09cztdr.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p09cztdr.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p09cztdr.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p09cztdr.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p09cztdr.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p09cztdr.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p09cztdr.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p09cztdr.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p09cztdr.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>From today, we&rsquo;re rolling out a new look for <a href="https://www.bbc.co.uk/iplayer/help/questions/getting-started-with-bbc-iplayer/getting-started-tv">BBC iPlayer&rsquo;s playback on TVs</a>. It&rsquo;s a cleaner, sleeker and more pared-back interface, with some changes to how things appear during playback and new, improved subtitles you can customise and control.</p>
<p>The first thing most viewers will notice is the playback bar along the bottom. You will now see a simple, elegant bar that shows how far through the programme you are.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p09czrsq.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p09czrsq.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p09czrsq.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p09czrsq.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p09czrsq.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p09czrsq.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p09czrsq.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p09czrsq.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p09czrsq.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>Gone is the play/pause button - play and pause icons are now briefly displayed in the centre of the screen when pausing and resuming, whilst rewinding and fast-forwarding brings up visual stills from the programme, so you can easily see when to press play again.</p>
<p>All the extra controls for more episodes, subtitles and settings and the button to add a programme to your list to watch later have all been moved to the top left of the screen.</p>
<p>As part of these changes, we&rsquo;ve also made significant improvements to the way viewers can control subtitles on iPlayer. The new position of the subtitles and settings menu makes it easier than ever to turn subtitles on or off, as well as making it easier to choose the audio described and signed versions where available; plus, we&rsquo;ve also added the ability to change and control the size of the subtitles.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p09czjwb.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p09czjwb.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p09czjwb.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p09czjwb.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p09czjwb.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p09czjwb.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p09czjwb.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p09czjwb.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p09czjwb.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>Previously <a href="https://www.bbc.co.uk/iplayer/help/questions/accessibility/using-subtitles">subtitles on iPlayer</a> were automatically displayed as a larger size than we use on broadcast, so as part of these changes, we&rsquo;ve made the default setting a smaller size. For those who need larger or, indeed, even smaller text, they can now choose from a range of five options. That choice is remembered for other programmes they watch in the future.</p>
<p>These changes follow some other recent improvements we&rsquo;ve made to subtitles on iPlayer on TV. Previously subtitles would appear as coloured sans serif text with a black outline, always at the bottom-middle of the screen. This was far from ideal as, for example, it could be difficult to read the white text if the video image behind it was also white or was patterned. And if the part of the video image behind the subtitles contained something that viewers needed to see to understand the programme &ndash; for example, the clues on <a href="https://www.bbc.co.uk/programmes/b00lskhg">Only Connect</a> &ndash; they could only see it by switching subtitles off.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p09czjz8.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p09czjz8.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p09czjz8.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p09czjz8.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p09czjz8.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p09czjz8.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p09czjz8.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p09czjz8.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p09czjz8.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>The improvements we&rsquo;ve made recently mean when you&rsquo;re watching iPlayer on a TV, subtitles are now clearly readable, in the <a href="https://www.bbc.co.uk/gel/articles/introducing-bbc-reith">BBC Reith Sans typeface</a>, with a black background behind the text, and the correct colours to show who is talking. They are also now positioned to take account of what&rsquo;s on-screen, so they will no longer be covering important information, and mean our viewers who use subtitles can play along with Only Connect and enjoy Victoria Coren-Mitchell&rsquo;s witty and withering jokes at the same time.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p09czk24.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p09czk24.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p09czk24.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p09czk24.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p09czk24.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p09czk24.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p09czk24.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p09czk24.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p09czk24.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>Currently, the new size controls are only available on our on-demand content but will be coming to live channels on iPlayer in the coming weeks. Let us know your feedback on the new look playback interface, the new subtitle controls or anything else at <a href="https://www.bbc.co.uk/contact">bbc.co.uk/contact</a>.</p>
<blockquote>
<p>&gt; <a href="https://www.bbc.co.uk/iplayer/features/accessibility">BBC iPlayer - Accessibility</a></p>
<p>&gt; <a href="https://www.bbc.co.uk/blogs/internet/tags/accessibility">BBC Technology + Creativity - Accessibility</a></p>
<p>&gt; <a href="https://www.bbc.co.uk/rd/blog/2019-08-casualty-tv-drama-audio-mix-speech-hearing">BBC R&amp;D - Casualty - Accessible and enhanced audio trial</a></p>
</blockquote>
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>Building a WebAssembly Runtime for BBC iPlayer and enhanced audience experiences</title>
      <description><![CDATA[How WebAssembly is being rolled out to different BBC platforms.]]></description>
      <pubDate>Mon, 01 Mar 2021 10:19:41 +0000</pubDate>
      <link>https://www.bbc.co.uk/blogs/internet/entries/39f42525-77db-43b0-81bb-70a0d5b1f062</link>
      <guid>https://www.bbc.co.uk/blogs/internet/entries/39f42525-77db-43b0-81bb-70a0d5b1f062</guid>
      <author>Juliette Carter</author>
      <dc:creator>Juliette Carter</dc:creator>
      <content:encoded><![CDATA[<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p09ffmq9.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p09ffmq9.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p09ffmq9.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p09ffmq9.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p09ffmq9.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p09ffmq9.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p09ffmq9.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p09ffmq9.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p09ffmq9.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>At <a href="https://www.bbc.co.uk/rd">BBC Research &amp; Development</a>, we are investigating how we evolve our current multimedia applications to move beyond video by using <a href="https://www.bbc.co.uk/rd/object-based-media">object-based media (OBM)</a>. OBM allows us to develop future audience experiences which are immersive, interactive and personalised.</p>
<p>There is an ever-increasing number and range of audience devices capable of playing back OBM experiences. The challenge we now face is universal access - How can we get all members of the audience to enjoy OBM experiences on any device, and how do we do this sustainably and at minimal cost?</p>
<p>Our <a href="https://www.bbc.co.uk/rd/projects/render-engine-broadcasting">Render Engine Broadcasting (REB)</a> project is investigating new technologies that will allow the BBC to deliver these OBM experiences at scale to all of our audiences, no matter what device they use. Our ultimate goal is to deliver real-time and fully rendered experiences on any device or platform and write the software to do it only once. We have been investigating the use of WebAssembly as a cross-platform technology for this.</p>
</div>
<div class="component prose">
    <p><strong>What is WebAssembly?</strong></p>
<p><a href="https://webassembly.org/">WebAssembly</a> (wasm) is a Universal Binary format designed as a sandboxed environment and a portable compilation target, which means that the same wasm module can run securely on multiple platforms. A number of strongly typed languages such as C/C++, Rust or AssemblyScript can compile to WebAssembly, making it language agnostic. This makes it an attractive option for adoption in the industry as it enables developers to use languages they already know to produce wasm binaries.</p>
<p>When WebAssembly was first developed a few years ago, its target platform was the web. The aim was to compile fast and efficient system-level code and have it run in the browser. Compute intensive applications, such as real-time interactive rendered graphics, could be run in a web browser at near-native performance. This also enabled some native applications to be ported to the web, increasing their reach and usage. These include <a href="https://www.google.com/earth">Google Earth</a>, which renders 3D representations of satellite image in the browser, and <a href="https://en.wikipedia.org/wiki/AutoCAD">AutoCad</a>, which now offers a WebApp to create and edit CAD drawings.</p>
<p>In the last couple of years, WebAssembly outside of the browser has been gaining traction. A number of native wasm runtimes have been developed, which has enabled the use of WebAssembly for microservices and server applications. In 2018, the website security company <a href="https://blog.cloudflare.com/webassembly-on-cloudflare-workers/">Cloudflare</a> announced the use of WebAssembly on their edge workers, allowing users to deploy secure and fast serverless code compiled to wasm. And the edge cloud platform provider&nbsp;<a href="https://www.fastly.com/blog/announcing-lucet-fastly-native-webassembly-compiler-runtime">Fastly</a>&nbsp;offers new wasm-based edge computation using their native runtime Lucet.</p>
<p>The portability of WebAssembly across multiple platforms and its security model are the key reasons for BBC R&amp;D&rsquo;s interest in using this technology as a compilation target for media experiences. As a public service broadcaster, we need to deliver value to all of our audiences, regardless of the device they use. Where traditionally, a codebase for each target platform and a different team to maintain each codebase would be required, the use of WebAssembly potentially allows for a much more sustainable developer ecosystem. It enables media software applications to be created once, from a single codebase, compiled to WebAssembly and deployed on any client or server platform depending on the capabilities required. It also offers numerous advantages compared to previous multimedia or cross-platform technologies (such as Flash or Java Runtime Environment). Indeed, it is language agnostic, security-focused, has predictable performance, and works inside and outside the browser. WebAssembly is also an open standard, which encourages its adoption.</p>
<h4>How have we used WebAssembly?</h4>
<p>We wanted to demonstrate how we could use WebAssembly to deliver media experiences that can run on many target platforms built from a single codebase. To do that, we implemented an example media application written in C++, which we compile to WebAssembly, giving us a wasm module. We designed this application to look like a version of BBC iPlayer, allowing users to select content, watch video programmes, AND play OBM experiences. We call this application the Single Service Player (SSP).</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p09ffygy.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p09ffygy.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p09ffygy.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p09ffygy.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p09ffygy.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p09ffygy.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p09ffygy.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p09ffygy.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p09ffygy.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>An example of how object-based media experiences could appear within BBC iPlayer.</em></p></div>
<div class="component prose">
    <p>To run our SSP wasm module, we needed a wasm runtime. The SSP makes use of some low-level media functionality, which isn&rsquo;t scoped by the WebAssembly specification. To enable wasm modules to make use of these low-level multimedia capabilities, they need to be implemented in the runtime and made available to the wasm module through a set of imports. Examples of such capabilities include:</p>
<ul>
<li>Windowing and rendering &mdash; In most cases, a multimedia application will have some graphical elements to it, which requires things to be drawn in a window (such as video frames or a UI screen).</li>
<li>User inputs &mdash; An interactive multimedia experience expects user inputs, such as keyboard or mouse events.</li>
<li>Media encoding and decoding &mdash; To efficiently encode and decode media (such as video frames or audio packets), it is preferable to use the host&rsquo;s hardware resources where possible.</li>
</ul>
<p>As there is currently no WebAssembly runtime that offers these media capabilities, we've decided to create our own.</p>
<p>There are already some efforts in specifying ways a wasm module can talk to the host. <a href="https://wasi.dev/">WASI (the WebAssembly System Interface)</a> proposes a set of standardised POSIX-like syscalls (the programmatic way in which a computer programme communicates with the host system) for libc functionality, mainly file handling and networking. These are called from the wasm module and implemented in the runtime.</p>
<p>We decided to use a similar approach to allow our SSP wasm module to communicate with the host, enabling it to have access to low-level media functionality. This involved identifying all the platform-specific media capabilities that could not be compiled to wasm and implementing them in the runtime. These capabilities were then made accessible to the wasm module through a set of platform-independent syscalls passed as imports.</p>
<p>This figure illustrates the whole process, from writing a media experience as software (such as the SSP) to running it as a wasm module on any device. The steps are detailed below.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p098btpl.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p098btpl.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p098btpl.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p098btpl.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p098btpl.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p098btpl.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p098btpl.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p098btpl.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p098btpl.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>The first step was to design the multimedia sys-call API behind which we would implement our cross-platform multimedia capabilities in the runtime. It needed careful consideration to ensure it was thread-safe and honoured the wasm security requirements around memory access. In the figure above, we use reb_decode_video() as an example syscall, which our SSP application can use to access low-level multimedia functionality, such as utilising the system&rsquo;s hardware for video decoding.</p>
<p>Our SSP code was compiled to wasm using the clang compiler and the wasi-sdk toolchain, and the required syscalls are added as imports to the wasm module.</p>
<p>We then built the multimedia wasm runtime, consisting of two parts. The first one is the execution environment for wasm modules, which allows us to load and run a wasm module. For this, we embedded <a href="https://wasmtime.dev/">Wasmtime</a>, a <a href="https://bytecodealliance.org/">ByteCode alliance</a> project based on <a href="https://github.com/bytecodealliance/wasmtime/tree/main/cranelift">Cranelift</a>, which generates the machine code for the target platform from the wasm binary.</p>
<p>The second part of our runtime is the implementation of the low-level multimedia functionality. For this, we created a cross-platform C++ library with input detection, networking, windowing, graphical rendering, and media decoding, which sits behind our carefully designed syscall APIs. We compiled our library for several target platforms, such as Linux, macOS, Windows, Raspberry Pi and Android. We also wrote some glue code to connect the two parts.</p>
<h4>Where do we go from here?</h4>
<p>A wasm runtime capable of executing multimedia applications opens a lot of possibilities, principally around flexible compute. Flexible compute allows us to run computationally demanding applications by dividing up the workload between available resources. These resources could be located locally (a laptop, games console or phone in your house), in the edge, or the cloud.</p>
<p>As we move towards delivering fully rendered real-time interactive experiences, the flexible compute approach becomes an attractive solution to the computational demands of such applications. We could, for example, consider segmenting a rendered frame into several tiles or objects, each of those rendered on a separate available compute resource. Many systems approach this problem by running specific compute tasks in containers across the available devices and platforms. We hope to use our work and accrued knowledge in developing the wasm multimedia runtime to investigate a viable alternative to the container approach for distributed media applications. We are looking into using wasm modules to perform secure and fast computation on any remote compute nodes.</p>
<p>Our runtime, capable of performing media services such as rendering and decoding or encoding of rendered video frames, can be used to display the final experience to the user on a client device and to execute the remote computational tasks as wasm modules. Using WebAssembly combined with a flexible compute approach, we hope to develop technology that allows the audience to access any future experience, regardless of their devices at home.</p>
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>Mixing Audio Description for BBC iPlayer</title>
      <description><![CDATA[How more Audio Described content has been made available to stream.]]></description>
      <pubDate>Tue, 20 Aug 2019 13:09:02 +0000</pubDate>
      <link>https://www.bbc.co.uk/blogs/internet/entries/4b2fc26e-8822-4fd8-9aa7-840a41e992c5</link>
      <guid>https://www.bbc.co.uk/blogs/internet/entries/4b2fc26e-8822-4fd8-9aa7-840a41e992c5</guid>
      <author>Marcel Riederer</author>
      <dc:creator>Marcel Riederer</dc:creator>
      <content:encoded><![CDATA[<div class="component prose">
    <p>In 2009, <a href="https://www.bbc.co.uk/blogs/bbcinternet/2009/08/bbc_iplayer_audio_description.html">iPlayer became the first video on-demand service to offer Audio Described content</a>. Audio description makes video content more accessible to blind and visually impaired people by explaining what is happening on screen. This helps viewers with visual impairments to follow what is going on.</p>
</div>
<div class="component">
    <div class="third-party" id="third-party-0">
        This external content is available at its source:
        <a href="https://youtu.be/x5LuymRFgHM">iPlayer AD guide</a>
    </div>
</div>
<div class="component prose">
    <p>Back then, iPlayer was a catch up service for the BBC: programmes would only be available on-demand for a limited period after they had been broadcast and recorded from terrestrial TV streams. Since then, iPlayer has evolved, allowing programmes to be made available before they are broadcast. This is made possible through our file-based delivery workflow which has been in place since 2013 and enables pre-recorded shows to become available on iPlayer as soon as or before they are broadcast on TV.</p>
<p>Unfortunately, as of 2018, audio described content was still living in the catch-up paradigm, where content was only made available on iPlayer after it had been broadcast. This meant that old shows, Doctor Who for example, made available again as box-sets on iPlayer, but not scheduled for the TV, did not have their audio described version made available.</p>
<p>This was a frustration for our viewers who could regularly access audio described content on iPlayer, but would find some programmes missing their audio described version even if it had been available in the past, or was to be broadcast in the near future.</p>
<p>With Killing Eve season 2 released on iPlayer as a box-set with all episodes available with an audio described version, I felt it was a good time to tell our side of the story. This blog post will cover some of the tech we used to make audio described content available on iPlayer.</p>
</div>
<div class="component prose">
    <h4>The media files</h4>
<p>To create audio described programmes we need two types of media.</p>
<p><strong>Video file of a scheduled programme (MXF file)</strong></p>
<p>We receive a video MXF file, from the production team who made the programme, in a very high quality, high-bitrate <a href="https://www.thedpp.com/tech/delivery/as11uk/">AS-11 DPP format</a>. This is a format developed in conjunction <a href="https://www.bbc.co.uk/rd/blog/2014-10-delivering-file-based-delivery">with other UK broadcasters for file-based delivery workflows</a>. The MXF file contains the video and the original programme audio without audio description and is used to create all the different formats needed to stream or download our content. It may be in stereo or surround sound, standard definition or HD. You will see that the audio described version of the programme is also created in the AS-11 DPP format with the same quality and features as the regular programme but with audio description dubbed in.</p>
<p><strong>Audio Description Studio Signal (AD WAV file)</strong></p>
<p>An audio description studio signal is produced and delivered to us by our partner Red Bee Media in a stereo WAV format. The left channel contains the audio described voice track, with no original programme audio and the right channel is control data, not something you&rsquo;d want to listen to unless you find a fax machine weirdly soothing. The control channel is used to dip the original programme audio so as to ensure the audio description is audible over any background audio in the programme. <a href="https://www.bbc.co.uk/rd/publications/whitepaper198">This paper from BBC R&amp;D</a> has more detail on the audio description studio signal.</p>
<h4>The media tools</h4>
<p>To do the mixing we use the following tools.</p>
<p><strong>Gstreamer</strong></p>
<p><a href="https://gstreamer.freedesktop.org">Gstreamer</a> is an open source multimedia framework that we use with an <a href="https://github.com/bbc/gst-audiodescription">audio description plugin</a> developed by David Holroyd. The plugin only works on audio so the original programme audio must be extracted. It mixes the original programme audio and the audio described voice track, adjusting the gain of the original programme audio as signalled by the control track so that the audio description can be clearly heard. The output is a single mono track so this has to be run twice, once on the left audio channel and once on the right audio channel, for a stereo programme.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p07l43yb.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p07l43yb.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p07l43yb.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p07l43yb.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p07l43yb.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p07l43yb.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p07l43yb.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p07l43yb.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p07l43yb.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>Principles of fading original programme audio during description passages. Source: WHP051</em></p></div>
<div class="component prose">
    <p><strong>BMX</strong></p>
<p><a href="https://sourceforge.net/projects/bmxlib/">BMX</a> is an open-source project from BBC R&amp;D to read and write MXF file formats in common use at the BBC, written by Philip de Nier. It has had many uses in the BBC over the years, most recently as a widely-used engine for generating DPP files. We use the following utilities from BMX to create our audio described content:</p>
<ul>
<li>bmxtranswrap to extract the stereo audio channels from the MXF file and convert them to uncompressed WAV format.</li>
<li>mxf2raw to extract the MXF metadata and raw essences, which are the video and audio elements.</li>
<li>raw2bmx to assemble an MXF from the metadata and raw essences</li>
</ul>
<h4>The process</h4>
<p>The following steps outline how we use the media files and tools to create an audio described version of a programme. These are the instructions implemented in our code that we deploy on EC2 instances in AWS.</p>
<p><strong>Preparing the AD WAV file</strong></p>
<p>We receive AD files in a mixture of 16 and 24 bits, so we normalise them all with Gstreamer to 16 bit. We now have:</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p07l4465.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p07l4465.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p07l4465.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p07l4465.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p07l4465.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p07l4465.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p07l4465.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p07l4465.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p07l4465.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p><strong>Extracting the audio from the MXF file</strong></p>
<p>First, we extract the left and right audio channels from the MXF and convert them into separate mono WAV formatted files.</p>
<p>Each audio channel starts with what is called a &ldquo;handle&rdquo; &mdash; a term for a sequence of tones used for broadcast timing. The video also includes a ticking clock during this handle period. We need to remove the handle from the audio before we can mix, as the AD file does not contain the handle stage.</p>
<p>So we extract the handle and store it for later. Finally, we extract the audio after the handle to give us just the original programme audio. The audio is now ready to be mixed.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p07l44lq.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p07l44lq.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p07l44lq.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p07l44lq.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p07l44lq.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p07l44lq.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p07l44lq.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p07l44lq.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p07l44lq.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p><strong>Mixing the audio description with the original programme audio</strong></p>
<p>The Gstreamer plugin then mixes the original programme&rsquo;s left and right audio channels with the audio described track. The handle is then prepended to both channels so that they are now in sync with the video. This creates our final mixed audio described tracks ready for reassembling.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p07l456l.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p07l456l.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p07l456l.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p07l456l.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p07l456l.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p07l456l.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p07l456l.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p07l456l.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p07l456l.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p><strong>Extracting essences</strong></p>
<p>We need to extract all the essences from the original MXF file to then insert the mixed audio described tracks. The essences will consist of the AS-11 metadata, one video essence &mdash; the main bulk of the MXF &mdash; and the audio essences. The essences look like:</p>
<ul>
<li>Metadata: as11-core.txt, as11-dpp.txt and as11-segments.txt</li>
<li>Video: essence_v0.raw</li>
<li>Audio: essence_a0.raw essence_a1.raw</li>
</ul>
<p><strong>Assembling the final MXF file</strong></p>
<p>The mixed audio described tracks are used in place of the audio essences, but all other original extracted essences, video and metadata are used to construct the new audio described MXF. We now have our audio described MXF that is used in our file-based delivery workflow to create the compressed assets that can be played in iPlayer.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p07l46h7.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p07l46h7.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p07l46h7.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p07l46h7.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p07l46h7.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p07l46h7.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p07l46h7.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p07l46h7.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p07l46h7.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <h4>The quirks</h4>
<p><strong>Performance</strong></p>
<p>Downloading, uploading, extracting and assembling media files is a slow process. This is due to the size of an MXF file. An hour-long HD MXF file will be around 60GB. Processing a file of that size takes considerable time. We took some steps to reduce the processing time by using an i3.large instance for its high network performance and high I/O performance with SSD storage.</p>
<p>With these features, an instance can still take over 40 minutes to complete one mix. This raises a problem for auto-scaling instances.</p>
<p><strong>Auto Scaling</strong></p>
<p>It is common for our components to scale out when work piles up in the form of messages on our instance&rsquo;s input queue, similarly scaling in when work is low. We want to prevent scaling in from terminating an instance that is currently processing one of the messages and doing work.</p>
<p><a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection">Instance protection</a> allows an instance to protect itself from a scale in event by requesting protection from the AutoScalingGroup API. When one of our components will have a long running process like creating audio described content it will protect itself when it starts processing a message, then removing that protection after the message and work has been completed.</p>
<p><strong>Long-term storage means long-term costs</strong></p>
<p>To reduce storage costs for the BBC, once a programme&rsquo;s availability has expired on iPlayer, only the original MXF file is kept for long-term storage. All other versions of that programme are removed, including the audio described version. This is why in the past audio described content that was previously broadcast did not reappear on iPlayer when its original version was made available again.</p>
<p>This is no longer a problem, because the audio description studio signal is now kept in long-term storage. An audio described version of a programme is now recreated when ever the programme is rescheduled for the iPlayer. This is more cost effective than storing the audio described version.</p>
<p><strong>Testing with Docker</strong></p>
<p>The majority of our micro-services don&rsquo;t manipulate media; that is done with on-site hardware or third party cloud transcoders. The audio description workflow is different. It relies on the tools mentioned above: tools that only a few of our developers have installed locally. We could have mocked the calls and just checked the functionality of the code, but we wanted something a bit more robust.</p>
<p><a href="https://www.docker.com/why-docker">With Docker</a> we are able to run our code and tools as if they&rsquo;re running on an EC2 instance, thereby testing the whole audio description workflow locally and in our continuous integration workflow. We do this with a base image of our underlying EC2 instance&rsquo;s OS and installing our project as an RPM. When testing, we overwrite the compiled jar on the image with a local copy to avoid rebuilding the image.</p>
<h4>Interested in learning more?</h4>
<ul>
<li><a href="https://www.bbc.co.uk/iplayer/categories/audio-described/featured">Audio described content on iPlayer</a></li>
<li><a href="https://www.rnib.org.uk">Royal National Institute of Blind People</a></li>
<li><a href="https://www.bbc.co.uk/programmes/b05ssqpl">&ldquo;The Audio Describers&rdquo;: A BBC Radio 4 programme about audio description</a></li>
</ul>
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>Visual seeking for BBC iPlayer</title>
      <description><![CDATA[The Media Services team explain the steps taken to create visual seeking functionality.]]></description>
      <pubDate>Fri, 22 Feb 2019 10:56:50 +0000</pubDate>
      <link>https://www.bbc.co.uk/blogs/internet/entries/ab512d3d-6a4c-439b-bc34-fdce09afe2b8</link>
      <guid>https://www.bbc.co.uk/blogs/internet/entries/ab512d3d-6a4c-439b-bc34-fdce09afe2b8</guid>
      <author>Daniel Pope, Gokhan Urgun and Andrew Wheat</author>
      <dc:creator>Daniel Pope, Gokhan Urgun and Andrew Wheat</dc:creator>
      <content:encoded><![CDATA[<div class="component prose">
    <p><em>In our commitment to providing quality of service and ease of use, we launched the 'Visual Seeking' feature across the BBC websites. This post outlines some of the design decisions that were made to address technical and UX concerns.</em></p>
<p>A while back we added our visual seeking feature for videos that play across the BBC websites, such as News, Sport and iPlayer. This required close collaboration between Media Services (who develop Video Factory, encoding media content for the Web), <a href="https://www.bbc.co.uk/rd">BBC Research and Development </a>(R&amp;D), the BBC Online Technology Group (OTG) and Media Playout (who develop SMP - the Standard Media Player used across the BBC website).</p>
<p>Visual seeking (aka Thumbnail Scrubbing) is where a small preview picture of the video appears when you move your mouse over the scrub bar. For example, let&rsquo;s say you wanted to skip to a particular celebrity in Strictly: you can now quickly find the right part by hovering over the scrub bar.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p071nt7s.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p071nt7s.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p071nt7s.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p071nt7s.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p071nt7s.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p071nt7s.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p071nt7s.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p071nt7s.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p071nt7s.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>We turned on the back end services a month before the feature went visible to the public, so most programmes had thumbnails available at launch. We later ran a backfill job to generate thumbnails for extended availability content.</p>
<p>We initially launched the feature on desktop and tablets that use a responsive web player. We added the feature later to Sports Apps for mobile devices and recently IPTVs. Other Apps for mobile devices will follow.</p>
<h4>The challenges</h4>
<p>There were some challenges to address and consider when delivering the visual seeking feature to achieve high perceptible quality, low latency, efficient broadband use and supporting wide range of playback devices with different requirements.</p>
<p>The rest of the blog post will give you details of the solutions and the trade-offs that were considered.</p>
<h4>Faster</h4>
<p>One way to enable thumbnail scrubbing could be to download the entire video in low quality, then generate the correct frame by seeking the low quality video to the correct place. Decoding video in this way is a particularly CPU intensive process, so instead we opted to generate thumbnails as a collection of JPEGs ahead of time for the media player to consume.</p>
<p>Let&rsquo;s say a video contains 500 thumbnails. To download these images, the player could make 500 separate requests for one thumbnail at a time. The problem with this is that each request has an overhead, a delay before data starts arriving. Poor network conditions make this delay significant, and browsers will limit the number of simultaneous requests that can be made, resulting in poor performance.</p>
<p>We can improve the efficiency of acquiring the images by packing the individual thumbnails into storyboards. A storyboard is a 5x5 arrangement of thumbnails packed into a single image file. This reduces the number of requests that the player needs to make by a factor of 25 rather than making 500 separate requests for images, the player only has to make 20. The player then treats this storyboard as a <a href="https://css-tricks.com/css-sprites/">sprite sheet</a>, displaying only one thumbnail at a time.</p>
<h4>Efficiency</h4>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p071ntth.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p071ntth.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p071ntth.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p071ntth.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p071ntth.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p071ntth.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p071ntth.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p071ntth.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p071ntth.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>An example storyboard of 25 thumbnails</em></p></div>
<div class="component prose">
    <p>The player downloads storyboards &lsquo;on demand&rsquo; to make efficient use of the broadband connection. When the user hovers over the scrub bar, only its related storyboard and two adjacent neighbours get downloaded. Because the storyboards are downloaded in this way, we can afford to produce a greater number of thumbnails for a video to enable a very fine level of scrubbing. Move your mouse one pixel to the right and you&rsquo;ll get a new thumbnail. This helps to make seeking more precise, which is important for longer programmes.</p>
<p>Packing thumbnails into storyboards has some pitfalls of its own. The thumbnails themselves compress much better using the JPEG format rather than PNG or GIF. Given this, we decided to use JPEG as we get the same visual quality but for a smaller file. The JPEG format breaks the image into 8x8 pixel blocks, each of which are compressed separately. To provide good quality for the compression used, we needed to pick thumbnail sizes where the edges of the thumbnails fall on the boundaries of these blocks to limit 'bleeding' between adjacent thumbnails. BBC R&amp;D recommended three different thumbnail sizes to cater for different screen sizes. The sizes were picked to reduce this bleeding as much as possible: joins between columns line up perfectly, but the joins between rows don't always align with the blocks. Where there is misalignment, the frames will be seen to have a fuzzy edge as seen in the example below.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p071ntx0.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p071ntx0.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p071ntx0.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p071ntx0.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p071ntx0.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p071ntx0.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p071ntx0.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p071ntx0.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p071ntx0.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p><em>Compare the fuzzy boundary between thumbnails 2 and 4 with the sharp boundary between thumbnails 3 and 4. The content of adjacent thumbnails affects the image where the 8x8 blocks do not align with the thumbnails. </em></p>
<h4>Standardisation</h4>
<p>Another big challenge was the absence of standardisation for media representation of the thumbnails for video in online video industry. BBC R&amp;D provided us a library they developed which is based on streaming clips which is strategically better but not supported on TV version of iPlayer. Thus, we couldn&rsquo;t use it. BBC R&amp;D and Media Services collaborated on producing a form of media presentation description for the thumbnails of a video based on the MPEG-DASH industry standard. Being able to describe the thumbnails as media is particularly beneficial when used with the storyboards to structure the description of thousands of thumbnails for video.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p071nx6f.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p071nx6f.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p071nx6f.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p071nx6f.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p071nx6f.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p071nx6f.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p071nx6f.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p071nx6f.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p071nx6f.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>Thumbnail scrubbing media presentation description data structure</em></p></div>
<div class="component prose">
    <p>The extension to the standard also allows us to describe and structure varying number, size and layout of the thumbnails for the same video. To do so, we preferred using separate adaptation sets for each storyboard with different characteristics to reduce the restrictions of the media description to build a future proof foundation.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p071nv39.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p071nv39.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p071nv39.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p071nv39.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p071nv39.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p071nv39.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p071nv39.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p071nv39.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p071nv39.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>Thumbnail scrubbing media presentation description file</em></p></div>
<div class="component prose">
    <p>The thumbnail media presentation description extension was communicated with the MPEG-DASH community, which led to recognition of thumbnail support in media presentation description hence became part of MPEG-DASH industry standard with <a href="http://dashif.org/guidelines/">DASHIF V4.1</a>.</p>
<p>Another Brick in the Wall (of microservices)</p>
<p><a href="http://www.bbc.co.uk/blogs/internet/entries/eb9d3ca8-56bb-39a0-b990-07e14c5996f4">Video Factory</a> is the product that deals with the conversion of audio and video for publishing to the BBC sites including iPlayer, Sport and News. It is built using microservices - small pieces of software each with a single purpose, one step in the much larger workflow.</p>
<p>Using this architecture pattern, when we want to add a new feature we just need to create a new microservice and add it to the workflow. This is exactly what we've done for Visual Seeking.</p>
<p>We encode very high quality source video and produce a variety of different bitrates to support playback and streaming with over 1000 different devices, including PCs, phones, tablets, games consoles, and smart TVs. These individual bitrate videos are then distributed and published. We included the thumbnail feature by using the encoder output for a specific bitrate and creating thumbnail storyboards and media presentation description manifest file which are then distributed and published.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p071nxgb.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p071nxgb.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p071nxgb.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p071nxgb.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p071nxgb.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p071nxgb.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p071nxgb.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p071nxgb.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p071nxgb.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>The thumbnail scrubbing feature in Video Factory</em></p></div>
<div class="component prose">
    <p>By adding the new feature in this way, we were able to make the change without affecting any of the original services. Thumbnail generation and the publication of videos work independently of each other, meaning that there is no extra delay in the videos being published; and if the thumbnail service were to fail, the videos would still appear on iPlayer.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p071nxsf.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p071nxsf.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p071nxsf.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p071nxsf.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p071nxsf.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p071nxsf.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p071nxsf.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p071nxsf.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p071nxsf.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>The BBC thumbnails are originated by Radix and distributed by CDNs</em></p></div>
<div class="component prose">
    <p>The thumbnails are distributed through a high performance and resilient content delivery architectural solution that also provides authentication and content routing. <a href="http://www.bbc.co.uk/blogs/internet/entries/4d747541-8ecf-48a7-b13e-b4ddf8ffa99e">Radix</a> is a web cache that originates the BBC thumbnails as well as the BBC on-demand content that is distributed by CDNs.</p>
<h4>It&rsquo;s all about compromise</h4>
<p>We had a number of design decisions to make, and ultimately they were decided by compromising between quality and efficiency. We made the decisions considering the trade-offs of each option after some measurements based on the following facts:</p>
<ul>
<li>Increasing the quality of the image leads to an increase in the storyboard file size</li>
<li>The bigger the file, the longer it will take to download</li>
<li>The perceived quality of a small image doesn&rsquo;t change after a certain quality level.</li>
<li>An increase in the number of thumbnails in a storyboard also increases the file size but reduces the number of requests that the player needs to make to be able to get thumbnails for video.</li>
</ul>
<p>We made a target to produce storyboards at approximately 100KB each. Storyboards of this size can be downloaded very quickly on most connections, and they are of reasonable quality. Devices on slower connections will benefit from progressive JPEG loading, meaning that the full image may appear in low resolution before it has finished downloading.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p071nvjq.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p071nvjq.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p071nvjq.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p071nvjq.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p071nvjq.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p071nvjq.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p071nvjq.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p071nvjq.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p071nvjq.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p><em>Even though the frame on the left has only loaded 25% of the image data, the entire image is visible and the context is still discernible. </em></p>
<p>The file size requirement meant that there is a noticeable loss in image quality, but the effects have been reduced by picking thumbnail sizes that play nicely with the JPEG format.</p>
<p>Our microservice creates storyboards from an input video. We could have used the highest quality output from the encoder to produce storyboards, but using such a high quality input would require a powerful server and a lot of time. Instead we can produce essentially the same output with one of the lower quality videos from the encoder: this vastly reduces the amount of resources required (therefore smaller operating costs) for an almost imperceptible difference in quality. The bitrate we&rsquo;ve chosen takes under 2 minutes to produce thumbnails for an hour-long video.</p>
<h4>Spoilers?</h4>
<p>The introduction of visual seeking could mean that people might accidentally see a key moment of an episode&rsquo;s plot as they move their mouse towards the full screen button. This is why we have introduced a short delay between the user hovering over the scrub bar and the thumbnails appearing on our media player. We hope you find Visual Seeking useful. We welcome feedback and we&rsquo;ll try to answer any questions you may have.</p>
<h4>We are hiring!</h4>
<p>Video Factory is one of the products that the Media Services team are working on at the BBC. There are new features and media technologies we use to improve our services. Visual Seeking is merely one of them. If you like the idea of working with video/audio encoding, publication and live and on-demand streaming services and want to play an important part in the future of online media, you can apply for the job openings <a href="http://careerssearch.bbc.co.uk/jobs/category/10">here</a> when available.</p>
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>Restarting live BBC TV with the green button</title>
      <description><![CDATA[How the Green Button will enable viewers to restart a programme already underway on live TV.]]></description>
      <pubDate>Wed, 25 Jul 2018 13:17:02 +0000</pubDate>
      <link>https://www.bbc.co.uk/blogs/internet/entries/77b6d946-daa6-4b37-97dc-036e1bd821b6</link>
      <guid>https://www.bbc.co.uk/blogs/internet/entries/77b6d946-daa6-4b37-97dc-036e1bd821b6</guid>
      <author>Jennifer  Richardson</author>
      <dc:creator>Jennifer  Richardson</dc:creator>
      <content:encoded><![CDATA[<div class="component prose">
    <p>We all know how irritating it can be to miss the beginning of your favourite TV show. You don&rsquo;t want to miss the first dance on strictly, the beginning of EastEnders or the first game on Match of the Day. That&rsquo;s why, a few years ago, we introduced Live Restart on BBC iPlayer, enabling viewers to watch live TV programmes from the beginning.</p>
<p>Now though, our TVs are much smarter than they were then, and in fact the last couple of years have seen connected TVs become the most popular way of accessing BBC iPlayer. Because of this we&rsquo;re expanding the live restart feature to work from the green button on your remote control, helping to make sure that <a href="http://www.bbc.co.uk/blogs/internet/entries/a70d8daa-5eb9-48c2-900f-6e60a49c793d">you&rsquo;re never late for a BBC programme again</a>.</p>
</div>
<div class="component">
    <div id="smp-0" class="smp">
        <div class="smp__overlay">
            <div class="smp__message js-loading-message delta">
                <noscript>You must enable javascript to play content</noscript>
            </div>
        </div>
    </div><p>
            <em>The iPlayer team describe the work that&#039;s gone into making Live Restart work on TV.</em>
        </p></div><div class="component prose">
    <p>Whilst this feature is already available via Red Button+ and the BBC iPlayer app, we felt that it could be given more prominence by providing it where the audience needs it most: when they change channels. And we have made this as seamless as possible through the press of one button, the green colour button on the remote control.</p>
<p>When asked, users who hadn&rsquo;t used our connected services before were delighted when we showed them the feature and said that it would be a key driver for using BBC iPlayer on their TV.</p>
<p>We found that our audiences tend to restart a programme at different times of the day and for different programmes, but the peaks were usually a few minutes into a programme. We also found that usage increases when we hit a so-called &lsquo;schedule conflict&rsquo; - in other words where programmes don&rsquo;t end at the traditional on-the-hour or half-past-the-hour junctures.</p>
<p>For example when the Great British Bake Off finished on Channel 4 and Doctor Foster on BBC One had started 15 minutes ago - we saw a huge peak in our audience launching BBC iPlayer to restart it. So with this knowledge we decided to display the trigger when the user turns to the BBC channel. That way we display the trigger when the user is most likely to need to restart. After 30 seconds the trigger clears from the screen, but the viewer can press green at any point whilst on the channel.</p>
<p>This feature works for Smart TVs that are connected to the internet and devices that can &lsquo;seek&rsquo; to the start. We&rsquo;ve built a &lsquo;smart&rsquo; trigger that will only display if the device is capable of supporting the functionality. This covers many LG, Panasonic, Sony, Samsung, Vestel, Phillips, Hisense TVs along with Humax and Netgem set top boxes.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p06fntlb.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p06fntlb.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p06fntlb.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p06fntlb.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p06fntlb.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p06fntlb.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p06fntlb.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p06fntlb.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p06fntlb.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>Whilst on the surface this is a simple and straightforward feature, under the hood we&rsquo;ve had to contend with considerable complexity. Working at the BBC always means you&rsquo;re building to scale and I love that about my role, but this time it came with a warning. &ldquo;You might break the whole of BBC iPlayer&rdquo;.</p>
<p>The challenge came on two fronts - both concerned with capacity. Firstly, there&rsquo;s a finite number of simultaneous streams we can safely support and secondly there&rsquo;s an upper limit to the speed at which we can provide them. First imagine that the entire audience of EastEnders decided they wanted to restart the programme. Second, imagine that they all decided they wanted to restart it within the same 5 second period.</p>
<p>These are unique, scaling problems at a national level and it&rsquo;s inspiring to work with teams who try to solve them. Mitigating the risk of a reduced audience experience has taken the majority of our time on this project. We&rsquo;ve built a monitoring service so that we can measure traffic in a more timely fashion, ensuring we protect and maintain quality for the current viewers in the stream. Alongside this we worked with our distribution and media services colleagues to trial the feature on BBC Two and BBC One regions to build a traffic profile.</p>
<p>Today we have launched our green button &lsquo;watch from the start&rsquo; trigger on BBC One and Two along with their HD equivalents and BBC Four, and it&rsquo;s available via <a href="https://www.bbc.co.uk/iplayer/help/how-to-guides/getting-started/television_iplayer#Manu">this list of smart TV and set top boxes</a>. We&rsquo;ll be looking to learn from the data and provide the best quality experience we can, and hopefully, in the future, pressing the green button will become just as much a part of the TV viewing experience as pressing red has become.</p>
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>Continuing the BBC's experiments in UHD</title>
      <description><![CDATA[The BBC has always been working to improve picture quality for audiences and lately we have been able to make some shows available in Ultra-High Definition (UHD). Now we’re taking the next step by streaming live UHD content.]]></description>
      <pubDate>Mon, 23 Apr 2018 11:31:26 +0000</pubDate>
      <link>https://www.bbc.co.uk/blogs/internet/entries/3c8095b0-0aca-4402-9898-7f20575ae2b5</link>
      <guid>https://www.bbc.co.uk/blogs/internet/entries/3c8095b0-0aca-4402-9898-7f20575ae2b5</guid>
      <author>Phil  Layton</author>
      <dc:creator>Phil  Layton</dc:creator>
      <content:encoded><![CDATA[<div class="component prose">
    <p>From the introduction of colour TV on BBC Two for Wimbledon in 1966, to championing free-to-air HDTV for terrestrial viewers, we&rsquo;ve always been working to improve picture quality for audiences.</p>
<p>Lately, our experiments have seen us make select shows available to watch in Ultra-High Definition (UHD) on BBC iPlayer. So far, we&rsquo;ve focused on providing on-demand programmes in UHD, but now we&rsquo;re taking the next step by streaming live UHD content.</p>
<p>On Sunday, we streamed a full Rugby League match between the York City Knights and Catalans Dragons live in UHD and High Dynamic Range on BBC iPlayer Beta. It&rsquo;s the first time we&rsquo;ve streamed a live event in such high quality.</p>
<p>For those unfamiliar with the terminology, UHD takes advantage of higher resolution TVs to provide exceptional clarity of picture, while HDR takes this further with greater detail in the shadows and dark areas of the picture, as well as more natural and brighter highlights and mirror-like reflections.</p>
<p>Here at the BBC, we use a type of HDR called Hybrid Log-Gamma (HLG), invented by BBC Research &amp; Development and Japanese broadcaster, NHK. Due to the way HLG represents light, audiences get the most natural colours possible on their televisions at home. In our last experiment, which saw the whole series of Blue Planet II on BBC iPlayer in UHD HDR, this meant that the spectacular animals, vibrant coral reefs and deep blue oceans were brought to life like never before.</p>
<p>The BBC chooses to use HLG for BBC iPlayer because it fits very well and reliably into existing live production workflows. It also provides a great picture not only to HDR devices, but to standard dynamic range (SDR) devices that support the BT.2020 wide colour gamut as well. Being able to support both HDR and SDR TVs with the same bitstream is cost-effective for the BBC and makes the content available to as wide a range of devices as possible.</p>
<p>However, making the move from on-demand UHD programmes to live UHD footage presents significant engineering challenges for our teams. High quality real-time HEVC encoding of UHD is still in its infancy, and is much more demanding for live programmes than for on-demand. That means we need to use higher distribution bitrates, and that people&rsquo;s TVs will need to work harder to show the best picture.</p>
<p>We&rsquo;re always looking to provide our audiences with the best possible viewing experience, and live UHD could be the next step in that journey. We&rsquo;re now looking at the results from this latest experiment to help us build our understanding for how we might be able to provide live events in UHD in the future.</p>
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>AWS re:Invent: creating iPlayer architecture and nanoservices architecture</title>
      <description><![CDATA[Two of the BBC’s senior architects discuss the creation of the iPlayer architecture and how the BBC’s website and app handle millions of users.]]></description>
      <pubDate>Wed, 13 Dec 2017 10:31:00 +0000</pubDate>
      <link>https://www.bbc.co.uk/blogs/internet/entries/63ba2f20-72af-40b3-a8e4-959c1ae214a7</link>
      <guid>https://www.bbc.co.uk/blogs/internet/entries/63ba2f20-72af-40b3-a8e4-959c1ae214a7</guid>
      <author>Matthew Clark, Stephen Godwin</author>
      <dc:creator>Matthew Clark, Stephen Godwin</dc:creator>
      <content:encoded><![CDATA[<div class="component prose">
    <p>The BBC is continuously working to develop its wide range of apps and services to improve the audience experience. And a couple of weeks ago, two of the BBC&rsquo;s senior architects from Technology Strategy &amp; Architecture (TS&amp;A) spoke at the <a href="https://reinvent.awsevents.com/" target="_blank">AWS re:Invent 2017</a>, the largest AWS tech conference.</p>
<p>Lead Architect Stephen Godwin spoke about <a href="https://youtu.be/RZ7Husc_yZo" target="_blank">How the BBC Built a Massive Media Pipeline Using Microservices</a>. He described the approach behind creating iPlayer architecture, and showed how the BBC uses AWS messaging to choreograph the 200 microservices in the iPlayer pipeline, maintain data consistency as media traverses the pipeline, and refresh caches to ensure timely delivery of media to users.</p>
</div>
<div class="component">
    <div class="third-party" id="third-party-1">
        This external content is available at its source:
        <a href="https://www.youtube.com/watch?v=RZ7Husc_yZo">AWS re:Invent video</a>
    </div>
</div>
<div class="component prose">
    <p>Matthew Clark, Head of Architecture in BBC North, looked at <a href="https://www.youtube.com/watch?v=lyQw4guIirw">The Nanoservices Architecture That Powers BBC Online</a>. He described how the BBC&rsquo;s website and apps, used around the world by millions who read, watch, and interact with a range of content, handle this scale with an innovative website platform, built on Amazon ElastiCache and Amazon EC2 and based on nanoservices.</p>
</div>
<div class="component">
    <div class="third-party" id="third-party-2">
        This external content is available at its source:
        <a href="https://www.youtube.com/watch?v=lyQw4guIirw">AWS re:Invent video</a>
    </div>
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>Making BBC iPlayer the best place to watch BBC TV</title>
      <description><![CDATA[Head of BBC iPlayer, Dan Taylor-Watt, talks through some of the latest developments that ensure users get the best possible experience on the 10,000+ different devices iPlayer is now available on.]]></description>
      <pubDate>Tue, 05 Dec 2017 13:20:00 +0000</pubDate>
      <link>https://www.bbc.co.uk/blogs/internet/entries/a70d8daa-5eb9-48c2-900f-6e60a49c793d</link>
      <guid>https://www.bbc.co.uk/blogs/internet/entries/a70d8daa-5eb9-48c2-900f-6e60a49c793d</guid>
      <author>Dan  Taylor-Watt</author>
      <dc:creator>Dan  Taylor-Watt</dc:creator>
      <content:encoded><![CDATA[<div class="component prose">
    <p><em>The BBC iPlayer team are on a mission: to develop the best place to discover and watch BBC TV for the benefit of UK licence fee payers. Here Head of BBC iPlayer, Dan Taylor-Watt, talks through some of the latest developments. </em></p>
<p>The number one priority for the team developing BBC iPlayer is quality of experience; ensuring users get the best possible experience on the 10,000+ different devices iPlayer is now available on, including over 2,500 different connected TV devices, which this year became the most popular way of accessing BBC iPlayer, accounting for more programme requests than computers, tablets and smartphones combined.</p>
<h4>Ultra HD</h4>
<p>One important aspect of that experience is picture quality and, following our move to <a href="http://www.bbc.co.uk/blogs/internet/entries/b10bd061-1a85-40d4-8dc7-96c1ef7db233" target="_blank">HD by default</a> on computers and connected TV devices last year and <a href="http://www.bbc.co.uk/mediacentre/latestnews/2016/planet-earth-2-uhd" target="_blank">a UHD test</a>, I&rsquo;m delighted that we will shortly be releasing the stunning <a href="http://www.bbc.co.uk/programmes/p04tjbtx" target="_blank">Blue Planet II</a> in its entirety in the best quality ever shown on the BBC. The full seven part series will be available on BBC iPlayer in Ultra HD and High Dynamic Range (HDR) on compatible TVs after the final episode airs on BBC One on Sunday 10th December. You can read more about Blue Planet II in UHD on the <a href="http://www.bbc.co.uk/mediacentre/latestnews/2017/iplayer-blue-planet-ii-best-ever-quality" target="_blank">BBC Media Centre</a> and <a href="http://www.bbc.co.uk/rd/blog/2017-12-uhd-hdr-trial-blue-planet-bbc-iplayer" target="_blank">R&amp;D blog</a>.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p05q4m15.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p05q4m15.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p05q4m15.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p05q4m15.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p05q4m15.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p05q4m15.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p05q4m15.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p05q4m15.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p05q4m15.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>The whole of Blue Planet II will be made available in Ultra HD on BBC iPlayer</em></p></div>
<div class="component prose">
    <h4>Live Restart from broadcast</h4>
<p>One of BBC iPlayer&rsquo;s most valued features is the ability to jump back to watch the start of a programme whilst it&rsquo;s still being broadcast, meaning you&rsquo;re never late for a BBC programme again. We originally developed the feature for computers but have since rolled it out for mobiles, tablets and connected TV devices and it&rsquo;s now used by over a million browsers every week. We want to make it as simple as possible to access Live Restart and have been working with TV platform providers to integrate links to Live Restart into their interfaces. First out of the blocks was <a href="http://www.bbc.co.uk/mediacentre/latestnews/2017/iplayer-live-restart" target="_blank">Freesat, who integrated in July</a> and we are working with other partners to provide easy access to this feature. We're also preparing to roll out one-button-access to Live Restart on capable, connected devices via on-screen triggers from our broadcast channels. Watch this space.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p05q4m34.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p05q4m34.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p05q4m34.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p05q4m34.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p05q4m34.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p05q4m34.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p05q4m34.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p05q4m34.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p05q4m34.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>Never miss the start of a BBC programme again with BBC iPlayer’s Live Restart feature</em></p></div>
<div class="component prose">
    <h4>Boxsets</h4>
<p>When BBC iPlayer first launched in 2007 it offered 7 days in which to catch up on programmes after they were broadcast on TV. Fast-forward to 2017 and there are over 6,500 episodes to enjoy at any given moment, including a growing number of boxsets, both brand new series like <a href="https://www.bbc.co.uk/iplayer/episodes/b0991bqd" target="_blank">Snowfall</a>, <a href="https://www.bbc.co.uk/iplayer/episodes/p05j1jkp" target="_blank">Motherland</a> and <a href="https://www.bbc.co.uk/iplayer/episodes/b07xd230" target="_blank">Josh</a> and gems <a href="https://www.bbc.co.uk/iplayer/categories/archive/highlights" target="_blank">from the archive</a> like <a href="https://www.bbc.co.uk/iplayer/group/b006w7gn" target="_blank">Louis Theroux&rsquo;s Weird Weekends</a> and <a href="https://www.bbc.co.uk/iplayer/group/p04vp62f" target="_blank">Killing For Love</a>. This Christmas, <a href="http://www.bbc.co.uk/mediacentre/latestnews/2017/iplayer-xmas-boxsets" target="_blank">dozens more top draw BBC boxsets</a> will be made available to watch on BBC iPlayer. To make it easier to discover this wealth of programming we&rsquo;re updating the iPlayer Home screen to make it easier to browse. We&rsquo;re also developing autoplay, which automatically cues up another episode when the credits start rolling (with the option to cancel/turn off).</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p05q4mvw.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p05q4mvw.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p05q4mvw.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p05q4mvw.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p05q4mvw.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p05q4mvw.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p05q4mvw.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p05q4mvw.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p05q4mvw.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>The updated iPlayer Home screen will make it easier to browse, particularly on TV devices</em></p></div>
<div class="component prose">
    <h4>Sign-in on TV</h4>
<p>With so many programmes to choose from, it&rsquo;s not always easy to keep track of the series you&rsquo;re watching or to decide on what to watch next. Users of BBC iPlayer on computers, mobiles and tablets have been able to sign-in for a number of years now to resume part-watched series and episodes, add programmes to watch later and enjoy more relevant recommendations. This year we&rsquo;ve been rolling that functionality out to connected TV devices. We&rsquo;ve made it simple to <a href="https://www.bbc.co.uk/iplayer/help/how-to-guides/sign-in/connected_tv_sign_in" target="_blank">sign-in on your TV</a> &ndash; no need to input a lengthy email address or password using a remote control &ndash; just sign-in on a computer, tablet or smartphone and input the 8-character code shown on the TV screen. We&rsquo;re also rolling out simple account switching, so multiple household members can all be signed-in on the same TV and easily toggle between their different accounts.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p05q4n1q.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p05q4n1q.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p05q4n1q.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p05q4n1q.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p05q4n1q.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p05q4n1q.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p05q4n1q.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p05q4n1q.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p05q4n1q.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>Easy account switching on BBC iPlayer on connected TV</em></p></div>
<div class="component prose">
    <h4>Device support</h4>
<p>We put a lot of work into ensuring BBC iPlayer continues to work on older devices. Unfortunately, it is not always technically possible or economically viable to continue to support a device, especially when the manufacturer has discontinued support. In these circumstances then we aim to provide owners of those devices with as much advanced notice as possible and <a href="https://www.bbc.co.uk/iplayer/help/device_help" target="_blank">guidance as to how they can continue to enjoy BBC iPlayer without needing to buy a new TV set</a>.</p>
<p>That&rsquo;s all for now. Comments welcome although individual technical queries are best directed to <a href="https://www.bbc.co.uk/iplayer/help/contact" target="_blank">BBC iPlayer Support</a> (if you haven&rsquo;t been able to find an answer to your question on the <a href="https://www.bbc.co.uk/iplayer/help" target="_blank">BBC iPlayer Help site</a>).</p>
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>Testing times: Ensuring BBC App testing efficiency</title>
      <description><![CDATA[Our testers are encouraged to evolve with the industry along with our developers and we constantly experiment and iterate on ideas to improve our ways of working within an agile team. We focus on up-skilling, pairing and training to make sure our team are sharing knowledge and introducing new ideas.]]></description>
      <pubDate>Tue, 28 Feb 2017 15:55:00 +0000</pubDate>
      <link>https://www.bbc.co.uk/blogs/internet/entries/288173a1-76f0-47e5-b61a-b64ef66124f4</link>
      <guid>https://www.bbc.co.uk/blogs/internet/entries/288173a1-76f0-47e5-b61a-b64ef66124f4</guid>
      <author>Michael Blades</author>
      <dc:creator>Michael Blades</dc:creator>
      <content:encoded><![CDATA[<div class="component prose">
    <p><em>Michael Blades is a Senior Test Engineer for BBC TV &amp; Radio and is currently embedded as the Test Lead for iPlayer Mobile. In this blog, he details improvements made to quality measurements and how testing methods have changed over the past 18 months.</em></p>
<p>The test team is responsible for the native application offering on Android and iOS and is located wholly in MediaCityUK beside a host of other teams; within it we have several squads responsible for separate (but not isolated) features that are developed with the ability to release stable software at any given time.</p>
<p>Testers are embedded in these squads with myself overseeing the strategy for utilising our test resources, identifying process improvements and creating plans to assess the quality of our release candidates. Our testers are not just a part of the furniture but are encouraged to evolve with the industry along with our developers; to do this we constantly experiment and iterate on ideas to improve our ways of working within an agile team. We focus on up-skilling, pairing and training to make sure our squads are sharing knowledge&nbsp;and introducing new ideas.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p04rkk86.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p04rkk86.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p04rkk86.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p04rkk86.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p04rkk86.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p04rkk86.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p04rkk86.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p04rkk86.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p04rkk86.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>In this blog I hope to provide some insight into our unique development environment and the problems we face in our day-to-day. The first of which is how our defect management has evolved over time to better serve the team, followed by details on our methodology changes to scripted testing and how this has improved our pre-release regression tests.</p>
<h4>What we had</h4>
<p>When I joined the team defects were not monitored or quantified, they were contained within a massive backlog in a ticket management system that was thousands upon thousands deep. It made providing a known issues list or giving a statement of quality to stakeholders difficult; even deciding the highest priority issues due for fixing proved confusing. Regression testing was brought up as a point of concern at all meetings - mainly due to the time it took to complete - but feedback from our testers was also extremely negative because of the amount of time they had to spend reading the same tests and flagging them as pass or fail.</p>
<h4>Defect management - our first iteration</h4>
<p>First of all, we consciously embraced the concept of defects as a part of the codebase and conveyed that managing them can radiate a clear visibility of state. We also wanted the team to understand how changes could negatively affect the various features within each App. Each discovery provided us with a better understanding of our quality status and enabled us to spot defect clusters that revealed any serious underlying problems that needed addressing.</p>
<p>Trying to dig through a digital backlog to pull out all relevant tickets was proving too time consuming and we needed something immediate that the entire team could use to manage defects. We decided to go with the simplest solution: a whiteboard. iPlayer Mobile already used a few of these to visualise its workload and allow collaboration but defects were often lost or forgotten. We cut our losses on existing defects and any new ones that were discovered were also created as physical tickets and sorted together by App platform and feature type.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p04rkkpf.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p04rkkpf.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p04rkkpf.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p04rkkpf.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p04rkkpf.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p04rkkpf.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p04rkkpf.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p04rkkpf.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p04rkkpf.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>Anything we discovered and didn&rsquo;t fix as part of our current work was added to this board. These defects were prioritised according to severity and impact on the user; this is how we decide where to focus our efforts in maintaining iPlayer. Any of these issues that reached an age threshold were re-evaluated in a session where one of two decisions were made. We may have decided to close the defect if it could still be reproduced and we have not had complaints from the users regarding it or if it has been inadvertently fixed by other development work. We may have decided that the issue was still serious and made an enforced effort to get it fixed; these sessions were time consuming however, as we had more ageing defects and going over old ground wasn&rsquo;t seen as the best use of time.</p>
<p>We discovered from this that the team was more aware of the quality status within the Apps, as anyone on the team (or any other team) could see all of our current defects at any time. We even saw developers attempting to clear tasks from the board when it was getting full, a type of engagement we&rsquo;ve never had before. We were able to use this as our known issues list so that we could reference the tickets when engaging with audience complaints&nbsp;or another team if they were having similar issues.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p04t387n.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p04t387n.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p04t387n.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p04t387n.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p04t387n.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p04t387n.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p04t387n.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p04t387n.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p04t387n.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>However as time went on, the team grew in size and iPlayer spawned iPlayer Kids. Now with three squads and two Apps, the amount of tickets we were creating and the amount of changes that caused defects became too much. The overhead of keeping the board up to date was now a burden and due to the increased workload we were having little time to fit this in, a new solution was needed.</p>
<h4>Defect management - what we have now</h4>
<p>After reviewing what we needed for our day-to-day, we came up with the following requirements:</p>
<ul>
<li>Accessible to anyone who may need it.</li>
<li>Easy to sort and pinpoint information.</li>
<li>Needs minimal interaction to &lsquo;just work&rsquo;.</li>
<li>Enable us to track metrics over time.</li>
</ul>
<p>To do the above we switched to a digital dashboard, using filters and macros that read data from JIRA and output them into numbers. These can be selected to display the tickets related to the data or even turned into graphs allowing us to quickly make sense of large amounts of data. We house this on our wiki page system that&rsquo;s used mainly for documentation.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p04rkl4c.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p04rkl4c.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p04rkl4c.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p04rkl4c.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p04rkl4c.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p04rkl4c.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p04rkl4c.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p04rkl4c.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p04rkl4c.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>As new defects are created they are automatically sorted. Although it may not be as technically advanced as some of our other tracking mechanisms, it is widely available - anyone in the company from any site can view it, allowing us to keep all of our stakeholders in the loop. As time goes on we can see that we raise more defects than we fix and end up closing more due to age. This tells us that we worry far too much about many small defects that we realistically will never get around to fixing. We lost the visibility that a physical board supplied, but as the team has matured it is not as necessary, as we are more aware that changes can cause unseen permutations&nbsp;throughout the Apps.</p>
<p>This may influence our next iteration, many agile teams implement a zero defect policy where errors are either fixed as they are found or they are forgotten about. I believe this will be difficult to introduce within our environment as we have large-scale accountability both to our audiences and the business, although we could make another step in that direction and hope to get there at some point.</p>
<h4>Changing our test case and regression test methods</h4>
<p>The Mobile iPlayer Apps are in product maturity and therefore suffer from problems commonly associated with this lifecycle stage; for test the classic example is bloated, over-documented tests, some of which are ancient due to creating them as we go through sprints or release cycles. This caused testing to drag on for longer than required for the scale of the changes. The planning, recording of results and then reviewing them became overly time-consuming and bottlenecks in testing became obvious quickly. This also doesn&rsquo;t factor in the communal groan amongst the team once &lsquo;regression testing&rsquo; was mentioned; it had become a piece of work everyone dreaded and no-one wanted to do - it needed to change.</p>
<p>After looking at test techniques both internally and externally we experimented with the idea of a fully exploratory method where testers are given no rails to follow (usually in the form of instructions or Given-When-Then style tests). Results were mixed as we received feedback concerning the lack of information supplied and a willingness to go back to a more traditional linear style. This came mainly from non-test disciplines that used the step-based tests as a rigid set of instructions; a habit we wanted to break however unpopular it was. Product was also concerned that the tests formed a repository of intended behaviour for the application that could be accessed quickly. This would be impossible without test cases that contained detail.</p>
<p>After this experiment ended we were left torn between serving the needs of iPlayer in terms of not losing information and keeping the tests accessible to all members of the team, but also reducing the upkeep and planning overheads that were causing bottlenecks at this point in the release cycle. We also had to maintain the bar Test has set within Mobile iPlayer by providing thorough quality assessments and a high device coverage. We decided to perform an overhaul of our test cases over the course of the following month with all the considerations we had gained throughout our experimentation phase.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p04rklhj.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p04rklhj.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p04rklhj.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p04rklhj.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p04rklhj.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p04rklhj.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p04rklhj.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p04rklhj.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p04rklhj.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>Currently our manual tests take the form of a wiki style entry for individual features containing:</p>
<ul>
<li>High level UI information.</li>
<li>Example images.</li>
<li>Detailed descriptions for complex behaviours.</li>
<li>No completion goals, these are set by the tester.</li>
</ul>
<p>This method enables experienced testers to work with less structure while providing a reference tool for their observations; not dictating the paths and interactions a tester has with the application should provide more coverage. Inversely inexperienced testers or other disciplines can use the information supplied to get a better grasp on the mechanisms and interacting components within the software.</p>
<p>We also set a goal of reducing the number of tests to a tenth of their original amount and allowing more people access to them with the aim being:</p>
<ul>
<li>Reducing the overheads involved in maintaining a massive amount of tests.</li>
<li>Allowing us to add tests for new features quickly.</li>
<li>Easing the creation of a test plan.</li>
<li>Opening up the test cases to team ownership.</li>
</ul>
<p>When faced with the prospect of completing hundreds of tests to cover an application, a large amount of that time is spent filling in results or doing similar admin. This is now a secondary task against the actual testing. We remain fairly brutal about getting rid of tests we no longer need or diminishing ones that become too large, even more so about un-necessarily testing more than we need to. Although in the future we may scale this down to a truly non-documented exploratory system, like the defect management above this is perhaps a halfway iteration that the team can handle until it&rsquo;s ready for further change.</p>
<h4>Looking Back and Looking Forward</h4>
<p>We discovered that sweeping changes are difficult while supporting a team that has an unrelenting schedule of new features and improvements. Getting the wider team to embrace change was perhaps even more difficult; for future changes it will be important to involve the team earlier and at all stages. Process changes and improvements proved to be jarring for some, if we were to attempt it again it would have been more beneficial to ease changes in over time and be able to explain our reasoning to the entire team when commencing change.</p>
<p>Empowered testers now work with developers to ensure we have no oversights while planning is undertaken. Since these changes have been implemented we&rsquo;ve noticed less bottlenecks in the release process - at stages where we would normally be on red alert to create a test plan, we have it ready to start. The team now understands the resources a phase of testing will need and allocates an adequate amount of time to plan, extra bodies to swarm on testing and a communal review period where an assessment of quality will be made.</p>
<p>There aren&rsquo;t many metrics we could use to track the mood of the team, but from the state we were in a year ago when regression testing was panicked, loathed and painstakingly slow, the team's mood now hardly alters as regression is just another part of our cycle. It's over a lot quicker on the whole, although mapping times isn&rsquo;t fair as the size of releases can vary, as can the resources. I haven&rsquo;t heard any complaining in months also, so that&rsquo;s a good sign.</p>
<p>Potentially this is just a step towards a way of working where we don&rsquo;t catalogue defects at all and testing is handled purely in very lightweight notations or mindmaps, ideally with the entire team stopping to swarm on a test task before any more progression is made. However this will take time and patience; iterating towards that goal and evaluating along the way will be much more effective due to the nature of our dependencies and the sheer size of the team.</p>
<p>iPlayer has evolved from an App that serves the TV shows that the user requests to a platform where you can create your own catalogue of programming, download it to watch later as well as being able to play purchased content from a back catalogue. Coupled with the then new <a href="http://www.bbc.co.uk/blogs/internet/entries/660c360b-4c3a-4ce4-a7d5-c7bb2af2a524" target="_blank">iPlayer Kids</a>&nbsp;that has personalisation at its core, this brought tough challenges concerning stability, user data and security. This will become more of a priority as iPlayer continues to become less static, instead it will look different for each user and surface vastly different content based on what they like, dislike and interact with on a regular basis.</p>
<p>For us this poses one large question: how do you test that? If all users get a different experience how do you ensure you represent them all, or if not all, then at least enough to give confidence in an extremely complex product&rsquo;s ability to perform well within varied configurations including fragmented devices and network types. It&rsquo;s one we need to be prepared to answer and then act upon sooner rather than later.</p>
<p>I hope you enjoyed this insight into Mobile iPlayer Test improvements and if you have any questions, comments or similar stories please add them to the comments section below.</p>
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>Latest BBC iPlayer enhancements: Live Restart on mobile, live events, HD by default and visual seeking</title>
      <description><![CDATA[Almost 10 years on from its original launch, BBC iPlayer is the most popular online TV service in the UK, not just in terms of usage but also in terms of positive word of mouth. It’s available on over 10,000 different devices and has been downloaded 40 million times from mobile app stores.]]></description>
      <pubDate>Thu, 08 Sep 2016 08:00:01 +0000</pubDate>
      <link>https://www.bbc.co.uk/blogs/internet/entries/b10bd061-1a85-40d4-8dc7-96c1ef7db233</link>
      <guid>https://www.bbc.co.uk/blogs/internet/entries/b10bd061-1a85-40d4-8dc7-96c1ef7db233</guid>
      <author>Dan  Taylor-Watt</author>
      <dc:creator>Dan  Taylor-Watt</dc:creator>
      <content:encoded><![CDATA[<div class="component prose">
    <p><em>Almost 10 years on from its original launch, BBC iPlayer is the most popular online TV service in the UK, not just in terms of usage (see p.59 of <a href="http://stakeholders.ofcom.org.uk/binaries/research/cmr/cmr16/uk/CMR_UK_2016.pdf" target="_blank">Ofcom&rsquo;s Communications Market Report</a>) but also in terms of positive word of mouth (see <a href="http://www.brandindex.com/ranking/uk/2016-mid/category/online" target="_blank">YouGov&rsquo;s BrandIndex Buzz Rankings</a>). It&rsquo;s available on over 10,000 different devices and has been downloaded 40 million times from mobile app stores. However, there&rsquo;s always room for improvement and we&rsquo;ve been working hard to make your experience of BBC iPlayer even better. Dan Taylor-Watt, Head of BBC iPlayer, gives a quick round-up of some of the latest enhancements.</em></p>
<h4>Live Restart on mobile and tablet</h4>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p04714cn.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p04714cn.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p04714cn.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p04714cn.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p04714cn.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p04714cn.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p04714cn.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p04714cn.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p04714cn.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>Live Restart on the BBC iPlayer mobile app</em></p></div>
<div class="component prose">
    <p>First <a href="http://www.bbc.co.uk/blogs/bbcinternet/2012/06/bbc_iplayer_live_restart.html" target="_blank">launched on computers</a> in time for the London 2012 Olympics, Live Restart has proved to be a hugely popular feature, ensuring viewers need never miss the start of a BBC programme again. Last summer <a href="http://www.bbc.co.uk/blogs/internet/entries/451471d2-b2d1-4806-b05a-2af6ab6f2ca0" target="_blank">we rolled the feature out to connected TV devices</a>, I am delighted to announce that we&rsquo;ll shortly be rolling the feature out to our Android and iOS mobile and tablet apps. Our most recent app update introduced the ability to pause and rewind live TV and you&rsquo;ll soon be able jump back to the start of a programme on your mobile or tablet with a single tap.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p047145v.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p047145v.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p047145v.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p047145v.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p047145v.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p047145v.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p047145v.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p047145v.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p047145v.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>Live Restart the current programme in BBC iPlayer via Red Button+</em></p></div>
<div class="component prose">
    <p>We&rsquo;ve also recently made it easier to access BBC iPlayer&rsquo;s Live Restart feature on connected TVs by adding access from the <a href="http://www.live.bbc.co.uk/corporate2/insidethebbc/whatwedo/redbuttonfaq" target="_blank">Red Button+</a> home screen. Red Button+ is available on a wide range of connected TV sets and via YouView and Virgin TiVo.</p>
<h4>Live events</h4>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p04714vm.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p04714vm.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p04714vm.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p04714vm.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p04714vm.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p04714vm.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p04714vm.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p04714vm.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p04714vm.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>Enjoying the Rio Olympics live on BBC iPlayer on a range of devices</em></p></div>
<div class="component prose">
    <p>The summer is typically a quieter time of year for BBC iPlayer. Not this year. Live coverage of Glastonbury, Wimbledon, The Euros and The Olympics helped BBC iPlayer reach an average of 16 million unique browsers a week in June, July &amp; August &ndash; up 37% on the same period last year. And this wasn&rsquo;t just viewing of our broadcast channels on different devices &ndash; in May of this year we began streaming <a href="http://iplayerhelp.external.bbc.co.uk/tv/live_events" target="_blank">live events not broadcast on TV</a> on iPlayer, enabling us to show live performances from six stages at Glastonbury and up to 24 live simultaneous streams from the Rio Olympics. The below chart, compiled from <a href="http://www.barb.co.uk/project-dovetail/tv-player-report/" target="_blank">BARB TV Player Report</a> data, shows the scale of live viewing in iPlayer over the summer months. In the week ending the 14th August, live accounted for 46% of total iPlayer viewing time.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p04714wg.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p04714wg.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p04714wg.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p04714wg.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p04714wg.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p04714wg.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p04714wg.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p04714wg.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p04714wg.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <h4>HD by default</h4>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p04714wr.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p04714wr.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p04714wr.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p04714wr.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p04714wr.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p04714wr.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p04714wr.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p04714wr.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p04714wr.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>We want to deliver the best quality viewing experience we can based on the capabilities of the device you&rsquo;re using to access iPlayer and the speed of your internet connection. Consequently, we&rsquo;re making HD (720p 50fps) the default for on demand playback on computers and connected TVs which support Adaptive Bitrate (ABR), which enables the video quality to be automatically adjusted in response to how much bandwidth you have available at any given moment. Users with TV devices which don&rsquo;t support ABR can still opt-in to HD via the button in the player. We&rsquo;ve also recently made BBC One HD available to watch live on computers and connected TVs (it&rsquo;s the default on connected TVs which support ABR and can be accessed on computers by selecting England, Scotland, Wales or Northern Ireland from the &lsquo;Change location&rsquo; menu in the footer of the iPlayer website).</p>
<p>For users whose broadband isn&rsquo;t up to HD streaming, don&rsquo;t forget your can download programmes in higher quality to watch offline, either on your <a href="http://www.bbc.co.uk/iplayer/install" target="_blank">computer</a> or your <a href="http://www.bbc.co.uk/iplayer/features/downloads" target="_blank">mobile or tablet</a>.</p>
<h4>Visual seeking</h4>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p04714xg.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p04714xg.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p04714xg.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p04714xg.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p04714xg.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p04714xg.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p04714xg.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p04714xg.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p04714xg.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>That moment when… Visual seeking through Ripper Street on BBC iPlayer</em></p></div>
<div class="component prose">
    <p>Whilst BBC iPlayer already takes care of remembering how far through a programme you are, automatically picking up where you left off, there are those occasions when you need to search for a particular moment within a programme. We&rsquo;re just about to make that a whole heap easier with the introduction of visual seeking. Hover over the scrub bar and you&rsquo;ll see images from the programme appear as thumbnails, enabling you to jump straight to the moment you&rsquo;re looking for. And if you want to share a link to a specific moment, you can add #t=XXmXXs to the end of the URL (replacing XX with the number of minutes and seconds - e.g. <a href="http://www.bbc.co.uk/iplayer/episode/b00v1xk5/elsa-the-lioness#t=20m15s" target="_blank">http://www.bbc.co.uk/iplayer/episode/b00v1xk5/elsa-the-lioness#t=20m15s</a>). Available very soon on the iPlayer website, we&rsquo;re looking to roll visual seeking out to the iPlayer TV and mobile apps in the coming year.</p>
<h4>Also in development</h4>
<p>There are lots more enhancements to BBC iPlayer in the pipeline including the roll out of subtitles on our live channels (already available on computers as a <a href="http://www.bbc.co.uk/mediacentre/latestnews/2016/BBC-launches-subtitles-for-live-channels-on-BBC-iPlayer-in-world-first" target="_blank">ground-breaking trial</a>), an archive category, enabling easier, cross-platform discovery of the 400+ archive programmes now available on BBC iPlayer (thanks to <a href="http://www.bbc.co.uk/bbcfour/collections" target="_blank">BBC Four Collections</a>) and a raft of personalisation features to make it even easier for you to discover and enjoy great BBC TV.</p>
<p>We&rsquo;re also continuously working with manufacturers to improve the performance of iPlayer on their devices. For example, we&rsquo;re currently working closely with Google on improving the Google Cast experience in iPlayer, before rolling out the feature to the <a href="http://www.bbc.co.uk/iplayer/features/iplayer-kids" target="_blank">BBC iPlayer Kids app</a>, which launched in April and has already been downloaded over half a million times.</p>
<p>That&rsquo;s all for now. Comments welcome below although individual technical queries are best directed to <a href="https://iplayerhelp.external.bbc.co.uk/tv/forms/" target="_blank">BBC iPlayer Support</a> (if you haven&rsquo;t been able to find an answer to your question on the <a href="http://iplayerhelp.external.bbc.co.uk/tv/in_the_uk_message" target="_blank">BBC iPlayer Help site</a>).</p>
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>Building a reactive file-based delivery workflow for Video Factory</title>
      <description><![CDATA[The Platform Media Services team build and run the Video Factory system which ingests, transcodes and delivers programme content onto BBC iPlayer. Video Factory is designed as a collection of microservice components.]]></description>
      <pubDate>Mon, 06 Jun 2016 14:20:00 +0000</pubDate>
      <link>https://www.bbc.co.uk/blogs/internet/entries/683c2e2a-c1ee-490b-9a97-23214505aba4</link>
      <guid>https://www.bbc.co.uk/blogs/internet/entries/683c2e2a-c1ee-490b-9a97-23214505aba4</guid>
      <author>Andrew  Payne</author>
      <dc:creator>Andrew  Payne</dc:creator>
      <content:encoded><![CDATA[<div class="component prose">
    <p><em>The Platform Media Services team build and run the <a href="http://www.bbc.co.uk/blogs/internet/entries/61d2795d-ad53-3547-a06a-a038cf1ef325">Video Factory system</a> which ingests, transcodes and delivers programme content onto BBC iPlayer. Andrew Payne, Senior Software Engineer,&nbsp;gives an update on the latest work undertaken by the team.</em></p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p03wxdqv.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p03wxdqv.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p03wxdqv.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p03wxdqv.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p03wxdqv.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p03wxdqv.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p03wxdqv.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p03wxdqv.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p03wxdqv.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>Video Factory is designed as a collection of microservice components - small independent pieces of software each responsible for a particular step in the overall workflow of processing an item of content. The components communicate with each other asynchronously using messages sent to and read from queues. When a component receives a message, it will perform some task on the item which the message is about, then typically send new messages to other downstream components. In other words, components react when the workflow needs something done.</p>
<p>Deploying Video Factory to the cloud has allowed it to be reactive in other ways. Many workflows begin when a broadcast ends, and when several end at the same time the increased workload could previously have caused delays in content reaching iPlayer. Now, though, it&rsquo;s easy to expand our computing infrastructure at these busy times and reduce it again when there&rsquo;s less to do. This flexibility also means we can be resilient against any particular server or network connection breaking down.</p>
<p>Video Factory ingests raw content in several different ways, one of which is file-based delivery (FBD). When one of our suppliers uploads video files to the S3 storage service, S3 sends a notification message to a component known as Dipper. Dipper&rsquo;s job is to check whether the file meets our criteria for ingest, extract DPP metadata from it (hence &ldquo;DiPPer&rdquo;), save that metadata for future use, and finally send a message downstream to the component responsible for actually ingesting the video. DPP - the Digital Production Partnership - is a joint effort by several UK broadcasters to define a set of standards, including ones for video metadata.</p>
<p>Within Dipper, the stages in its processing form a dependency tree, with each step using results from one or more earlier steps to provide its result. This led us to extend our &ldquo;reactive&rdquo; approach to encompass not only the way components communicate with each other but also the way an individual component works.</p>
<p>Our development of FBD coincided with AWS Lambda becoming available as a service. Lambda allows code to be run directly in response to a notification, without us having to boot-up and manage a server for the code to run on. While Lambda does now support Java, the language in which most of Video Factory has been written, at the time it required the use of NodeJS.</p>
<p>Often, programs boil down to a series of imperative instructions. In JS, though, all I/O operations are asynchronous, meaning that the result isn&rsquo;t available straight away. To get the result, you have to register a callback &mdash; a function which is to be run when the operation completes. If you have several I/O operations to do, JS code can end up resembling the so-called Pyramid of Doom.</p>
</div>
<div class="component code">
    <pre class="code__pre br-box-subtle"><code class="code__code">stepA(function (value1) {
    stepB(value1, function(value2) {
        stepC(value2, function(value3) {
            stepD(value3, function(value4) {
                // Do something with value4
            });
        });
    });
});</code></pre>
</div>
<div class="component prose">
    <p>This quickly gets messy, especially if several steps actually depend on the same value.</p>
<p>Since Dipper does a lot of I/O, we want to avoid a nested callback design. Instead, we just want to define how each piece of data can be obtained, and what the data dependencies are between the various processing steps.</p>
<p>A NodeJS library called Q implements a feature called promises, which makes this possible. A promise is an object that represents the return value that a function (say, f1) will eventually provide. In JS, functions are also objects and can be attached to promises such that when the promise is &ldquo;resolved&rdquo; (i.e the return value becomes known) any attached functions will be invoked with that value. Moreover, attaching a function (f2) to a promise gives you a new promise: a promise of the return value of f2.</p>
<p>An example of parsing some XML might look like this:</p>
</div>
<div class="component code">
    <pre class="code__pre br-box-subtle"><code class="code__code">var promiseOfParser = buildParser();
var promiseOfText = readFile();
var promiseOfObject = Q.all([promiseOfParser, promiseOfText]).then(runParserOnText);</code></pre>
</div>
<div class="component prose">
    <p>We can attach as many functions to one promise as we need, and combine promises together into new ones (as with Q.all, above) where a function takes more than one input, like our parseXml function here. And so long as the dependencies are satisfied, we don&rsquo;t care about the order in which steps are executed. When Lambda&rsquo;s NodeJS interpreter runs the code, it can parallelise operations so one step doesn&rsquo;t have to wait for an unrelated step to finish. The main module of Dipper&rsquo;s code is solely concerned with the wiring-together of promises into a dependency tree. When the final promise in the tree is resolved, the whole job has been done. Other modules concern themselves with providing specific bits of data, like the contents of a downloaded file, or the response from a message queue.</p>
<p>When in the future we want to build workflows for new suppliers, it&rsquo;s likely we&rsquo;ll want to reuse some of the steps inside Dipper, perhaps adding or removing some others, or changing some dependencies. Having our code structured this way will help make that reuse a reality.</p>
<h4>Links</h4>
<p><a href="http://www.reactivemanifesto.org/">http://www.reactivemanifesto.org/</a><br /><a href="https://github.com/kriskowal/q">https://github.com/kriskowal/q</a><br /><a href="https://gist.github.com/staltz/868e7e9bc2a7b8c1f754">https://gist.github.com/staltz/868e7e9bc2a7b8c1f754</a><br /><a href="https://en.wikipedia.org/wiki/Digital_Production_Partnership_(DPP)">https://en.wikipedia.org/wiki/Digital_Production_Partnership_(DPP)</a></p>
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>New Homepages for all BBC Radio Stations</title>
      <description><![CDATA[Users visit the radio homepages for a variety of reasons, from listening to live programmes to enjoying BBC selected output clips. All of the radio station homepages are receiving a two part redesign to provide a more effective experience for all user needs.]]></description>
      <pubDate>Mon, 18 Apr 2016 11:25:00 +0000</pubDate>
      <link>https://www.bbc.co.uk/blogs/internet/entries/5c085cb5-b0de-4d99-b6b5-db1c51d57632</link>
      <guid>https://www.bbc.co.uk/blogs/internet/entries/5c085cb5-b0de-4d99-b6b5-db1c51d57632</guid>
      <author>Daniel Bean</author>
      <dc:creator>Daniel Bean</dc:creator>
      <content:encoded><![CDATA[<div class="component prose">
    <p><em>The homepages for all BBC radio stations are receiving a two part redesign. Daniel Bean, Senior Product Manager from the Radio Product Group, discusses the reasons behind the changes and how they were made possible.</em></p>
<p>It&rsquo;s been a couple of years since we started a long term project to build an entirely new version of iPlayer Radio on the web. One of the first things we did was to think about what is most important for our audiences. Near the top of the list was helping people to navigate through the amazing and sometimes bewildering breadth of BBC Radio programmes as well as the clips, videos, quizzes and articles we offer. We thought this was especially important for those that didn&rsquo;t have a specific item in mind but wanted to browse.</p>
</div>
<div class="component prose">
    <p>One of the things we know is that people trust the BBC to pick out the best bits of our output for them, including new and established musicians and writers from all over the world. A key place we do this is on the radio station homepages. However, we also know that a lot of people who visit radio station homepages haven&rsquo;t clicked on the bits that we&rsquo;ve picked out. Part of this is to do with people often visiting radio homepages just to listen to live radio. However, we did some tests and found out that if we did a better job of showing some of the extra content we&rsquo;d picked out we could double the number of people clicking on it.</p>
<p>So last summer we changed this and took the homepage sections with the extra content that were a bit hidden behind tabs and stacked them vertically on the page. As predicted by our research, this doubled the number of people clicking on that content.</p>
<p>Using Radio 2&rsquo;s homepage as an example, it went from looking like this:</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p03r0b4y.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p03r0b4y.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p03r0b4y.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p03r0b4y.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p03r0b4y.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p03r0b4y.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p03r0b4y.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p03r0b4y.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p03r0b4y.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>To looking like this:</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p03r4j1l.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p03r4j1l.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p03r4j1l.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p03r4j1l.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p03r4j1l.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p03r4j1l.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p03r4j1l.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p03r4j1l.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p03r4j1l.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>We then asked ourselves what else we could do to make the network homepages even better at showing people all the great content we have for them. We came up with two things: the first was to design the sections of the homepage so that it&rsquo;s a lot clearer what&rsquo;s in them. If you&rsquo;ve been watching closely you may have noticed that many of the homepage sections have already been changed to the new design. The second was to compress the top section where people click to listen live so that there&rsquo;s more space to see the other things on offer.</p>
<p>The top section now includes a schedule which can be scrolled back to listen to a programme from earlier in the day or scrolled forward to see what is coming up. We tested this with some users and it went down well.&nbsp;All our radio stations have the same basic layout but our teams can now easily prioritise which sets of content they highlight on the page and in what order.</p>
<p>Again, looking at Radio 2, the top section has gone from looking like this:</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p03r4jly.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p03r4jly.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p03r4jly.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p03r4jly.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p03r4jly.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p03r4jly.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p03r4jly.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p03r4jly.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p03r4jly.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>To looking like this:</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p03r4km8.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p03r4km8.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p03r4km8.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p03r4km8.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p03r4km8.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p03r4km8.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p03r4km8.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p03r4km8.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p03r4km8.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>This new layout makes our pages more effective across the range of screen sizes and devices that people use.</p>
<p>The most significant changes are to the Radio 1 and 1Xtra homepages. They&rsquo;ve been different from all the other radio stations since we launched their current homepages in late 2011. Those designs have served Radio 1 and 1Xtra well but after five years we have now found a better way to help users find all the amazing programmes, clips and videos that those two stations create.</p>
<p>Taking 1Xtra as the example, it will go from its current look:</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p03r4l10.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p03r4l10.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p03r4l10.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p03r4l10.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p03r4l10.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p03r4l10.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p03r4l10.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p03r4l10.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p03r4l10.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>To this new look:</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p03rdh00.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p03rdh00.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p03rdh00.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p03rdh00.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p03rdh00.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p03rdh00.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p03rdh00.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p03rdh00.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p03rdh00.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>We&rsquo;re releasing this work in two parts. Firstly we changed the top section today on all radio stations apart from Radio 1 and 1Xtra. Once we&rsquo;re happy that it&rsquo;s worked well we&rsquo;ll change the Radio 1 and 1Xtra homepages to their brand new layout.</p>
<p>As ever, we&rsquo;d like to hear your feedback.</p>
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>Introducing BBC iPlayer Kids</title>
      <description><![CDATA[We decided to create a single app that enables kids to tell the app their age and instantly be presented with content curated specially for their age group. So 6 year olds are able to enjoy a mix of CBeebies and CBBC programmes without having to switch between two different apps.]]></description>
      <pubDate>Tue, 12 Apr 2016 09:00:00 +0000</pubDate>
      <link>https://www.bbc.co.uk/blogs/internet/entries/660c360b-4c3a-4ce4-a7d5-c7bb2af2a524</link>
      <guid>https://www.bbc.co.uk/blogs/internet/entries/660c360b-4c3a-4ce4-a7d5-c7bb2af2a524</guid>
      <author>Dan  Taylor-Watt</author>
      <dc:creator>Dan  Taylor-Watt</dc:creator>
      <content:encoded><![CDATA[<div class="component prose">
    <p><em>Children have been big users of BBC iPlayer ever since it launched and the <a href="http://www.bbc.co.uk/blogs/bbcinternet/2008/12/new_cbbc_iplayer_designed_just.html">first child-friendly version of iPlayer was released way back in December 2008</a>. Fast forward seven years and BBC iPlayer is available on over 10,000 devices, the BBC iPlayer app has been downloaded 38 million times and a third of the 2.9 billion iPlayer TV programme requests in 2015 were for Children&rsquo;s programmes, more than half of which were from a tablet or mobile device. Head of iPlayer Dan Taylor-Watt now describes the launch of a new iPlayer app, aimed specifically at children.</em></p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p03q8ssw.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p03q8ssw.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p03q8ssw.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p03q8ssw.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p03q8ssw.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p03q8ssw.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p03q8ssw.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p03q8ssw.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p03q8ssw.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>We knew from research and from developing the <a href="http://www.bbc.co.uk/blogs/internet/entries/c661218b-fbba-3363-a7e1-cf4053a718f7">BBC iPlayer website for children</a> that parents really value having a version of iPlayer that&rsquo;s guaranteed to be free of programming aimed at adults and that kids love a version of iPlayer that&rsquo;s designed specially with them in mind. We also knew that parents and kids alike wanted the great features of the BBC iPlayer mobile app in a child-friendly environment - features like <a href="http://www.bbc.co.uk/blogs/internet/entries/7743af48-4f5a-3e88-9635-5f4b262f6c13">downloads</a>, the saviour of many a long car journey.</p>
<p>Rather than create separate BBC iPlayer apps for <a href="http://www.bbc.co.uk/cbeebies">CBeebies</a> (which is aimed at children aged 0-6) and <a href="http://www.bbc.co.uk/cbbc">CBBC</a> (which is aimed at 6-12 year olds), we decided to create a single app that enables kids to tell the app their age and instantly be presented with content curated specially for their age group. So 6 year olds are able to enjoy a mix of CBeebies and CBBC programmes without having to switch between two different apps.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p03q8sv2.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p03q8sv2.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p03q8sv2.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p03q8sv2.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p03q8sv2.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p03q8sv2.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p03q8sv2.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p03q8sv2.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p03q8sv2.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p03q8sw4.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p03q8sw4.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p03q8sw4.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p03q8sw4.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p03q8sw4.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p03q8sw4.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p03q8sw4.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p03q8sw4.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p03q8sw4.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>With support for up to four profiles, we&rsquo;ve made it easy for siblings to use the app on a shared device, entering their name and picking a character to denote their profile.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p03q8sxw.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p03q8sxw.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p03q8sxw.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p03q8sxw.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p03q8sxw.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p03q8sxw.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p03q8sxw.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p03q8sxw.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p03q8sxw.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>In addition to the profile switcher and the age-curated home screen, there&rsquo;s a Shows area with full A-Z lists of all CBeebies and CBBC programmes available to watch (1,700+ episodes at the time of writing).</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p03q8sz3.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p03q8sz3.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p03q8sz3.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p03q8sz3.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p03q8sz3.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p03q8sz3.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p03q8sz3.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p03q8sz3.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p03q8sz3.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>And the all-important Downloads area, providing easy access to programmes downloaded to watch offline.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p03q8szw.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p03q8szw.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p03q8szw.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p03q8szw.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p03q8szw.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p03q8szw.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p03q8szw.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p03q8szw.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p03q8szw.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""></div>
<div class="component prose">
    <p>There&rsquo;s also a search option for kids who know exactly what they&rsquo;re looking for, which automatically filters out CBBC programmes for children under 5.</p>
<p>We&rsquo;ve also invested in making BBC iPlayer Kids accessible, with universal subtitles and a new toggle on the episode page to make it easy to switch to and from signed and audio described versions where available.</p>
<p>As all programmes in BBC iPlayer Kids are suitable for children, there&rsquo;s no need for a <a href="http://www.bbc.co.uk/iplayer/guidance">Parental Guidance Lock</a> as found on grown-up BBC iPlayer, however all app Settings (e.g. disabling downloads, enabling higher quality downloads) and links out of the app, are tucked away behind a Safety Lock.</p>
<p>We&rsquo;ve got lots more planned for the BBC iPlayer Kids app but couldn&rsquo;t wait any longer to share it and start hearing your feedback.</p>
<p>BBC iPlayer Kids is available to <a href="http://www.bbc.co.uk/iplayer/features/iplayer-kids">download now</a> for phones and tablets from the Amazon, Apple and Google Play app stores.</p>
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>'Add' programmes to watch later with BBC iPlayer</title>
      <description><![CDATA[Rather than visiting BBC iPlayer with a programme in mind, more people are browsing their options on the platform to find something to watch. Along with this change in usage, people are viewing BBC iPlayer programmes on many different devices.]]></description>
      <pubDate>Wed, 16 Mar 2016 15:00:00 +0000</pubDate>
      <link>https://www.bbc.co.uk/blogs/internet/entries/92fc34bc-983e-4163-bad3-0a8ac2fd8ffe</link>
      <guid>https://www.bbc.co.uk/blogs/internet/entries/92fc34bc-983e-4163-bad3-0a8ac2fd8ffe</guid>
      <author>Al Boley</author>
      <dc:creator>Al Boley</dc:creator>
      <content:encoded><![CDATA[<div class="component prose">
    <p><em>Increasing numbers of people are now using BBC iPlayer for content discovery - browsing through available shows rather than searching for a specific programme. Al Boley is Product Manager for BBC iPlayer, looking after personalisation features such as personalised recommendations and My Programmes, and&nbsp;describes&nbsp;a new&nbsp;update created in response to this change in audience behaviour.&nbsp;</em></p>
<p>From today you&rsquo;ll notice that we&rsquo;re replacing 'Favourites' with 'Added' on the iPlayer website and our Android, iOS and Windows 10 Mobile apps. <a href="http://www.bbc.co.uk/iplayer/added">Added</a>&nbsp;is a quick and simple way to put programmes&nbsp;aside and come back to later.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p03lzw9d.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p03lzw9d.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p03lzw9d.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p03lzw9d.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p03lzw9d.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p03lzw9d.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p03lzw9d.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p03lzw9d.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p03lzw9d.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>The BBC iPlayer &quot;Added&quot; option online</em></p></div>
<div class="component prose">
    <p>We know that more and more of you are coming to BBC iPlayer to browse and find something to watch, rather than with a specific programme in mind. The range of content to choose from has also expanded over time with <a href="http://www.bbc.co.uk/iplayer/group/p026sy87">BBC iPlayer Exclusives</a>, a range of specially picked content from the <a href="http://www.bbc.co.uk/bbcfour/collections">archives</a> and <a href="http://www.bbc.co.uk/iplayer/features/30-days">30 day availability</a> for most programmes.</p>
<p>In this context, when you stumble across something new that looks interesting or sounds like you might enjoy it, adding that to your 'Favourite' TV programmes can feel like quite a commitment. After all, you probably haven&rsquo;t watched it yet. 'Adding' is a more casual activity; just a way to make a quick note of a show you fancy but maybe don&rsquo;t have time to watch right now.</p>
<p>When you 'Add' a programme, we&rsquo;ll pop it in your <a href="http://www.bbc.co.uk/iplayer/added">Added</a> list in My Programmes with details of the latest episode and a quick link to all the available episodes. You can still Add shows you know and love (your Favourites) if you want so that you have them to hand; but you also can use it to flag new things you might want to try.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p03m84kc.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p03m84kc.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p03m84kc.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p03m84kc.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p03m84kc.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p03m84kc.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p03m84kc.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p03m84kc.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p03m84kc.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>The BBC iPlayer &quot;Added&quot; option on the IOS and Android apps</em></p></div>
<div class="component prose">
    <p>More people than ever have smartphones and tablets, so you&rsquo;re watching iPlayer in more and more ways. To help with this we&rsquo;ll be storing your list of Added programmes in the cloud, linked to your <a href="http://www.bbc.co.uk/blogs/internet/tags/bbc-id">BBC iD</a>. This means you&rsquo;ll now need to be signed in to 'Add' shows or see your Added list in My Programmes, but when you do you get a single, synchronised list of programmes you&rsquo;ve 'Added' across any computer, mobile and tablet.</p>
</div>
<div class="component">
    <img class="image" src="https://ichef.bbci.co.uk/images/ic/320xn/p03m86qw.jpg" srcset="https://ichef.bbci.co.uk/images/ic/80xn/p03m86qw.jpg 80w, https://ichef.bbci.co.uk/images/ic/160xn/p03m86qw.jpg 160w, https://ichef.bbci.co.uk/images/ic/320xn/p03m86qw.jpg 320w, https://ichef.bbci.co.uk/images/ic/480xn/p03m86qw.jpg 480w, https://ichef.bbci.co.uk/images/ic/640xn/p03m86qw.jpg 640w, https://ichef.bbci.co.uk/images/ic/768xn/p03m86qw.jpg 768w, https://ichef.bbci.co.uk/images/ic/896xn/p03m86qw.jpg 896w, https://ichef.bbci.co.uk/images/ic/1008xn/p03m86qw.jpg 1008w" sizes="(min-width: 63em) 613px, (min-width: 48.125em) 66.666666666667vw, 100vw" alt=""><p><em>BBC iD sign in or register pop-up on the webpage and Android app.</em></p></div>
<div class="component prose">
    <p>Storing your Added list in the cloud against your BBC iD also allows us to simplify our codebases. Maintaining two ways of storing the data (locally in the web browser/app and against your BBC iD) meant we had two completely different mechanisms for adding, removing and listing favourites across code for web, iOS and Android - now we only have one per platform.</p>
<p>We&rsquo;ve had a Favourites feature in BBC iPlayer since mid-2010 but it has always remained a niche area of the product with only 3% of weekly app users and under 0.5% of weekly web browsers visiting the Favourites page. And most users don&rsquo;t have many favourites in their list: even including programmes no longer available, half of all the times the Favourites page is loaded there are 20 programmes or fewer in the users&rsquo; list.</p>
<p>We think the changes outlined above make it more useful for more people. But if you were one of our Favourites users before don&rsquo;t worry &ndash; all your Favourites will still be there in your Added list. And if you&rsquo;ve been using Favourites without a BBC iD account, just <a href="https://ssl.bbc.co.uk/id/register">register</a> (it only takes a moment) and we&rsquo;ll migrate all your Favourites across to your account. And with other personalised features including the <a href="https://ssl.bbc.co.uk/iplayer/watching">Watching list</a> and personalised recommendations there are more reasons than ever to sign in to BBC iD.</p>
<p>Please try the new Added list and let me know how you find it in the comments below.</p>
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
  </channel>
</rss>
