Flash och Silverlight ersätts av ny HTML5 spelare

2010 skrev Steve Jobs ett öppet brev till Adobe där han dömde ut framtiden för att spela video i Flash. Problem då som nu är alla säkerhetshål som funnits i produkten genom åren. Säkerhetsproblemen i Adobe Flash har vuxit med tiden och var som högst förra året. Det har tagit nästa sex år för verkligheten att komma ikapp den visionära Steve Jobs, men nu händer det överallt.
adobe_flash_player___cve_security_vulnerabilities__versions_and_detailed_reports
Säkerhetsproblemen i Adobe Flash

Från och med Chrome 55, som beräknas släppas i december, så kommer användare bli tvungen att aktivt aktivera flash i browsern. Redan i Augusti så började Firefox blocka visst Flash-innehåll i  browsern. Och i den senaste OS versionen från Apple, MacOS Sierra, så kräver Safari att du aktivt godkänner att du vill se innehåll i Flash och att du känner till de säkerhetsproblem som finns med Flash. Microsoft rör sig även som i samma riktning med deras nya Edge browser.

I vårt OVP team, inom teknikavdelningen, bygger vi just nu nästa generations videospelare för både TV4 och C More. Tanken är att vi ska ersätta dagens gamla videospelare i Flash på TV4 Play och den gamla Silverlightspelaren på C More med en ny spelare byggd i HTML5. Flash för video slog igenom stort i och med lanseringen av Youtube 2005 och har sedan dess använts av bolag världen över för att spela video på internet. TV4 Play lanserade flash på TV4 2009, efter att länge använt Windows media. Vi ligger idag långt fram jämfört med många andra broadcasters runt om i världen som fortfarande är 100% beroende av Flash för att tjäna pengar på video.

Från ett användarperspektiv så är detta jättepositivt. Användarna av TV4Play och C More kan förvänta sig snabbare laddningstider, förbättra säkerhet och lägre batterianvändning. Att vi byggt allt internt och på en ny kodbas möjliggör även en snabbare utvecklingstakt framåt kring spelarfunktionalitet som exempelvis ad-insertion eller integrerad statistik. Här söker vi fler utvecklare som vill jobba med spelarutveckling på Android, IOS och HTML5.

Ett stort fokus för projektet har också varit att bryta ut spelaren från den övriga webbapplikationen. Genom att göra detta så kan samma spelare och funktionalitet användas på både TV4 Play och C More. Detta kommer ytterligare snabba på utvecklingen inom Bonnier Broadcasting och innebär att vi inte behöver lägga dubbla tiden på att bygga spelare separat för resp varumärke och sajt. Det innebär också att vi kan bygga upp en central spelarkompetens inom teknik.

Den nya HTML5-spelaren kommer att tas i bruk på C More under November månad och förhoppningsvis så kommer den sen att rullas ut på TV4 Play innan jul.

Det där med DRM

I min nya roll som produktägare som jag tillträdde i december ingick ansvaret för det som i folkmun kallas DRM. DRM står för Digital Rights Management och syftar till den teknik som har till mål att kontrollera spridningen och användningen av digitalt material, i vårt fall videoprogram. Med andra ord ett kopieringsskydd som vi lagt in i våra olika videospelare för att förhindra att innehållet kopieras.

Behovet av kopieringsskydd är inte unikt för streamingtjänster och har använts i digitala sammanhang redan från mitten av nittiotalet på t.ex. DVD-skivor. DRM är ett nödvändigt ont eftersom vi inte bara visar egna produktioner utan även köper in filmer och tv-serier, oftast med klausulen att det måste vara DRM-skyddat för att kunna få visas på TV4 Play.

När jag skriver “nödvändigt ont” menar jag inte bara att det är en komplex process för oss att bygga in i våra videospelare utan även att det inte alltid är trivialt för användaren att få till. Ett av de absolut vanligaste klagomålen vi får in på TV4 är att man har problem med att installera Widevine — ett av våra DRM-skydd. Bilden nedan visar våra kodningsprotokoll, DRM-skydd och videospelare. Låt oss gå igenom dem en och en.

Videospelarna på TV4 Play idag

