• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Dynamic Adaptive Streaming over HTTP: From Content Creation to Consumption
 

Dynamic Adaptive Streaming over HTTP: From Content Creation to Consumption

on

  • 30,631 views

 

Statistics

Views

Total Views
30,631
Views on SlideShare
2,986
Embed Views
27,645

Actions

Likes
24
Downloads
0
Comments
0

68 Embeds 27,645

http://www-itec.uni-klu.ac.at 13068
http://www.scoop.it 3461
http://multimediacommunication.blogspot.co.at 3224
http://www-itec.aau.at 2984
http://multimediacommunication.blogspot.com 1356
http://multimediacommunication.blogspot.in 518
http://multimediacommunication.blogspot.co.uk 509
http://multimediacommunication.blogspot.fr 317
http://multimediacommunication.blogspot.de 238
http://multimediacommunication.blogspot.co.il 166
http://multimediacommunication.blogspot.kr 148
http://multimediacommunication.blogspot.ch 139
http://multimediacommunication.blogspot.ca 129
http://multimediacommunication.blogspot.it 129
http://multimediacommunication.blogspot.jp 122
http://multimediacommunication.blogspot.gr 104
http://feeds.feedburner.com 90
http://multimediacommunication.blogspot.tw 86
http://multimediacommunication.blogspot.com.es 77
http://www.itec.uni-klu.ac.at 65
http://translate.googleusercontent.com 64
http://multimediacommunication.blogspot.fi 61
http://multimediacommunication.blogspot.com.br 60
http://veille.challenge2media.com 53
http://multimediacommunication.blogspot.ru 52
http://multimediacommunication.blogspot.no 45
http://multimediacommunication.blogspot.se 44
http://multimediacommunication.blogspot.hk 38
http://multimediacommunication.blogspot.pt 36
http://veille-ott.challenge2media.com 28
http://multimediacommunication.blogspot.com.au 27
http://multimediacommunication.blogspot.nl 26
http://multimediacommunication.blogspot.sg 18
http://www.directrss.co.il 16
http://ftp-itec.uni-klu.ac.at 14
http://multimediacommunication.blogspot.ie 14
http://multimediacommunication.blogspot.be 13
http://multimediacommunication.blogspot.mx 11
http://cloud.feedly.com 10
http://webcache.googleusercontent.com 10
http://lewiki.blogspot.fr 9
http://multimediacommunication.blogspot.ro 7
http://multimediacommunication.blogspot.com.ar 6
http://multimediacommunication.blogspot.dk 5
http://multimediacommunication.blogspot.cz 4
http://multimediacommunication.blogspot.sk 4
http://feedwrangler.net 4
https://twitter.com 3
http://131.253.14.66 3
http://wikis.rim.net 3
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Dynamic Adaptive Streaming over HTTP: From Content Creation to Consumption Dynamic Adaptive Streaming over HTTP: From Content Creation to Consumption Presentation Transcript

    • Dynamic(Adap,ve(Streaming(over(HTTP:(From(Content(Crea,on(to(Consump,on( Chris,an(Timmerer( Carsten(Griwodz(AlpenHAdriaHUniversität(Klagenfurt( Simula(Research(Laboratory( Universitätsstraße(65H67( P.O.Box(134(AH9020(Klagenfurt(am(Wörthersee( 1325(Lysaker,(Norway( +43$463$2700$3621$ +47$67$82$82$00$ chris/an./mmerer@itec.aau.at$ griff@simula.no$ ACM(Mul,media(2012,(Nara,(Japan( 29th(October,(2012(
    • Video$Predominant$on$the$Internet$ •  RealB/me$video$is$more$than$50%$of$the$traffic$at$peak$periods$ •  Mobile$traffic$is$growing$exponen/ally,$all$delivered$over$the$top$(OTT)$hZp://www.sandvine.com/downloads/documents/Phenomena_1H_2012/Sandvine_Global_Internet_Phenomena_Report_1H_2012.pdf$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 2$
    • ...$but$User$Frustra/on$is$High!!!$ •  Wrong$format$ •  Wrong$protocol$ •  Plugin$required$ •  DRM$issues$ •  Long$startBup$delay$ •  Low$quality$ •  Frequent$stalls$ •  Bitrate$intense$ •  No$DVD/PVR$experience$Ack:$Thomas$Stockhammer$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 3$
    • Dynamic$Adap/ve$Streaming$over$HTTP$ •  In$a$nutshell$…$Ack$&$©:$Christopher$Müller$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 4$
    • Presenters$Chris,an(Timmerer( Carsten(Griwodz(Assistant$professor$at$the$Ins/tute$of$Informa/on$ Head$of$the$Media$department$of$research$company$Technology$(ITEC),$Mul/media$Communica/on$Group$ Simula$Research$Laboratory,$and$professor$of$Computer$(MMC),$AlpenBAdriaBUniversität$Klagenfurt,$Austria.$His$ Science$at$the$University$of$Oslo.$He$received$his$Dipl.Bresearch$interests$include$immersive$mul/media$ Inf.$degree$from$Paderborn$University$in$1993$and$Dr.Bcommunica/on,$streaming,$adapta/on,$and$Quality$of$ Ing.$degree$from$Technische$Universität$Darmstadt$in$Experience$(QoE).$He$was$the$general$chair$of$ 2000.$He$worked$for$IBM$from$1993–98$and$par/cipated$WIAMIS’08,$AVSTP2P’10$(coBlocated$with$ACMMM’10),$ in$the$standardiza/on$of$MHEG.$His$research$is$WoMAN’11$(coBlocated$with$ICME’11),$and$TPC$coBchair$ concerned$with$streaming$media,$ranging$from$scalable$of$QoMEX’12.$He$has$par/cipated$in$several$ECBfunded$ distribu/on$architectures$through$opera/ng$system$and$projects,$notably$DANAE,$ENTHRONE,$P2PBNext,$ protocol$support$to$subjec/ve$visual$quality$assessment.$$ALICANTE,$and$SocialSensor.$He$is$an$Associate$Editor$for$ He$was$coBchair$of$ACM$NOSSDAV$2008,$ACM/IEEE$IEEE$Computer$Science$Compu/ng$Now,$Area$Editor$for$ NetGames$2011,$SPIE/ACM$MMCN$2006$and$2007,$Track$Elsevier$Signal$Processing:$Image$Communica/on,$Review$ chair$of$ACM$MM$2008,$TPC$chair$of$ACM$MMSys$2012$Board$Member$of$IEEE$MMTC,$editor$of$ACM$SIGMM$ and$is$general$chair$of$MMSys$2013.$He$is$Associate$Records,$and$member$of$ACM$SIGMM$Open$Source$ Editor$of$ACM$TOMCCAP$and$EditorBinBChief$of$the$Sorware$CommiZee.$He$also$par/cipated$in$ISO/MPEG$ newsleZer$ACM$SIGMM$Records.$The$Media$group$work$for$several$years,$notably$in$the$area$of$MPEGB21,$ publishes$news$at$hZp://mpg.ndlab.net.$His$publica/ons$MPEGBM,$MPEGBV,$and$DASH$(incl.$DASH$promoters$ can$be$found$at$hZp://simula.no/people/griff/group).$He$received$his$PhD$in$2006$from$the$Klagenfurt$ bibliography.$University.$Publica/ons$and$MPEG$contribu/ons$can$be$found$under$hZp://research./m$merer.com,$follow$him$on$hZp://www.twiZer.com//mse7,$and$subscribe$to$his$blog$hZp://blog./mmerer.com.$Full$bio$can$be$found$at$hZp://wwwBitec.uniBklu.ac.at/~/mse/cv/.$ DASH$Tutorial,$ACM$Mul/media$2012$Oct$29,$2012$ 5$
    • Tutorial$Outline$ –  Scope$and$design$principles$ –  Data$model$ –  Profiles$ –  GPAC$ –  VLC$media$player$plugin,$libdash$ –  Javascript$&$HTML5$=>$DASHBJS$ –  Mobile,$heterogeneous$environments$ –  Quality$of$Experience$(QoE)$ –  Synchroniza/on$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 6$
    • Dynamic(Adap,ve( Streaming(over(HTTP((DASH)( Chris,an(Timmerer(and(Christopher(Müller( ( AlpenHAdriaHUniversität(Klagenfurt((AAU)(!(Faculty(of(Technical(Sciences((TEWI)(!(Department(of(Informa,on( Technology((ITEC)(!(Mul,media(Communica,on((MMC)(!(Sensory(Experience(Lab((SELab)( research./mmerer.com$!$blog./mmerer.com$!$selab.itec.aau.at$!$dash.itec.aau.at$!$stcsn.ieee.net$ chris/an./mmerer@itec.aau.at$ ACM(Mul,media(2012,(Nara,(Japan( 29th(October,(2012(Acknowledgment:$Thomas$Stockhammer$(QUALCOMM),$Mark$Watson$(Nezlix),$Iraj$Sodagar$(Microsor)$
    • What$is$DASH?$hZp://en.wikipedia.org/wiki/Dash_(disambigua/on)$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 8$
    • Dynamic$Adap/ve$Streaming$over$HTTP$(DASH)$Proprietary(Solu,ons( Int’l(Standard(Solu,ons(V1( Int’l(Standard(Solu,ons(V2( Apple(HTTP(Live( Streaming(( 3GPP(Rel.9(Adap,ve( 3GPP(Rel.10(DASH( Adobe(HTTP( HTTP(Streaming(( Dynamic(Streaming(( V3…$ Microsoe(Smooth( Streaming( OIPF(HTTP(Adap,ve( MPEGHDASH( Streaming( Neflix( Akamai( Movenetworks’( Movestreaming(( Amazon( .(.(.( /me$ hZp://mul/mediacommunica/on.blogspot.com/2010/05/hZpBstreamingBofBmpegBmedia.html$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 9$
    • DASH$Design$Principles$ •  DASH$is$not$ –  system,$protocol,$presenta/on,$codec,$interac/vity,$DRM,$client$specifica/on$ •  DASH$is$an$enabler$ –  It$provides$formats$to$enable$efficient$and$highBquality$delivery$of$streaming$ services$over$the$Internet$ –  It$is$considered$as$one$component$in$an$endBtoBend$service$ –  System$defini/on$ler$to$other$organiza/ons$(SDOs,$fora,$companies,$etc.)$ •  Design$choices$ –  Enable$reuse$of$exis/ng$technologies$(containers,$codecs,$DRM$etc.)$ –  Enable$deployment$on$top$of$HTTPBCDNs$(Web$Infrastructures,$caching)$ –  Enable$very$high$userBexperience$(low$startBup,$no$rebuffering,$trick$modes)$ –  Enable$selec/on$based$on$network$and$device$capability,$user$preferences$ –  Enable$seamless$switching$ –  Enable$live$and$DVDBkind$of$experiences$ –  Move$intelligence$from$network$to$client,$enable$client$differen/a/on$ –  Enable$deployment$flexibility$(e.$g.,$live,$onBdemand,$/meBshir$viewing)$ –  Provide$simple$interoperability$points$(profiles)$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 10$Ack$&$©:$Thomas$Stockhammer$
    • Scope$of$DASH$ Server( Client( 1( MF( MF( 2( DF( DF(ISOBM ISOBM FF( easy$ easy$ FF( conversion$ conversion$M2TS( M2TS(Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 11$
    • What$is$specified$–$and$what$is$not?$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 12$Ack$&$©:$Thomas$Stockhammer$
    • DASH$Data$Model$ Segment Info Initialization Segment http://www.e.com/ahs-5.3gpMedia Presentation Media Segment 1 Period, start=0s Period, start=0s • start=100 Representation 1 http://www.e.com/ahs-5-1.3gs … … • baseURL=http://www.e.com/ • bandwidth=500kbit/s • width 640, height 480 Media Segment 2 Representation 1 … start=10s http://www.e.com/ahs-5-2.3gs Period, start=100s 500kbit/s Segment Info … duration=10s Media Segment 3 start=20s Representation 2 Template: http://www.e.com/ahs-5-3.3gh 100kbit/s ./ahs-5-$Index$.3gs Period, start=295s … … … Media Segment 20 start=190s http://www.e.com/ahs-5-20.3gs Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 13$Ack$&$©:$Thomas$Stockhammer$
    • Media$Presenta/on$Descrip/on$ •  Redundant$informa/on$of$Media$Streams$for$the$purpose$to$ ini/ally$select$or$reject$Adapta/onSets$of$Representa/ons$ –  Examples:$Codec,$DRM,$language,$resolu/on,$bandwidth$ •  Access$and$Timing$Informa/on$ –  HTTPBURL(s)$and$byte$range$for$each$accessible$Segment$ –  Earliest$next$update$of$the$MPD$on$the$server$ –  Segment$availability$start$and$end$/me$in$wallBclock$/me$ –  Approximated$media$start$/me$and$dura/on$of$a$Media$Segment$in$ the$media$presenta/on$/meline$ –  For$live$service,$instruc/ons$on$star/ng$playout$such$that$media$ segments$will$be$available$in$/me$for$smooth$playout$in$the$future$ •  Switching$and$splicing$rela/onships$across$Representa/ons$ •  Rela/vely$liZle$other$informa/on$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 14$Ack$&$©:$Thomas$Stockhammer$
    • MPD$Schema$Overview$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 15$Ack$&$©:$Iraj$Sodagar$
    • MPD$Schema$B$Representa/on$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 16$Ack$&$©:$Iraj$Sodagar$
    • DASH$Adapta/onSets$&$Subsets$ Adapta,onSet(id="grpH1"( Adapta/onSet$by$codec,$language,$resolu/on,$ bandwidth,$views,$etc.$–$very$flexible$(in$combina/on$ Representa,on(id="repH1"( with$xlink)!$ Representa,on(id="repH2"( "  Ranges$for$the$@bandwidth,$@width,$@height$and$ @frameRate$ .(.(.( Representa,on(id="repHn"( Subset(id="ssH1"( Contains(group="grpH1"( Adapta,onSet(id="grpH2"( Contains(group="grpH4"( Representa,on(id="repH1"( Contains(group="grpH7"( Representa,on(id="repH2"( .(.(.( Representa,on(id="repHn"( Subsets$ "  Mechanism$to$restrict$the$combina/on$of$ .(.(.( ac#ve$Groups$ "  Expresses$the$inten/on$of$the$creator$of$the$ Adapta,onSet(id="grpHm"( Media$Presenta/on$$ Representa,on(id="repH1"(Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 17$ Representa,on(id="repH2"(
    • Segment$Indexing$ •  Provides$binary$informa/on$in$ISO$box$structure$on$ –  Accessible$units$of$data$in$a$media$segment$ –  Each$unit$is$described$by$ •  Byte$range$in$the$segments$(easy$access$through$HTTP$par/al$GET)$ •  Accurate$presenta/on$dura/on$(seamless$switching)$ •  Presence$of$representa/on$access$posi/ons,$e.g.$IDR$frames$ •  Provides$a$compact$bitrateBoverB/me$profile$to$client$ –  Can$be$used$for$intelligent$request$scheduling$ •  Generic$Data$Structure$usable$for$any$media$segment$ format,$e.g.$ISO$BMFF,$MPEGB2$TS,$etc.$ •  Hierarchical$structuring$for$efficient$access$ •  May$be$combined$with$media$segment$or$may$be$separate$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 18$Ack$&$©:$Thomas$Stockhammer$
    • Segment$Indexing$ seg1.mp4 Segment(Index(in(MPD(only( <MPD> seg2.mp4 ... <URL sourceURL="seg1.mp4"/> <URL sourceURL="seg2.mp4"/> ... </MPD> <MPD> seg.mp4 ... <URL sourceURL="seg.mp4" range="0-499"/> <URL sourceURL="seg.mp4" range="500-999"/> </MPD> Segment(Index(in(MPD(+(Segment(( <MPD> sidx ... .mp4 <Index sourceURL=”sidx.mp4"/> <URL sourceURL="seg.mp4"/> </MPD> seg.mp4 Segment(Index(in(Segment(only(( <MPD> ... <BaseURL>seg.mp4</BaseURL> sidx seg.mp4 </MPD>Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 19$
    • Switch$Point$Alignment$ •  Segment$alignment$ –  Permits$nonBoverlapping$decoding$and$presenta/on$of$segments$from$ different$representa/ons$ •  Stream$Access$Points$(SAPs)$ –  Presenta/on$/me$and$posi/on$in$segments$at$which$random$access$and$ switching$can$occur$ •  Bitstream$Switching$ –  Concatena/on$of$segments$from$different$representa/ons$results$in$ conforming$bitstream$ •  Alignment$and$SAPs$can$ also$apply$for$subsegments$ •  Preferable$switching$points$ are$segment/subsegment$ boundaries$for$which$ –  Alignment$holds$across$ representa/ons$ –  The$switchBto$ representa/on$starts$with$ a$SAP$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 20$Ack$&$©:$Mark$Watson$and$Thomas$Stockhammer$
    • Profiles$ •  Subset$(restric/ons)$of$the$func/onality$ •  Target$specific$applica/ons/domains$ •  As$of$now,$mainly$related$to$supported$segment$ formats$ Full(Profile( ISOBMFF(Main( MPEGB2$ MPEGH2( ISOBMFF$ ISOBMFF$ TS$Simple$ TS(Main( On$Demand$ Live$ •  More$restric/ons$may$be$added$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 21$Ack:$Thomas$Stockhammer$
    • Adap/ve$Streaming$Summary$ •  For$on$demand$ •  For$live$ –  Chunks$are$unnecessary$and$costly$ –  Chunks$are$unavoidable$ –  Byte$range$requests$have$caching$and$ –  S/ll$value$in$decoupling$request$size$ flexibility$advantages$ from$chunk$size$ –  Separate$audio/video$essen/al$for$ –  Mul/ple$language$audio$tracks$are$rare$ language$support$ –  May$need$manifest$updates$ •  For$both$ –  Switch$point$alignment$required$for$most$CE$decoding$pipelines$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 22$Ack$&$©:$Mark$Watson$and$Thomas$Stockhammer$
    • Adapta/on$Problem$ Choose$sequence$and$/ming$of$requests$to$minimize$ probability$of$reBbuffers$and$maximize$quality$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 23$Ack$&$©:$Mark$Watson$
    • Poten/al$Future$Work$Items$•  MMSys’11$Keynote$ –  HTTP$Adap/ve$Streaming$in$Prac/ce$by$Mark$Watson$(Nezlix)$ –  Future$work$ •  Good$models$for$future$bandwidth$ •  Tractable$representa/ons$of$future$choices$B$how$to$efficiently$search$ the$choice$space$ •  What$are$the$quality$goals?$•  Call$for$adapta/on$logics$ –  Efficient$implementa/ons$of$the$actual$adapta/on$logic$which$is$ responsible$for$the$dynamic$and$adap/ve$part$of$DASH$ hZp://mul/mediacommunica/on.blogspot.com/2011/02/betaBversionBofBvlcBdashBplugin.html$•  Get$it$deployed$and$adopted$(e.g.$W3C,$DVB$–$what$is$ necessary?)$•  Join$this$ac/vity,$everyone$is$invited$–$get$involved$in$and$ exited$about$DASH!$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 24$
    • DASH(“Encoder”,(Dataset,(and(Players( Stefan(Lederer,(Christopher(Müller,(Benjamin(Rainer,(and(Chris,an(Timmerer( (AlpenHAdriaHUniversität(Klagenfurt((AAU)(!(Faculty(of(Technical(Sciences((TEWI)(!(Department(of(Informa,on( Technology((ITEC)(!(Mul,media(Communica,on((MMC)(!(Sensory(Experience(Lab((SELab)( hZp://research./mmerer.com$!$hZp://blog./mmerer.com$!$hZp://dash.itec.aau.at/ mailto:chris/an./mmerer@itec.uniBklu.ac.at$ ACM(Mul,media(2012,(Nara,(Japan( 29th(October,(2012( Acknowledgments.$This$work$was$supported$in$part$by$the$European$Commission$in$the$context$of$the$ALICANTE$project$(FP7B ICTB248652),$SocialSensor$(FP7BICTB287975),$and$the$COST$Ac/on$IC1003$QUALINET.$$
    • DASH@GPAC: MP4Box & MP42TS !  Multimedia Packagers •  MPEG-2 TS for DASH profiles •  ISOBMFF Packager & Analyser !  DASH Segmenter •  ISOBMFF and M2TS segments -  All DASH profiles supported -  URL-template naming scheme •  Segment indexing (SIDX) •  GOP-align segments or fragments (MediaSourceExtension) •  Automatic AdaptationSet selection -  Media type, codec, language, PAR -  Handle groups (same media but not switchable) !  DASH live simulator -  Manages MPD update and timeline continuityjean.lefeuvre@telecom-paristech.fr http://gpac.sourceforge.net
    • DASHEncoder$•  DASH$Content$Genera/on$Tool$ –  Encoding$+$Mul/plexing$+$MPD$genera/on$ –  Generates$isoffmain$profile$compliant$MPDs$ –  Fully$configurable$using$a$configBfile$ –  Enables$batch$processing$ –  Currently$uses$x264$and$GPAC‘s$MP4Box$ –  Easy$extensible$to$further$$ encoders$&$mul/plexers$ –  hZp://dash.itec.aau.at/$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 27$
    • DASHEncoder$ •  h.264:$ $x264$/$ffmpeg$ •  AAC: $ $ffmpeg$ Encode$ •  [WebM,$etc.]$ •  MP4Box: $Video$/$Audio$/$Video$+$Audio$ •  [e.g.$WebM/MKV$Segmenter]$Container$ •  Generate$one$MPD$ •  Subfolder$Organiza/on$ MPD$ •  MPD$Transforma/on$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 28$
    • Dataset$•  Dataset(with(DASH(Content( –  Long$sequences$in$high$quality$ –  Various$segmentBlength$versions$ –  Free$available$for$DASH$experiments$$ –  PSNR$values$per$frame$•  Problem:(Content(Rights( –  CCBAZribu/on$2.0$Generic$(CCHBY(2.0)$License$or$similar$$ –  Free$to$Share,$Free$to$Remix$ –  Note:$YouTube$introduces$CCBBY$in$June$2011!$•  Nego,a,on(with(content(owner(Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 29$
    • Dataset$Sequences$ Name Source(Quality Length Genre Big$Buck$Bunny$ 1080p$YUV 09:46 Anima/on$$ Elephants$Dream$ 1080p$YUV 10:54 Anima/on$ Red$Bull$Playstreets 1080p,$6$Mbit$H.264$ 01:37:28 Sport$ The$Swiss$Account$ 1080p,$6$Mbit$H.264 57:34 Sport$ Valkaama 1080p,$6$Mbit$H.264$ 01:33:05 Movie$ Of$Forest$and$Men SD 10:53 Movie$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 30$
    • DASH$Dataset$Sequences$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 31$
    • Bitrates$and$Resolu/ons$ # Anima,on Sport Movie 1 50$kbit/s,$$320x240 100$kbit/s,$$320x240 50$kbit/s,$320x240 2 100$kbit/s,$$320x240 150$kbit/s,$$320x240 100$kbit/s,$320x240 3 150$kbit/s,$$320x240 200$kbit/s,$$480x360 150$kbit/s,$$320x240 4 200$kbit/s,$$480x360 250$kbit/s,$$480x360 200$kbit/s,$$480x360 5 250$kbit/s,$$480x360 300$kbit/s,$$480x360 250$kbit/s,$$480x360 6 300$kbit/s,$$480x360 400$kbit/s,$$480x360 300$kbit/s,$$480x360 7 400$kbit/s,$$480x360 500$kbit/s,$$854x480 400$kbit/s,$$480x360 8 500$kbit/s,$$480x360 700$kbit/s,$$854x480 500$kbit/s,$$854x480 9 600$kbit/s,$$854x480$ 900$kbit/s,$$854x480 600$kbit/s,$$854x48010 700$kbit/s,$$854x480$ 1,2$Mbit/s,$$854x480 700$kbit/s,$$854x48011 900$kbit/s,1280x720$ 1,5$Mbit/s,1280x720 900$kbit/s,1280x72012 1,2$Mbit/s,1280x720$ 2,0$Mbit/s,1280x720 1,2$Mbit/s,1280x72013 1,5$Mbit/s,1280x720$ 2,5$Mbit/s,1280x720 1,5$Mbit/s,1280x72014 2,0$Mbit/s,1280x720$ 3,0$Mbit/s,1920x1080 2,0$Mbit/s,1920x108015 2,5$Mbit/s,1920x1080$ 4,0$Mbit/s,1920x1080 2,5$Mbit/s,1920x108016 3,0$Mbit/s,1920x1080$ 5,0$Mbit/s,1920x1080 3,0$Mbit/s,1920x108017 4,0$Mbit/s,1920x1080 6,0$Mbit/s,1920x1080 4,0$Mbit/s,1920x108018 5,0$Mbit/s,1920x1080 $ 5,0$Mbit/s,1920x108019 Oct$29,$2012$ 6,0$Mbit/s,1920x1080 $ DASH$Tutorial,$ACM$Mul/media$2012$ 6,0$Mbit/s,1920x1080 32$20 8,0$Mbit/s,1920x1080 $ $
    • DASH$Content$Types$•  Segment(Size:$ –  Seconds:$1,$2,$4,$6,$10,$15$•  File(Organiza,on( –  Segmented$ –  One$file$per$representa/on,$Byte$Range$Requests$•  e.g.:(Big(Buck(Bunny( –  (120(Encodings$needed$ –  Only$6(DASH(Encoder$runs$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 33$
    • DASH@GPAC: Playback!  DASHClient !  Integrated in Osmo4 •  DASH ISOBMFF, M2TS (+ HLS) •  Many input formats and -  With or without bitstreamSwitching codecs -  Support for multiple Periods •  Composition engine •  All profiles except onDemand (SVG, BIFS, X3D) (ongoing) !  Try it! -  VoD through « live » or « main » •  Included in libgpac •  Local files and http(s) playback •  Independent from player •  Various download policies GPAC DASH MPD Playback Media Bring Your Own Segments DASH APP !!jean.lefeuvre@telecom-paristech.fr http://gpac.sourceforge.net
    • DASH$VLC$Plugin$Architecture$•  Four$major$ components$and$ two$controller$ classes$•  Easy$Adapta/on$ Logic$Interface$for$ Researchers$and$ Developers$•  Flexible$HTTP$ structure$for$further$ improvements$e.g.$ persistent$ hZp://dash.itec.aau.at/$ connec/ons$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 35$
    • DASH$VLC$Plugin$Features$•  Officially$part$of$VLC$and$as$library$(libdash)$•  Provides$a$simple$interface$to$integrate$new$ Adapta/on$Logics$•  Dynamic$adapta/on$to$the$available$bandwidth$•  Flexible$for$further$improvements,$e.g.,$profiles,$ persistent$connec/ons$and$pipelining$•  Source$code$is$available$through$the$VLC$git$ repository$and$at:$ hZp://wwwBitec.aau.at/dash$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 36$
    • VLC$Architecture$•  Interface:$User$ interac/on$e.g.$stop,$play$ etc.$•  Access:$HTTP,$RTP$etc.$•  StreamBFilter:$Recording,$ Dynamic$Streaming$•  Demux:$MP4,$M2TS,$ MKV$•  Decoder:$H264,$VP8$etc.$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 37$
    • DASH$in$JavaScript$(DASHBJS)$•  Completely$implemented$in$JavaScript$–$no$ (3rd$party)$plugins$required$•  Makes$use$of$the$Media$Source$API$provided$ by$Google$Chrome$ –  Support$for$WebM$and$ISOBMFF$•  Provides$/me$based$and$byte$based$buffers$ –  E.g.,$use$as$input$for$adapta/on$logics$•  Flexible$adapta/on$logics$ –  Easy$to$extend$exis/ng$ones$or$integrate$your$ own$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 38$
    • DASHBJS$Architecture$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 39$
    • DASHBJS$(cont’d)$•  Bandwidth$/$throughput$es/ma/on$ –  …$is$done$each$/me$a$segment$is$retrieved$ –  At$the$beginning$the$MPD$is$used$to$have$an$educated$guess$on$the$ bandwidth$ –  To$bypass$proxy$caching$“noBcache”$is$set$in$the$HTTP$Request$Header$ (will$influence$the$throughput$es/ma/on)$•  Representa/on$selec/on$is$based$on:$ w1bn−1 + w2 bm bn = w1 + w2 –  bnB1$denotes$the$throughput$calculated$at$the$nB1th$segment$ –  bm$depicts$the$throughput$measured$with$the$nth$segment$ –  bn$is$used$to$decide$which$representa/on$should$be$selected$ –  The$weights$(w1$and$w2)$are$used$to$mimic$op/mis/c$or$pessimis/c$ behavior$•  Simple$adapta/on$logic,$easy$to$extend,$modify…$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 40$
    • Showcases$•  Sintel$Trailer$@$480p$ –  5$representa/on$from$200$kbps$to$2000$kbps$video$bitrate$ –  128$kbps$audio$for$all$representa/ons$ –  Showcase:$hZp://wwwBitec.uniBklu.ac.at/dash/js/dashtest.html$$ –  MPD:$hZp://wwwBitec.uniBklu.ac.at/dash/js/content/sintel_mul/_rep.mpd$•  Big$Buck$Bunny$@$480p$ –  7$representa/ons$from$200$kbps$to$4700$kbps$video$bitrate$ –  128$kbps$audio$for$all$representa/ons$ –  Showcase:$hZp://wwwBitec.uniBklu.ac.at/dash/js/dashtestBbunny.html$$ –  MPD:$hZp://wwwBitec.uniBklu.ac.at/dash/js/content/bigbuckbunny.mpd$•  Big$Buck$Bunny$@$1080p$ –  7$representa/ons$from$1000$kbps$to$8000$kbps$ –  128$kbps$audio$for$all$representa/ons$ –  Showcase:$hZp://wwwBitec.uniBklu.ac.at/dash/js/dashtestBbunny1080p.html$$ –  MPD:$hZp://wwwBitec.uniBklu.ac.at/dash/js/content/bigbuckbunny_1080p.mpd$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 41$
    • Conclusions$•  EndBtoBend$DASH$tools$available$ –  GPAC$provides$support$for$ISOBMFF,$M2TS,$and$beyond$ –  DASH$VLC$plugin$and$libdash$(world$first$DASH$player)$ –  DASHBJS$for$easy$Web$integra/on$(HTML5,$Javascript)$•  Flexible$architecture,$easy$to$extend,$e.g.:$ –  Add$your$own$profile$(!!!)$ –  Add$your$own$buffer$model$ –  Add$your$own$bandwidth$es/ma/on,$adapta/on$logic$•  Open$source:$hZp://dash.itec.aau.at$|$ hZp://gpac.sourceforge.net$ –  Feel$free$to$use$it,$please$acknowledge/reference$us$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 42$
    • An(Evalua,on(of(Dynamic(Adap,ve(Streaming( over(HTTP(in(Vehicular(Environments( Christopher(Müller,(Stefan(Lederer,(and(Chris,an(Timmerer( (AlpenHAdriaHUniversität(Klagenfurt((AAU)(!(Faculty(of(Technical(Sciences((TEWI)(!(Department(of(Informa,on( Technology((ITEC)(!(Mul,media(Communica,on((MMC)(!(Sensory(Experience(Lab((SELab)( hZp://research./mmerer.com$!$hZp://blog./mmerer.com$!$hZp://dash.itec.aau.at/ mailto:chris/an./mmerer@itec.uniBklu.ac.at$ ACM(Mul,media(2012( 29th(October,(2012( Acknowledgments.$This$work$was$supported$in$part$by$the$European$Commission$in$the$context$of$the$ALICANTE$project$(FP7B ICTB248652),$SocialSensor$(FP7BICTB287975),$and$the$COST$Ac/on$IC1003$QUALINET.$$
    • Methodology$•  Experiment(1(/(Track(1((601(seconds)$ –  Drive$on$the$freeway$A2,$passing$by$the$city$of$Villach$in$the$direc/on$to$ Klagenfurt.$•  Experiment(2(/(Track(2((575(seconds)$ –  From$the$AlpenBAdriaBUniversität$Klagenfurt$on$the$freeway$A2$un/l$the$ service$area$around$Techelsberg.$•  Experiment(3(/(Track(3((599(seconds)$ –  From$the$service$area$around$Techelsberg$on$the$freeway$A2$to$the$exit$of$ Klagenfurt.$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 44$
    • Metrics$•  Average$bitrate$ –  Overall$performance$for$the$en/re$session$•  Number$of$quality$switches$ –  Different$representa/on$due$available$bandwidth$•  Buffer$level$ –  Es/mated$with$download$/mestamp$(DTS)$and$ presenta/on$/mestamp$(PTS)$•  Number$of$unsmooth$seconds$ –  Buffer$empty$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 45$
    • Experimental$Setup$•  Bandwidth$Shaping$ –  Ubuntu$11.04$w/$Linux$hierarchical$token$bucket$(htb)$ –  Available$bandwidth$will$be$adjusted$every$2s$due$to$the$recorded$ traces$and$2s$segment$length$•  Network$Emula/on$ –  Emulates$a$round$trip$/me$of$150ms$•  HTTP$Server$ –  Server$based$on$Windows$Server$2008$and$IIS$/$Ubuntu$11.04$and$ Apache$Web$Server$•  Evalua/on$Client$ –  Windows$or$Linux$depending$on$the$evalua/on$system$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 46$
    • Dataset$•  All$experiments$have$been$performed$with$ the$same$content$based$on$[Lederer2012]$•  The$content$has$been$encoded$with$x264$•  14$different$bitrates$from$100kbps$to$ 4500kbps$•  Segments$with$a$length$of$2$seconds$ –  Restricted$by$Microsor$Smooth$Streaming$•  That$content$has$been$used$for$all$three$ scenarios$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 47$
    • Microsor$Smooth$Streaming$•  Client$based$on$Windows$7,$Microsor$ Silverlight$and$Firefox$7$•  Server$based$on$Windows$Server$2008$and$IIS$ with$Media$Services$4.0$•  Content$has$been$mul/plexed$with$IIS$ Transform$Manager$1.0$Beta$•  PTS$has$been$taken$from$the$request$URL$•  DTS$comes$from$the$bandwidth$emula/on$ node$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 48$
    • Microsor$Smooth$Streaming$(cont’d)$•  Few$switches$with$a$good$average$bitrate$•  Nevertheless$close$to$unsmoothness$at$second$300$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 49$
    • Adobe$Dynamic$HTTP$Streaming$•  Client$is$based$on$Ubuntu$11.04,$Firefox$7$and$ the$Open$Source$Media$Framework$player$•  The$server$component$hosts$the$Flash$Media$ Server$in$development$edi/on$•  The$content$has$been$generated$with$the$ Adobe$File$Packager$for$Adobe$Dynamic$ Streaming$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 50$
    • Adobe$Dynamic$HTTP$Streaming$(cont’d)$•  High$number$of$unsmooth$seconds$•  Rather$binary$and$unpredictable$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 51$
    • Apple$HTTP$Live$Streaming$•  Client$is$based$on$Mac$OS$X$Snow$Leopard$ 10.6$and$Safari$5$•  Content$has$been$generated$with$Microsor$ Transform$Manager$ –  Transmul/plexing$of$mp4$to$MPEGB2$TS$ –  Chops$the$transport$stream$into$segments$of$2$ seconds$length$•  The$only$system$that$uses$MPEGB2$TS$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 52$
    • Apple$HTTP$Live$Streaming$(cont’d)$•  Very$few$switches$with$a$lower$bitrate$•  Large$buffer$for$energy$awareness$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 53$
    • Our$MPEGBDASH$Implementa/on$•  Client:$DASH$VLC$Plugin$[Mueller2011]$on$ Ubuntu$11.04$$•  Server:$Ubuntu$11.04$which$hosts$an$Apache$ Web$server$•  Content$based$on$DASH$dataset$generated$ with$DASHEncoder$•  Simple$(naïve)$adapta/on$logic$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 54$
    • Our$MPEGBDASH$Implementa/on$(cont’d)$•  Non$stepwise$switching$$•  Good$average$bitrate$and$stable$buffer$$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 55$
    • MPEGBDASH$AVC$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 56$
    • MPEGBDASH$SVC$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 57$
    • Summary$ Name( Average(Bitrate( Average(Switches( Average(Unsmoothness( [kbps]( [Number(of(Switches]( [Seconds]( Microsor$ 1522$ 51$ 0$ Adobe$ 1239$ 97$ 64$ Apple$ 1162$ 7$ 0$ MPEGBDASH$ 1045$ 141$ 0$ Naïve*$ MPEGBDASH$ 1464$ 166$ 0$ Pipelined*$ MPEGBDASH$ 2341$ 81$ 0$ AVC**$ MPEGBDASH$ 2738$ 101$ 0$ SVC**$*$…$MoVid/MMSys,$February$2012$**$…$EUSIPCO,$August$2012$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 58$
    • Conclusions$•  Microsor$Smooth$Streaming$ –  Performs$very$well$w.r.t.$average$bitrate$ –  Yes,$deserves$the$name$smooth$streaming$•  Apple$HLS$ –  Less$quality$switches$due$to$large$buffer$ –  Designed$for$mobile$devices,$energy$awareness$•  Adobe$HDS$ –  Binary$decision$between$the$highest$and$the$lowest$representa/on$ –  Stalls,$reBbuffering$=>$low$QoE$$•  Our$MPEGBDASH$implementa/on$ –  Achieves$a$good/superior$average$bitrate$ –  In$striking$distance$to$the$top,$space$for$improvements$though$(e.g.,$buffer$ management)$•  Disclaimer:$comparison$of$specific$client$implementa/ons,$not$formats$ (manifest/segment),$not$technology$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 59$
    • DASH$@$AAU/ITEC$ hZp://dash.itec.aau.at/$ $ DASH$VLC$Plugin$ $ DASHEncoder$ $ libdash$ $ Dataset$ $ DASHBJS$ $ Join$this$ac/vity,$everyone$ is$invited$–$get$involved$in$ and$exited$about$DASH!$ $Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 60$
    • Acknowledgments$•  EC$projects$for$par/ally$funding$this$ac/vity$ –  ALICANTE$project$(FP7BICTB248652)$ •  hZp://www.ictBalicante.eu$ –  SocialSensor$project$(FP7BICTB287975)$ •  hZp://www.socialsensor.org$ –  COST$ICT$Ac/on$IC1003$ •  QUALINET$–$European$Network$on$Quality$ of$Experience$in$Mul/media$Systems$and$Services$ •  hZp://www.qualinet.eu/$•  DASH$Industry$Forum$ –  hZp://www.dashif.com$•  Christopher$Müller:$VLC$Plugin,$libdash$•  Stefan$Lederer:$DASHEncoder,$dataset,$DASHBJS$•  Benjamin$Rainer:$DASHBJS$•  Hermann$Hellwagner$for$his$advice$and$feedback$•  ISO/IEC$MPEG$and$its$par/cipa/ng$members$for$their$construc/ve$ feedback$during$the$standardiza/on$process$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 61$
    • References$•  Christopher$Müller,$Daniele$Renzi,$Stefan$Lederer,$Stefano$Baàsta$and$Chris/an$Timmerer,$“Using$ Scalable$Video$Coding$for$Dynamic$Adap/ve$Streaming$Over$HTTP$in$Mobile$Environments”,$In$ Proceedings$of$the$20th$European$Signal$Processing$Conference$2012,$Bucharest,$Romania,$August$ 27B31,$2012.$•  Benjamin$Rainer,$Stefan$Lederer,$Christopher$Müller$and$Chris/an$Timmerer,$“A$Seamless$Web$ Integra/on$of$Adap/ve$HTTP$Streaming”,$In$Proceedings$of$the$20th$European$Signal$Processing$ Conference$2012,$Bucharest,$Romania,$August$27B31,$2012.$•  Stefan$Lederer,$Christopher$Müller$and$Chris/an$Timmerer,$“PeerBAssisted$Dynamic$Adap/ve$ Streaming$over$HTTP$–$System$Design$and$Evalua/on”,$In$Proceedings$of$the$IEEE$Interna/onal$ Packet$Video$Workshop$2012,$Munich,$Germany,$May$10B11,$2012.$•  Christopher$Müller,$Stefan$Lederer$and$Chris/an$Timmerer,$“An$Evalua/on$of$Dynamic$Adap/ve$ Streaming$over$HTTP$in$Vehicular$Environments”,$In$Proceedings$of$the$4th$ACM$Workshop$on$ Mobile$Video,$Chapel$Hill,$North$Carolina,$February$24,$2012.$•  Stefan$Lederer,$Christopher$Müller$and$Chris/an$Timmerer,$“Dynamic$Adap/ve$Streaming$over$ HTTP$Dataset”,$In$Proceedings$of$the$ACM$Mul/media$Systems$Conference$2012,$Chapel$Hill,$North$ Carolina,$February$22B24,$2012.$•  Christopher$Müller$and$Chris/an$Timmerer,$“A$VLC$Media$Player$Plugin$enabling$Dynamic$Adap/ve$ Streaming$over$HTTP”,$In$Proceedings$of$the$ACM$Mul/media$2011,$ScoZsdale,$Arizona,$November$ 28,$2011.$•  Christopher$Müller$and$Chris/an$Timmerer,$“A$TestBBed$for$the$Dynamic$Adap/ve$Streaming$over$ HTTP$featuring$Session$Mobility”,$In$Proceedings$of$the$ACM$Mul/media$Systems$Conference$ 2011,$San$Jose,$California,$February$23B25,$2011.$•  Chris/an$Timmerer$and$Christopher$Müller,$“HTTP$Streaming$of$MPEG$Media”,$In$Proceedings$of$ the$Streaming$Day$2010,$Udine,$Italy,$September$16B17,$2010.$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 62$
    • IEEE$JSAC:$Adap/ve$Media$Streaming$ •  Guest$Editors$ –  Chris/an$Timmerer,$AlpenBAdriaB Universität$Klagenfurt,$Austria$ –  Ali$C.$Begen,$CISCO,$Canada$ –  Thomas$Stockhammer,$QUALCOMM,$ USA$ –  Carsten$Griwodz,$Simula$Research$ Laboratory,$Norway$ –  Bernd$Girod,$Stanford$University,$USA$ •  Important$Dates$ –  1st$Submission:$Apr$1,$2013$ –  Reviews$Available:$Jul$1,$2013$ –  2nd$Submission:$Aug$31,$2013$ –  Final$Acceptance$Decision:$Oct$31,$2013$ –  CameraBready:$Dec$1,$2013$ –  Publica/on:$2nd$quarter$2014$hZp://mul/mediacommunica/on.blogspot.com/2012/07/jsacBspecialBissueBadap/veBmedia.html$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 63$
    • Thank$you$for$your$aZen/on$ ...$ques/ons,$comments,$etc.$are$welcome$…$ $ $ $Ass.BProf.$Dipl.BIng.$Dr.$Chris/an$Timmerer$ Klagenfurt$University,$Department$of$Informa/on$Technology$(ITEC)$ Universitätsstrasse$65B67,$AB9020$Klagenfurt,$AUSTRIA$ chris/an./mmerer@itec.uniBklu.ac.at$ hZp://research./mmerer.com/$ Tel:$+43/463/2700$3621$Fax:$+43/463/2700$3699$ ©Copyright:Chris#anTimmererOct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 64$
    • A Comparison of Quality Scheduling inCommercial Adaptive HTTP Streaming Solutions on a 3G Network Haakon Riiser, Håkon S. Bergsaker, Paul Vigmostad, Pål Halvorsen, Carsten Griwodz
    • Fluctuating Bandwidth ProblemUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Fluctuating Bandwidth Problem Ferry Subway Question: How well do adaptive streaming media solutions adapt? Bus TramUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Adaptive Delivery: Tested Systems!  Adobe Strobe Media Playback (v1.6.328 for Flash 10.1) using HTTP Dynamic Streaming Format!  Apple’s native iPad player (iOS v4.3.3) using native HLS format!  Microsoft Silverlight/IIS Smooth (v4.0.60531.0 on Win7) using native Smooth format and default desktop scheduler!  Netview Media Client (v2011-10-10) using Apple HLS format (worst case) and Netview 3G schedulerServer!  Apache v2.2.14!  CodeShop Unified Streaming Platform v1.4.25!  Throttling module for trace-based bandwidth limitation, 1sec resolution University of Oslo DASH Tutorial, ACM Multimedia 2012
    • Adaptive Delivery: Test Content!  Video: Norwegian football game (i.e. soccer)!  H.264/AVC Why is the bandwidth!  2 second segments increase non-linear? Bitrate increase Akamai recommendations provides dimishing!  6 quality levels: 250, 500, 750, 1000, 1500, 3000 kbps return on visual quality increase. The just noticable difference is not achieved at 250 kbps steps.University of Oslo DASH Tutorial, ACM Multimedia 2012
    • Comparison of Existing Quality Schedulers Bus: Configured for desktops Ferry: Configured for mobilesUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Comparison of Existing Quality Schedulers Metro: For the Netview algorithm see: “Video Streaming Using a Location-based Bandwidth-Lookup Service for Bitrate Planning”, Haakon Riiser, Tore Endestad, Paul Vigmostad, Carsten Griwodz, Pål Halvorsen, TOMCCAP, July 2012University of Oslo DASH Tutorial, ACM Multimedia 2012
    • Conclusion Difference between players’ quality scheduler dominates the overhead Adobe: maximizes aggressiveness at the expense of stability Apple: maximize stability at the expense of aggressiveness Microsoft Silverlight: good compromise Netview: similar to Microsoft, outperforms in this configuration !  Many people commute using the same route !  Many mobile devices have GPS receivers !  What about crowdsourcing the throughput on the commute paths at various times of day?University of Oslo DASH Tutorial, ACM Multimedia 2012
    • A Comparison of Quality Scheduling inCommercial Adaptive HTTP Streaming Solutions on a 3G Network Haakon Riiser, Håkon S. Bergsaker, Paul Vigmostad, Pål Halvorsen, Carsten Griwodz
    • Prediction Metro: Location-based bandwidth-lookup service for bitrate (video quality) planning: Algorithm: !  Calculate the predicted amount of data that historically can be downloaded !  Calculate maximum steady quality without getting buffer-underruns !  Safety: reactive algorithm fallbackUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Prediction: Metro Metro: From: “Video Streaming Using a Location-based Bandwidth-Lookup Service for Bitrate Planning”, Haakon Riiser, Tore Endestad, Paul Vigmostad, Carsten Griwodz, Pål Halvorsen, TOMCCAP, July 2012University of Oslo DASH Tutorial, ACM Multimedia 2012
    • Quality-of-Experience Considerations withRelevance for Adaptive HTTP Streaming Pengpeng Ni, Ragnhild Eg, Alexander Eichhorn, Pål Halvorsen, Carsten Griwodz
    • Adaptive Delivery: Test Content!  Video: Norwegian football game (i.e. soccer)!  H.264/AVC!  2 second segments Question: What is “good” adaptation? Akamai recommendations!  6 quality levels: 250, 500, 750, 1000, 1500, 3000 kbpsUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Why visual quality studies? UDP-based streaming DASH & similar   resists packets loss –  scales to available bandwidth   random loss –  congestion loss Applications Applications –  Commercial VoD: Netflix,   IPTV Akamai, Microsoft, Apple,   DVD-H Comoyo, ...   video conferencing –  MPEG DASH   classical RTSP/RTP servers –  Free VoD: Youtube, Metacafe, Dailymotion, Vimeo, Revver, Flixya ... Internet Client WLAN ServerUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Why visual quality studies? UDP-based streaming DASH & similar Resilience to packet loss Resilience to buffer underruns Possibly resilience to bit errors Active adaptation (client- side decision) Possibly active adaptation (server-side decision) Internet Client WLAN ServerUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • PSNR Peak Signal-to-Noise Ratio A prevalent video quality metric (2B − 1)2 PSNR = 10log10 MSE where: 1 M N MSE = ∑∑ [Ima (x, y) − Imb (x, y)]2 MN y =1 x =1 M, N = image dimensions Ima , Imb = pictures to compare B= bit depthUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • User experience: reduced PSNRUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • PSNR ReferenceExample fromProf. Touradj Ebrahimi,ACM MM09 keynotePSNR = 24.9 dB PSNR = 24.9 dB PSNR = 24.9 dB University of Oslo DASH Tutorial, ACM Multimedia 2012
    • PSNR Peak Signal-to-Noise Ratio A prevalent video quality metric In addition to this: •  several different PSNR computations for color images •  different PSNR for different color spaces (RGB,YUV) •  visible influence of the encoding format These problems hurts all metrics that are based on PSNR Improved by image quality metrics such as •  SSIM variants •  rate distortion metricsUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Conclusion You encounter Quality-of-Experience measurements based on PSNR everywhere in the literature. •  it is very easy to compute •  it is probably working to assess the quality of images with bit errors Be very careful when you encounter 1.  PSNR-based objective metrics 2.  adaptation mechanisms whose effectiveness is proven by PSNR !  It’s easy to complain. !  But how to do better?University of Oslo DASH Tutorial, ACM Multimedia 2012
    • QoE Effects of Changing Layers in Adaptive HTTP Streaming Pengpeng Ni, Ragnhild Eg, Alexander Eichhorn, Pål Halvorsen, Carsten Griwodz, Michael Zink
    • Image-based metrics can fail badly: FlickeringUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Layered content Used SPEG as layer encoded video format [avail. from C. Krasic, UBC] shape 1 shape 2 layers layersA frames frames amplitude of layer variation layers layersB frames frames frequency of layer variationUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Layered content Comparing PSNR with layer change counting: S(v) = − v i+1 ∑v i These observations discredit v i ∈v PSNR, where v is the vector of frames and vi is the number of layers of a but they don’t provide a real alternative. frame These observations indicate that frequentE change Shape € A B C D F G is problematic. PSNR of shape 1 62.86 61.46 63.15 48.01 49.40 66.02 29.84 PSNR of SPEG 2 outdated. 73.28 52.38 25.08 26.95 63.28 64.30 But shape is 49.47 SPEG scaling decisions were based on intuition. S(v)Adaptive1HTTP Streaming today is based 2 H.264. of shape 2 6 2 2 on 0.5 0 S(v) of shape 2 2 4 1 0 0 0.5 2 Subjective assessment 0.35 0.55 0.73 1.18 1.02 2.18 -0.24University of Oslo DASH Tutorial, ACM Multimedia 2012
    • Layer fluctuation in scalable video streamingUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • We need guidelines for video adaptation strategies To cope with the bandwidth fluctuation, which scalability dimension is generally preferable for video adaptation? Within each dimension, which scaling pattern generates the least annoying flicker effect? Is it possible to control the annoyance of flicker effects? How is subjective video quality related to other factors, such as content, devices?University of Oslo DASH Tutorial, ACM Multimedia 2012
    • We investigate visual artifact issues via several subjective tests Previous Findings   Human perception of video quality are content and context dependent   There is no general preference order of scaling dimensions   High frequency may cause flicker effect that is regarded as worse than constant low image quality   In mobile scenario, a frame rate above 12 fps does not cause noticeable visual artifacts   In HDTV scenario, a frame rate of 12 fps does generate noticeable motion jerkiness Challenges of subjective tests:   Efficient and reliable experimental design that avoids fatigue and learning effectUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Flickering effects: the visual artifacts caused by layer fluctuation in scalable video Flicker arises from recurrent changes in spatial or temporal quality, some so rapid that the human visual system only perceives fluctuations within the video. Noise flicker Blur flicker Motion flicker Compression scaling Resolution scaling Frame rate scalingUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Blurriness flicker exampleBlur flickerAmplitude: 480x320px – 120x80pxFrequency: 10f / 3 Hz University of Oslo DASH Tutorial, ACM Multimedia 2012
    • Noise flicker exampleNoise flickerAmplitude: QP24 – QP40Frequency: 90f / 0.33 Hz University of Oslo DASH Tutorial, ACM Multimedia 2012
    • Motion flicker exampleMotion flickerAmplitude: 30fps – 3fpsFrequency: 6f / 5 Hz University of Oslo DASH Tutorial, ACM Multimedia 2012
    • How to describe different layer fluctuations?Layer fluctuation pattern -  Frequency: The time interval it takes for a video sequence return to its previous status -  Amplitude: The quality difference between the two layers being switched -  Dimension: Spatial or temporal, artifact type Layer Frequency and Amplitude are the interesting factors in our subjective test University of Oslo DASH Tutorial, ACM Multimedia 2012
    • Layer fluctuation pattern in Spatial dimension Full bit stream, QH F =1/2, A = QH-QL F = 1/4 , A = QH-QL F = 1/6 , A = QH-QLF = 1/24 , A = QH-QL Sub stream QL Bandwidth consumption in all of the changing patterns is the same, due to the same amplitude. References QH and QL differ.University of Oslo DASH Tutorial, ACM Multimedia 2012
    • Layer fluctuation pattern in Temporal dimension Full bit stream, 30fps F =1/4, A = 30-15fps F = 1/8 , A = 30-15fpsF = 1/12 , A = 30-15fpsF = 1/24 , A = 30-15fps Sub stream 15fps Although the average bit-rate is the same, the visual experience of different patterns may not be identical. University of Oslo DASH Tutorial, ACM Multimedia 2012
    • Method Participants Procedure •  28 paid, voluntary participants •  Field study at university library •  9 females, 19 males •  Presented on iPod touch devices •  Age 19 – 41 years (mean 24) - Resolution 480x320 •  Self-reported normal hearing, - Frame rate 30 fps and normal/corrected vision •  12 sec video duration •  Random presentations •  Optional number of blocksUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Stability scores - Period 100 %100 % 100 % 90 % 90 % 90 % 80 % 80 % 80 % 70 % 70 % 70 % 60 % 60 % 60 % 50 % Unstable 50 % Unstable 50 % 40 % 40 % 40 % Stable Stable 30 % 30 % 30 % 20 % 20 % 20 % 10 % 10 % 10 % 0% 0% 0% HQ LQ HQ LQ 10f 30f 60f 90f 10f 30f 60f 90f 180f 180f 6f 6f HQ 30f 60f 90f 180f LQ Perceived quality stability Perceived quality stability Perceived quality stability across period levels for across period levels for across period levels for Noise flicker Blur flicker Motion flickerUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Stability scores - Amplitude 100 % 100 % 100 % 90 % 90 % 90 % 80 % 80 % 80 % 70 % 70 % 70 % 60 % 60 % 60 % Unstable 50 % Unstable 50 % 50 % 40 % 40 % Stable Stable 40 % 30 % 30 % 30 % 20 % 20 % 20 % 10 % 10 % 10 % 0% 0% 240x160 120x80 0% QP28 QP32 QP36 QP40 px 15fps 10fps 5fps 3fps Perceived quality stability Perceived quality stability Perceived quality stability across amplitude levels for across amplitude levels for across amplitude levels for Noise flicker Blur flicker Motion flickerUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Video quality 2 Constant high quality QP 28 QP 32 QP 36 referencesMean Acceptance Score QP 40 1 Constant low quality 0 reference, QP28 −1 Not investigated here: relation between qualities −2 HQ 6f 10f 30f 60f 90f 180f LQ Period Noise L1 QP24 L0 QP28, QP32, QP36, QP40 Period 1/5s, 1/3s, 1s, 2s, 3s, 6s Content 4 mid/long distance shots From: “Flicker Effects in Adaptive Video Streaming to Handheld Devices”, Pengpeng Ni, Ragnhild Eg, Alexander Eichhorn, Carsten Griwodz, Pål Halvorsen ACM Multimedia 2011 University of Oslo DASH Tutorial, ACM Multimedia 2012
    • Acceptance - Noise flicker 2 QP 28 QP 32 QP 36 Mean Acceptance Score QP 40 1 0 −1 −2 HQ 6f 10f 30f 60f 90f 180f LQ PeriodUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Acceptance – Blur flicker 2 240x160 Mean Acceptance Score 120x80 1 0 −1 −2 HQ 6f 10f 30f 60f 90f 180f LQ PeriodUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Acceptance – Motion flicker 2 15 fps 10 fps 5 fps Mean Acceptance Score 3 fps 1 0 −1 −2 HQ 30f 60f 90f 180f LQ PeriodUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Conclusions With longer flicker frequencies (high periods), acceptance of video quality increases in the spatial dimension Amplitude (quality difference) has larger effect than frequency, both for stability and acceptance For noise flicker, large quality differences are rated more acceptable with less frequent quality shifts. For blur flicker, improved acceptance with less frequent shifts is more pronounced for the smallest quality difference. The flicker effect varies across contents, particularly for motion flicker. The three types of flicker have different influences on stability and quality acceptance scores. Scores are generally lower for blur flicker.University of Oslo DASH Tutorial, ACM Multimedia 2012
    • Network Behaviour of DASH Traffic Tomas Kupka, Pål Halvorsen, Carsten Griwodz
    • Stream liveness!  The time it takes for an event to appear on the screenLiveness = 0s playout University of Oslo DASH Tutorial, ACM Multimedia 2012
    • Live traffic pattern Segmented live stream Limiting factors: Download synchronization -  Server speed -  Client speed Connection is idle -  Client buffer size -  Segment availability bandwidth time 2s 2sUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • VoD traffic pattern Segmented video file Limiting factors: -  Server speed -  Client speed -  Client buffer size •  not in real systems bandwidth •  buffer size is limited •  behaviour like live etc. when buffer is full timeUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Transporting DASH 1. Does the request synchronization lead to problem? 2. Can we reduce such problem?Experiments with ns-2 Clients •  20 min. stream •  6 bitrates (250 to 3000 kb/s) •  2 sec. segments •  TCP CC CUBIC Bottleneck link 100 mb/s Web serverUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Evaluated modificationsTCP congestion control alternatives TCP’s behave differently for short On traffic NewReno CUBIC CWND CWND time time University of Oslo DASH Tutorial, ACM Multimedia 2012
    • TCP congestion control alternatives Liveness Router queue dropsUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • TCP congestion control alternatives packet losses CUBIC Vegaslonger router queue TCP Vegas shares the network much better than TCP CUBIC Unfortunately, TCP Vegas looses to all other TCPs in sharing University of Oslo DASH Tutorial, ACM Multimedia 2012
    • TCP congestion control alternativeslowest quality highest quality left: Cubic, right: Vegas" Vegas delivers better liveness Cubic delivers higher quality University of Oslo DASH Tutorial, ACM Multimedia 2012
    • Evaluated modifications Increasing segment length: give TCP more time vs. 2 second segments 10 second segmentsUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • 2 second vs. 10 second segmentslowest quality highest quality TCPTCP gets out of slowstart CWND for 2 sec. segments Quality not better for longer segments high Quality low University of Oslo DASH Tutorial, ACM Multimedia 2012
    • Evaluated modifications Request distribution: avoid request synchronization R1 R2 R1 R2 R3 R3 vs. S1 available S1 availableUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Client request distribution Client A: S1 S2 S3 time Client B: S1 S2 S3 timeUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Client request distribution Synchronous requests Distributed requestsUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Client request distributionlowest quality highest quality Distribution of the number of segments of different quality left: Sychronized, right: Distributed" University of Oslo DASH Tutorial, ACM Multimedia 2012
    • Evaluated modificationsCWND limit: restrict CWND to the max. bitrate available CWND timeUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Client request distribution Liveness Router queue dropsUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • CWND limitation Liveness Router queue dropsUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • Conclusion TCP CC alternatives: TCP Vegas is good, but not practical Segment duration: No evidence of longer segments being better (network view) Client request distribution leads to good quality and liveness CWDN limitation leads to better fairnessUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
    • DASH Tutorial: Summary Introduction to MPEG DASH DASH tools Examples of DASH (and DASH-like) systems’ performance QoE considerations Interaction of DASH and TCPUniversity of Oslo DASH Tutorial, ACM Multimedia 2012