60 likes | 262 Views
Building a Seamless Mobile Video Experience. Harvard University CSCI E-139, Spring 2013. Kenneth Ho kennethho01@fas.harvard.edu. HTTP Streaming. FILE1.TS 0:00 – 0:10. FILE2.TS 0:10 – 0:20. FILE3.TS 0:20 – 0:30. FILE4.TS 0:30 – 0:40. Download. Time. FILE1.TS. FILE2.TS. FILE3.TS.
E N D
Building a Seamless Mobile Video Experience Harvard University CSCI E-139, Spring 2013 Kenneth Ho kennethho01@fas.harvard.edu
HTTP Streaming FILE1.TS 0:00 – 0:10 FILE2.TS 0:10 – 0:20 FILE3.TS 0:20 – 0:30 FILE4.TS 0:30 – 0:40 Download Time FILE1.TS FILE2.TS FILE3.TS Playback Transfer and buffer video files, and use HTTP for file transfer as that is its forte
Adaptive Streaming Bandwidth FILE1_HD.TS FILE2_HD.TS FILE3_HD.TS FILE4_HD.TS FILE1_HI.TS FILE2_HI.TS FILE3_HI.TS FILE4_HI.TS FILE1_MID.TS FILE2_MID.TS FILE3_MID.TS FILE4_MID.TS FILE1_LOW.TS FILE2_LOW.TS FILE3_LOW.TS FILE4_LOW.TS Time Give the streaming client a list of available files and bandwidth information, and let the client select the best file for its own bandwidth situation
HTTP Live Streaming http://184.72.239.149/vod/smil:BigBuckBunny.smil/playlist.m3u8 #EXTM3U #EXT-X-VERSION:3 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=560000,RESOLUTION=560x320 chunklist-b560000.m3u8?wowzasessionid=988936658 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=280000,RESOLUTION=280x160 chunklist-b280000.m3u8?wowzasessionid=988936658 chunklist-b280000.m3u8 #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:13 #EXT-X-MEDIA-SEQUENCE:1 #EXTINF:12.5, media-b280000_1.ts?wowzasessionid=988936658 #EXTINF:12.5, media-b280000_2.ts?wowzasessionid=988936658 #EXTINF:12.5, media-b280000_3.ts?wowzasessionid=988936658 #EXTINF:12.5, media-b280000_4.ts?wowzasessionid=988936658 #EXTINF:12.5, media-b280000_5.ts?wowzasessionid=988936658 chunklist-b560000.m3u8 #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:13 #EXT-X-MEDIA-SEQUENCE:1 #EXTINF:12.5, media-b560000_1.ts?wowzasessionid=988936658 #EXTINF:12.5, media-b560000_2.ts?wowzasessionid=988936658 #EXTINF:12.5, media-b560000_3.ts?wowzasessionid=988936658 #EXTINF:12.5, media-b560000_4.ts?wowzasessionid=988936658 #EXTINF:12.5, media-b560000_5.ts?wowzasessionid=988936658 #EXTINF:12.5, media-b560000_6.ts?wowzasessionid=988936658 An easy to read top-level playlist and related playlists that provides resolution and bandwidth information to a client, allowing the client to select its optimal stream
MPEG-DASH http://www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/BigBuckBunny/MPDs/BigBuckBunnyNonSeg_1s_isoffmain_DIS_23009_1_v_2_1c2_2011_08_30.mpd <?xml version="1.0" encoding="UTF-8"?> <MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:DASH:schema:MPD:2011" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011" profiles="urn:mpeg:dash:profile:isoff-main:2011" type="static" mediaPresentationDuration="PT0H9M56.46S" minBufferTime="PT1.0S"> <BaseURL>http://www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/BigBuckBunny/bunny_1s/</BaseURL> <Period start="PT0S"> <AdaptationSet bitstreamSwitching="true"> <Representation id="0" codecs="avc1" mimeType="video/mp4" width="320" height="240" startWithSAP="1" bandwidth="46986"> <SegmentBase> <Initialization sourceURL="bunny_1s_50kbit/bunny_50kbit_dashNonSeg.mp4" range="0-862" /> </SegmentBase> <SegmentList duration="1"> <SegmentURL media="bunny_1s_50kbit/bunny_50kbit_dashNonSeg.mp4" mediaRange="863-7113" /> <SegmentURL media="bunny_1s_50kbit/bunny_50kbit_dashNonSeg.mp4" mediaRange="7114-14104" /> <SegmentURL media="bunny_1s_50kbit/bunny_50kbit_dashNonSeg.mp4" mediaRange="14105-17990" /> ... </SegmentList> </Representation> <Representation id="1" codecs="avc1" mimeType="video/mp4" width="320" height="240" startWithSAP="1" bandwidth="91932"> <SegmentBase> <Initialization sourceURL="bunny_1s_100kbit/bunny_100kbit_dashNonSeg.mp4" range="0-864" /> </SegmentBase> <SegmentList duration="1"> <SegmentURL media="bunny_1s_100kbit/bunny_100kbit_dashNonSeg.mp4" mediaRange="865-11523" /> <SegmentURL media="bunny_1s_100kbit/bunny_100kbit_dashNonSeg.mp4" mediaRange="11524-25621" /> ... XML based playlist of different (resolution, bitrate) representations of the same presentation (Big Buck Bunny)