RTMP utvecklades av Macromedia (numera ägt av Adobe) och är ett protokoll som används för att streama ljud, bild och data över nätet genom en Flash-spelare. Det kan jämföras med HTTP som är ett protokoll för distribution av hypertext. Vi använder fortfarande RTMP till livesändningar som vi vill lägga in reklam i, t.ex. Nyhetsmorgon eller Idol-fredagsfinaler.

HDS är ett adaptivt streamingprotokoll från Adobe som vi numera använder på det mesta material på webben, både livesändningar och förinspelade program (det som kallas VOD). Fördelen med HDS jämfört med RTMP är bland annat att videospelaren anpassar bild- och ljudkvaliteten efter användarens internetuppkoppling och datorkapacitet.

HLS är ett annat adaptivt streamingprotokoll som Apple tagit fram. Det används främst för Apples egna produkter, t.ex. iPhone, iPad och Safari-webbläsaren, men har även fått spridning på Android. Vi använder HLS både för våra iOS- och Android-appar.

Smooth är Microsofts svar på ett adaptivt format och vi använder det till de användare som har Premium Sport av den enkla anledningen att materialet i det abonnemanget kommer från C More som använder Smooth Streaming.

Medan RTMP är en gammal standard som är på väg bort kommer de tre övriga att leva kvar ett tag till även om de också har fått ett bästföredatum inom en allt för snar framtid. Utmaningen idag är att det inte finns något självklart alternativ och därför har HDS, HLS och Smooth Streaming blivit väletablerade format som används av de flesta streamingtjänsterna både i Sverige och internationellt. Läs mer om hur dessa tre format fungerar i ett tidigare blogginlägg om adaptiv streaming (när artikeln skrevs hade vi inte Smooth på TV4 Play).

Widevine Media Optimizer är ett DRM-skydd utvecklat av Widevine Technologies som numera ägs av Google. Vi använder Widevine för både webben genom HDS och för mobilapparna genom HLS. På sin webbläsare måste man installera Widevine som ett tillägg till Flash-spelaren och det är här många användare upplever problem eftersom den inte alltid är kompatibel med alla datorkonfigurationer och webbläsare. Tyvärr har även många Android-enheter problem med Widevine.

PlayReady är ett DRM-skydd framtaget av Microsoft och är väl integrerat med deras streamingprotokoll Smooth. Vi använder PlayReady på det C More-material som måste kopieringsskyddas enligt våra avtal. Till skillnad från Widevine kräver PlayReady inte ett extra tillägg utan ingår i Silverlight-spelaren som används för att spela upp smooth-strömmar.

Sammanfattningsvis har vi alltså Flash-spelaren på webben för allt som är gratis (med reklam) och Premium samt Silverlight-spelaren för det som ligger under Premium Sport. Dessa videospelare använder Widevine respektive PlayReady där ett DRM-skydd krävs, t.ex. våra tv-kanaler (TV4, Sjuan, C More Sport HD etc) samt tv-serier som Elementary och Musketörerna. Sedan har vi de inbyggda videospelarna i iOS- och Android-apparna samt Widevine Player för det som är DRM-skyddat. Här krävs inga extra tillägg eftersom spelaren är inbyggd i den nedladdade appen.

Utmaningar och lösningar

På grund av alla problem som upplevs med Widevine kommer vi under året att fasa bort DRM:et och lämna plats för andra lösningar. Ett steg i den riktningen kan ses redan nu i Android-appen som fick en ny release igår. Där har vi byggt in en ny spelare som klarar av att hantera Smooth och PlayReady — alltså Microsofts streamingprotokoll och DRM-skydd. SecurePlayer som den kallas är en VisualOn-videospelare med ett påhäng från Discretix som möjliggör DRM. Dock är allt inte frid och fröjd riktigt än — det återstår fortfarande att koda om våra tv-kanaler och filmer i Smooth; detta kommer att göras inom de närmaste veckorna. Däremot ska du kunna njuta av Elementary och andra tv-serier på din Android-enhet redan idag om du har den senaste versionen av appen. Skaffa den här!

En annan utmaning vi tampas med är Widevine på webben. Här kommer vi att gå över till Silverlight-spelaren på allt som är Premium samt allt som är DRM-skyddat. Detta är ett lite större arbete men vi hoppas kunna leverera smooth-strömmar för detta redan under senvåren. Utöver det arbetar vi även med en HTML5-spelare för hela program (idag använder vi den endast för klipp) men detta kommer inte att innefatta DRM-skyddat material eftersom det inte finns något DRM för HTML5 idag. Med HTML5-spelaren finns möjlighet att se icke-DRM-programmen direkt i webbläsaren på din iPhone, iPad eller Android-enhet (nyare versioner). Även denna hoppas vi kunna införa innan sommaren.

Videospelarna på TV4 Play under 2014

Bilden ovan visar våra ambitioner med videospelarna och DRM-skydden. De stora förändringarna är alltså att Widevine kommer att behållas på iPhone och iPad (där den fungerar bra) men fasas bort på webben och på Android. Den observante har säkert noterat att Apple TV saknas på bilden. Anledningen är att vi inte kan diskutera detaljerna kring tekniken bakom appen riktigt än. Dock kan vi säga att DRM-skyddat material är på väg in även här så håll ut ett tag till!

Så funkar videostreaming

Som en fortsättning på vårt tidigare blogginlägg om adaptiv streaming där vi beskrev hur det går till när en videoström spelas upp på TV4 Play och där vi gav några tips på hur du får ner buffringen kommer här en utförligare beskrivning av hela streamingkedjan från inspelning till uppspelning.

Bilden nedan visar de många steg som strömmen måste gå genom innan den når användaren. För enkelhetens skull har vi delat upp dem i tre områden: produktion, distribution och leverans. Vi kan även kalla dem för ”TV4-huset”, ”molnet” respektive ”internet”.

Videostreaming

I det första steget produceras programmet, antingen direkt genom en liveinspelning eller genom ett inköpt program. Bild och ljud synkas, sändningen kompletteras med textning, grafik etc, den kodas om till rätt videoformat, ett kopieringsskydd läggs på och slutligen skickas den till en dataserver. Allt detta sker tillsammans med vår partner Ericsson som också finns i TV4-huset.

I det andra steget distribueras videoströmmen genom en molntjänst som i vårt fall tillhandahålls av Akamai. Molnet fungerar på så sätt att programmet sprids till strategiskt utplacerade noder som ligger i nära anslutning till de största internetleverantörerna så att så många användare som möjligt kan nås snabbt. Där ligger videon och väntar på nästa steg.

I det tredje och sista steget levereras videoströmmen först när användaren trycker på Play-knappen i sin videospelare. Man hämtar alltså programmet från den närmaste molnnoden och slipper därmed gå hela vägen till våra servrar. Vilken väg som väljs beror helt och hållet på vilken internetleverantör man är ansluten till samt hur denna är sammankopplad med övriga aktörer på nätet.

För att testa hur bra uppkoppling du har till den närmaste leveransnoden (den gula operatörsrutan på bilden) kan du köra Bredbandskollen. Dock säger den ingenting om vad som händer under resten av vägen till det blå fältet.

Om du är nyfiken på vilken väg videoströmmen levereras till dig genom hela det gula fältet kan du använda programmet traceroute på din dator. I Windows kör du programmet cmd.exe och skriver tracert http://www.tv4play.se i fönstret.

Trace Route på Windows

På en Mac-dator öppnar du ett Terminal-fönster och skriver traceroute http://www.tv4play.se efter prompten.

Trace Route på Mac OS

Ju fler steg din dator tar genom internet desto större risk är det att något kan gå fel på vägen. Du kommer även att kunna se om din internetleverantör har en direktkoppling till Akamai (som i exemplet ovan) eller om den måste gå genom en annan operatör.

Som ett paket på posten

Har vi krånglat till det ordentligt för dig? Låt oss i så fall likna videostreaming vid ett postorderföretag. Säg att vårt postorderföretag specialiserat sig på tröjor med snygga tryck som vi har tillverkat (steg 1) och fraktat till ett antal lagerhus strategiskt utplacerade runt om i landet (steg 2). Vår kund är intresserad av en av våra fina tröjor och gör en beställning. Det som händer nu är att tröjan skickas till kunden via Posten till det närmaste ombudet (steg 3) där paketet kan hämtas.

Självklart finns det ett antal saker som kan gå fel. Vid tröjtillverkningen kanske någon har gjort ett feltryck eller så har maskinen gått sönder. Ett lagerhus får av misstag inte några tröjor i storleken XL. Och även om Posten säger att leveransen ska ta 2 – 5 dagar finns det ingen garanti på att tröjan kommer fram innan den där viktiga festen i helgen.

Översatt till videostreaming skulle detta kunna vara att fel program lagts in, att en kodare slutat fungera, att den högsta kvaliteten inte når till molnet vilket gör att en loop på en gammal sekvens spelas upp om och om igen samt att videosegmentet kommer för sent till videospelaren vilket tvingar den till buffring.

Videostreaming funkar alltså på samma sätt som vårt postorderföretag med den stora skillnaden att vi strimlat sönder tröjan i hundratals bitar som vi skickar i små paket var tionde sekund!

Epilog: den traditionella TV:n då?

Minns du bilden längst upp med de tre stegen produktion, distribution och leverans? Skrolla upp och begrunda den en stund och jämför den sedan med bilden nedan som representerar den vanliga TV-rutan.

Traditionell TV

Som du säkert insett skiljer sig bilderna ganska mycket. Anledningen är att vi har direktavtal med alla de stora TV-operatörerna och slipper därmed mellanhänder. Om något går fel är det med andra ord antingen vi eller de som kan klandras, men med färre steg blir det också mer sällan fel.

Om videostreaming kan jämföras med ett postorderföretag kan den traditionella TV:n liknas vid morgontidningen på hallgolvet. Du behöver inte beställa den varje dag och du behöver aldrig vänta på den; den bara ligger där lagom tills du vaknar. Vi är inte riktigt där än med våra tröjor men när tillräckligt många beställer sina klädesplagg över nätet kommer vi garanterat att hitta nya och effektivare sätt att leverera dem direkt till din dörr!

Så funkar adaptiv streaming

Ibland får vi frågor om varför det sker en fördröjning jämfört med TV-rutan när man tittar på en livesändning på TV4 Play. Förutom den fördröjning som internet medför är den största bidragande faktorn något som kallas adaptiv streaming.

Adaptiv streaming är en teknik som anpassar bild- och ljudkvaliteten efter användarens datorkapacitet och uppkopplingshastighet. Fördelen är att användaren alltid får den högsta kvalitet som utrustningen klarar av utan att behöva tänka på att justera nivån. TV4 använder adaptiv streaming både på datorer genom Adobes HDS och på mobila enheter genom Apples HLS.

När man startar en adaptiv ström kan man först uppleva en låg kvalitet. Om datorn eller enheten känner att den hinner hämta hem en högre kvalitet kommer den att göra det. Denna kontroll görs därefter under hela uppspelningen och om den skulle uppleva att det sker en nätverksöverbelastning kommer nästa segment att bestå av en lägre kvalitet.

Hos oss kodas allt videomaterial i segment om tio sekunder. Redan där får man en fördröjning på tio sekunder eftersom man måste vänta in produktionen av segmentet innan det kan skickas till användaren. Utöver detta segment behöver användaren ytterligare två segment för att inte riskera att det buffrar i väntan på nästkommande segment. Sammanlagt innebär detta att 30 sekunder av liveinspelningen måste finnas tillgänglig innan den kan skickas till användaren.

Varför ändras kvaliteten?

Nedan följer tre exempel på valet av kvalitet när nästa segment ska hämtas hem. I alla tre fallen har tre segment redan spelats in – A, B och C – varav de två första är hämtade (gröna). Medan vi spelar upp segment A hämtar vi hem segment C (gult). För enkelhetens skull säger vi att kvaliteten på segment D (rött) bedöms utefter hur snabbt vi hämtar hem segment C (i själva verket tas hänsyn även till tidigare segment).

I fall 1 gick det snabbare än tio sekunder att hämta segment C. Därför väljer vi en högre kvalitet på segment D eftersom vi hinner hämta det innan det ska spelas upp.

Högre kvalitet

I fall 2 tog det runt tio sekunder att hämta hem segment C. Därför behåller vi den befintliga kvaliteten även för segment D för att vara på den säkra sidan.

Samma kvalitet

I fall 3 tog det mer än tio sekunder att hämta hem segment C. Därför sänker vi kvaliteten på segment D eftersom vi annars inte hade hunnit hämta det.

Lägre kvalitet

I värsta fall hinner vi inte hämta hem segment C innan det är dags att spela upp det. I det senaste exemplet ovan hade vi endast fem sekunder tillgodo. Om vi inte hinner kommer videospelaren att buffra tills segment C är färdighämtat. Därefter kommer segment D att bestå av en låg kvalitet tills vi är ikapp igen.

Varför buffrar det?

En orsak till att det buffrar kan vara att det sker en hög belastning på datorn (flera andra processer är igång samtidigt) vilket gör att videospelaren inte hinner avkoda det senaste segmentet. Exempel på bakomliggande processer kan vara en Skype-chat eller att man håller på att tanka hem en stor fil. Tipset här är att stänga ner alla program som kan störa videospelaren.

En annan orsak kan vara att det sker en tillfällig överbelastning på nätet. Detta har ingenting med hur hög bandbredd man har utan beror helt och hållet på hur internet är uppbyggt. Precis som all annan trafik skickas segmenten genom olika vägar och ibland stöter man på ett väghinder. Säkert har alla någon gång upplevt att en webbsida tar ovanligt lång tid att ladda; när man sedan provar igen går det snabbare. Här är det samma princip som gäller med skillnaden att vi har ett väldigt snävt tidsfönster att förhålla oss till innan vi upplever ett hack i videouppspelningen.

Tyvärr har vi begränsade möjligheter att förebygga nätverksöverbelastning, framför allt i mobila nät. Det man kan göra är att se över sin bredbandsutrustning (modem, router, etc.) eller att försöka stanna kvar på en plats som har bra täckning. Internet var inte uppbyggt med hänsyn till direkt dataöverföring och även om teknikens utveckling har möjliggjort detta är vi fortfarande inte framme vid en helt buffringsfri TV-upplevelse över nätet.

En kedja utan några svaga länkar

Idag medverkade TV4 på en heldagsmässa arrangerad av forskningsprojekten EFRAIM och SAIL där vi pratade om videostreaming och vilka utmaningar och möjligheter vi ser inom området.

Streamad video till datorer och mobila enheter är ett snabbt växande område i Norden och TV4-Gruppen har länge varit en bidragande faktor till detta genom bland annat TV4 Play, C Sports och nu senast Filmnet som lanserades i höstas. De utmaningar som branschen ser är att det inte alltid finns standarder inom den bakomliggande tekniken. Samtidigt har vi ingen möjlighet att kontrollera hela kedjan från publiceringen till slutanvändaren. Det är därför viktigt att samarbeta med distributörer och operatörer för att hitta nya sätt att leverera högkvalitativt material till våra tittare.

Vi ser en ökad användning av mobila enheter och även livesändningarna blir allt mer populära vilka ställer helt andra krav på kvaliteten jämfört med traditionella on-demand-tjänster. Man förväntar sig exempelvis att videon startar omedelbart och att det inte sker någon fördröjning jämfört med den linjära TV:n i vardagsrummet. Detta i kontrast till video-on-demand där bitraten är viktigast.

De frågor som diskuterades under dagen var bland annat hur vi skulle kunna samarbeta med alla parter i värdekedjan i syfte att förbättra den användarupplevda kvaliteten. Hade det inte varit underbart om vi direkt hade kunnat svara på var flaskhalsen ligger när en upprörd tittare hör av sig angående kvalitetsbrister? Vi är inte riktigt där än och det kommer att krävas en djupare dialog med både internetleverantörer och CDN:er.

Idag lever vi i en värld där det endast erbjuds best-effort inom videostreaming eftersom ingen part kan garantera en hög kvalitet hela vägen till användarna. Samtidigt är det få kunder som skulle vara beredda att betala extra för en garanterad kvalitet eftersom man förväntar sig det redan idag. Därför gäller det att hitta metoder som förbättrar kvaliteten utan att affärsmodellen ska behöva lida.

Det finns många utmaningar som EFRAIM-projektet angriper men däri ligger också möjligheterna. Det tvååriga projektet startades i höstas och kan mycket väl komma att bli en viktig plattform i konsortiet att diskutera framtida modeller för mediadistribution som inte bara är kostnadseffektiva utan även gynnar slutanvändarna.