Video delivery methods
-
Upload
yossi-cohen -
Category
Technology
-
view
4.948 -
download
2
description
Transcript of Video delivery methods
![Page 1: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/1.jpg)
Video Delivery Methods
Yossi Cohen
![Page 2: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/2.jpg)
Intro: “Legacy” Methods
![Page 3: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/3.jpg)
Streaming Streaming methods
RTP/RTSP RTMP Real MS WMV/ASF
Proprietary and Fragmented Seek-ability – supported Server side – proprietary technology (FMS) Cache-ability – requires special servers for streaming User experience – very good Cost – high
![Page 4: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/4.jpg)
Progressive DownloadSimple Utilizing existing protocols & servers (HTTP) Media file is prepared: metadata up front Playback - after metadata is received Cache-ability - supported Seek-ability – very limited support Poor user experience - seek, multi-rate Waste of bandwidth when not watched fully Low cost
![Page 5: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/5.jpg)
Pseudo Streaming Media is sent as a regular file like Progressive DW Server must understand how the media is structured Playback: after metadata is received Existing protocols
Non standard server Non standard client component
Cache-ability – Limited ! Seek-ability – supported User experience – better than PD, support seek. Waste of bandwidth when not watched full
![Page 6: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/6.jpg)
HTTP Streaming Intro HTTP Streaming offers the advantages of:
Progressive download in terms of Cost Standard Server Scalability Standard client components (OSMF)
Streaming in terms of User experience Seek-ability of streaming
![Page 7: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/7.jpg)
Delivery Methods Summary
![Page 8: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/8.jpg)
Progressive Download Session Analysis
![Page 9: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/9.jpg)
Flash Video
![Page 10: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/10.jpg)
Progressive Download Uses file download from an HTTP web server. Uses HTTP GET request Flash player enables file playback while the download is
still in progress. The ability to be played while the file is being
downloaded is in the wrapper (container) of the file.
![Page 11: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/11.jpg)
PROGRESSIVE DW FLASH SESSION
![Page 12: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/12.jpg)
Request from YouTube First stage is to connect to YouTube Server with the
HTML page request. Source: 192.168.2.102 Destination: 72.125.39.138 GET /watch?v=lAl28d6tbko&feature=popt00il00
Notice that the request passes throw server 72.125.39.138 witch is identified as a Google server
![Page 13: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/13.jpg)
Request from YouTube The Request itself is pointed to the host name (from the
HTTP message), wich is YouTube HTTP server. The HTTP server provides only the HTML page of the
request Host: www.youtube.com
![Page 14: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/14.jpg)
1) Request HTML Page2) HTML response
Browser192.168.2.102
Web Server72.125.39.138
Session Progress
![Page 15: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/15.jpg)
Requesting the Flash Video Player The Player is then requested automatically by the Flash
client – the information is retrieved from the query string (in bold).
<script> (function() {var isIE = /*@cc_on!@*/false;var swfHTML = (isIE) ? "<object height=\"38" + "5\" width=\"64" + "0\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" id=\"movie_player\" ><param name=\"movie\" value=\"http:\/\/s.ytimg.com\/yt\/swf\/watch_as3-vfl157163.swf\"><param
name=\"flashvars ….})();</script>
*note this is only a fragment of the query string (located in var swfHTML )
![Page 16: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/16.jpg)
Session Progress
Browser192.168.2.102
Web Server72.125.39.138
File Server82.80.222.83
1) Request HTML Page2) HTML response3) Request the Flash
Player4) Flash Player response
![Page 17: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/17.jpg)
Requesting of Player Models The swf file that contains TAGS to information that the
player needs. http://s.ytimg.com/yt/swf/watch_as3-vfl157163.swf
The SWF can be analyzed with swfmill. This can help locating the TAG’s inside the file.
For example: the tags containcom.google.youtube.ui.QualityButton_HqOffIcon_dataClass 1 com.google.youtube.ui.WatchEndScreen_replayIcon_dataClass 2 com.google.youtube.ui.QualityButton_HqOffIcon 3
![Page 18: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/18.jpg)
Request from YouTube The Flash Player requests the model information from
the CDN server. YouTube uses many CDN around the world. Source: 192.168.2.102 Destination: 212.179.74.181
GET/videoplayback?ip=0.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor%2Coc%3AU0dWRVZSUl9FSkNNNl9OTFZB&fexp=905700%2C902904&algorithm=throttle-factor&itag=34&ipbits=0&burst=40&sver=3&expire=1270674000&key=yt1&signature=B20512CB5B62A0FCEA5D15EFF56AB35B35524614.15CDEF403DDDC9716E51EBB108CBA7D7CEFD7D98&factor=1.25&id=940976f1dead6e4a&
![Page 19: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/19.jpg)
Request from YouTube The host name is different too. Notice that this is a IP
located in Israel (host: bzq-82-80-222-82.red.bezeqint.net) – this is a Proxy.
![Page 20: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/20.jpg)
Request from YouTube Notice that this is a different server: IP: 82.80.222.82 The host name is different too. Notice that this is a IP
located in Israel (host: bzq-82-80-222-82.red.bezeqint.net) – this is a Proxy.
![Page 21: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/21.jpg)
Request from YouTube The original host of the message is Googles CDN
server: Host : video-stats.video.google.com IP: 74.125.79.139
![Page 22: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/22.jpg)
Complete Session
Browser192.168.2.102
Web Server72.125.39.138
File Server82.80.222.83
FLV Server / CDN212.179.74.181
1) Request HTML Page
2) HTML response3) Request Flash
Player4) Flash Player
response5) FLV File Request
Flash Player192.168.2.102
![Page 23: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/23.jpg)
Modern Capture (Byte Ranges)
![Page 24: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/24.jpg)
Changes from Previous
Decision on request type (Standard / byte range( based on Request 204 replay
TCP timing using Tval Tsecr Algorithm definition in request “cburst”, “throttle” Byte range requests
![Page 25: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/25.jpg)
204 Request
Measures latency -> Input for request type mechanism
![Page 26: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/26.jpg)
Algorithm Request
Cburst / throttle depending on content requested Client side instead of server side control
![Page 27: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/27.jpg)
Byte Ranges
![Page 28: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/28.jpg)
HTTP Streaming common
Over HTTP Media Segments:
Complete media units Separate media types (A/V)
Segments alignment GOP Aligned Time Aligned
Description File Must hold segment time frame Must Hold bit rate information Might include Media description like resolution, codecs
![Page 29: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/29.jpg)
HTTP Streaming AppleMicrosoftAdobe
![Page 30: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/30.jpg)
HTTP Live Streamingby Apple
![Page 31: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/31.jpg)
Agenda System Overview Components Session
![Page 32: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/32.jpg)
Apple’s Note
Note: Many existing streaming services require specialized servers to distribute content to end users. It requires specialized skills to set up and maintain these servers, and in a large-scale deployment these servers can be costly. Apple has designed a system that avoids this by using standard HTTP to deliver the streams.
![Page 33: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/33.jpg)
System Overview
![Page 34: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/34.jpg)
Components Review Server
Encoder Segmenter
Distributer Basic HTTP Server
Client
![Page 35: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/35.jpg)
Server Receives Digital / Analog input stream Encodes / Transcode video/audio
H.264 Video AAC audio (HE-AAC or AAC-LC)
Encodes / Transcode audio only: MPEG-2 elementary streams, HE-AAC or AAC-LC
files, or MP3 files Encapsulate in MPEG2
Transport Stream Program Stream
![Page 36: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/36.jpg)
Segmenter All segments should be with the same duration All segments are placed in a separate file Creates Index file with references to segment files For protection, the Segmenter might encrypt each media
segment and create a key file
![Page 37: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/37.jpg)
Distribution Distribution system is a regular HTTP Server Could be Apache or small embedded Server
![Page 38: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/38.jpg)
Files Segments – stored as *.ts files Index files – stored as *.m3u8 Index file format example:
#EXTM3U#EXT-X-TARGETDURATION:10#EXTINF:10,http://media.example.com/segment1.ts#EXTINF:10,http://media.example.com/segment2.ts#EXTINF:10,http://media.example.com/segment3.ts#EXT-X-ENDLIST
![Page 39: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/39.jpg)
Session types Live Stream Broadcast
Index file is continues updated Include a moving window of segments around “live”
part of the session Client should continuously refresh the Index file
VoD Session Index file static Includes ALL the segments of the file Enables “Seek” operation
![Page 40: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/40.jpg)
Multi-bitrate multi–device support Multi-bitrate is enabled via multiple index files Index files are pointed by a global index files Client can select a stream according to:
Device properties Available bit rate
This method is less efficientthan Silverlight Global File
![Page 41: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/41.jpg)
Test yourself1. What are the two Live streaming file types?2. What is the role of the Segmenter?3. On which delivery protocol is the live streaming based?
![Page 42: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/42.jpg)
Silverlight Smooth Streaming
Movi
ng to
DASH
![Page 43: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/43.jpg)
SILVERLIGHT INTRODUCTION
![Page 44: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/44.jpg)
Smooth Streaming
•Microsoft’s implementation of HTTP-based adaptive streaming
•A hybrid media delivery method that acts like streaming but is in fact a series of short progressive downloads
•Leverages existing HTTP caches•Client can seamlessly switch video quality
and bit rate based on perceived network bandwidth and CPU resources
![Page 45: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/45.jpg)
Smooth Streaming Design
•Smooth Streaming File Format based on MP4 (ISO Base Media File Format)
•Video is encoded and stored on disk as one contiguous MP4 file▫Separate file for each bit rate
•Each segment is composed of a 1 or more GOP This allows easy fragmentation at key frames
•Contiguous file is virtually split up into chunks when responding to a client request
![Page 46: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/46.jpg)
Evolution•Previous versions of MS streaming divide
the file into many chunkc 0001.vid 0002.vid etc
•Problematic in caching, CDNs, CMS etc•Today all fragments of a file are contained
in a single bitstream container. Typically 1 fragment = 1 video GOP.
![Page 47: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/47.jpg)
SILVERLIGHT FILES
Containers & Configuration files
![Page 48: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/48.jpg)
MP4 File format MP4 has two format types
Disk Format - for file storage Wire format - for transport
Wire format enables easy CDN support and integration
![Page 51: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/51.jpg)
File extensions Media Files
*.ismv - Audio & Video *.isma – Audio only
Manifest Files *.ism – Server manifest. Describes to the server
Relation between tracks, bitrates & files on disk. Based on SMIL 2.0 XML format specification
*.ismc – Describes to the client the available streams, CODECS used, bitrates encoded, video resolutions, markers, captions. First file delivered to client. It’s the first file delivered to client (“SDP” like).
![Page 52: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/52.jpg)
Directory Structure
Manifest Files
Media file in different bitrates
![Page 53: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/53.jpg)
Manifest files VC-1, WMA, H.264 and AAC codecs Text streams Multi-language audio tracks Alternate video & audio tracks (i.e. multiple camera
angles, director’s commentary, etc.) Multiple hardware profiles (i.e. same bitrates targeted at
different playback devices) Script commands, markers/chapters, captions Client manifest Gzip compression URL obfuscation Live encoding and streaming
![Page 54: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/54.jpg)
ISM file sample<?xml version="1.0" encoding="utf-16" ?> - <!-- Created with Expression Encoder version 2.1.1206.0 --> - <smil xmlns="http://www.w3.org/2001/SMIL20/Language">- <head> <meta name="clientManifestRelativePath" content="NBA.ismc" /> </head>- <body>- <switch>- <video src="NBA_3000000.ismv" systemBitrate="3000000"> <param name="trackID" value="2" valuetype="data" /> </video>- <video src="NBA_2400000.ismv" systemBitrate="2400000"> <param name="trackID" value="2" valuetype="data" /> </video>- <video src="NBA_1800000.ismv" systemBitrate="1800000"> <param name="trackID" value="2" valuetype="data" /> </video>
![Page 55: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/55.jpg)
ISM file sample- <video src="NBA_1300000.ismv" systemBitrate="1300000"> <param name="trackID" value="2" valuetype="data" /> </video>- <video src="NBA_800000.ismv" systemBitrate="800000"> <param name="trackID" value="2" valuetype="data" /> </video>- <video src="NBA_500000.ismv" systemBitrate="500000"> <param name="trackID" value="2" valuetype="data" /> </video>- <audio src="NBA_3000000.ismv" systemBitrate="64000"> <param name="trackID" value="1" valuetype="data" /> </audio> </switch> </body> </smil>
![Page 56: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/56.jpg)
*.ISMC sample<?xml version="1.0" encoding="utf-16" ?> - <!-- Created with Expression Encoder version 2.1.1206.0 --> - <SmoothStreamingMedia MajorVersion="1" MinorVersion="0" Duration="4084405506">- <StreamIndex Type="video" Subtype="WVC1" Chunks="208"
Url="QualityLevels({bitrate})/Fragments(video={start time})"> <QualityLevel Bitrate="3000000" FourCC="WVC1" Width="1280" Height="720"
CodecPrivateData="250000010FD3FE27F1678A27F859E80C9082DB8D44A9C00000010E5A67F840" />
<QualityLevel Bitrate="2400000" FourCC="WVC1" Width="1056" Height="592" CodecPrivateData="250000010FD3FE20F1278A20F849E80C9082493DEDDCC00000010E5A67F840" />
<QualityLevel Bitrate="1800000" FourCC="WVC1" Width="848" Height="480" CodecPrivateData="250000010FCBF81A70EF8A1A783BE80C908236EE5265400000010E5A67F840" />
<QualityLevel Bitrate="1300000" FourCC="WVC1" Width="640" Height="352" CodecPrivateData="250000010FCBE813F0AF8A13F82BE80C9081A7ABF704400000010E5A67F840" />
![Page 57: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/57.jpg)
ISMC File - 2- <SmoothStreamingMedia MajorVersion="1" MinorVersion="0" Duration="5965419999">- <StreamIndex Type="video" Subtype="WVC1" Chunks="299"
Url="QualityLevels({bitrate})/Fragments(video={start time})"> <QualityLevel Bitrate="2750000" FourCC="WVC1" Width="1280" Height="720"
CodecPrivateData="250000010FD3BE27F1678A27F859E804508253EBE8E6C00000010E5AE7F840" /> …..
<c n="0" d="20000000" /> <c n="1" d="20000000" /> ..... <c n="298" d="5000001" /> </StreamIndex>- <StreamIndex Type="audio" Subtype="WmaPro" Chunks="299"
Url="QualityLevels({bitrate})/Fragments(audio={start time})"> <QualityLevel Bitrate="64000"
WaveFormatEx="6201020044AC0000451F0000CF05100012001000030000000000000000000000E00042C0" />
<c n="0" d="20433560" /> .... <c n="297" d="20433560" /> <c n="298" d="4393197" /> </StreamIndex> </SmoothStreamingMedia>
![Page 58: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/58.jpg)
SILVERLIGHT SESSION
Initiation and Flow
![Page 59: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/59.jpg)
Smooth Streaming Protocol Smooth Streaming Protocol uses HTTP [RFC2616] as its
underlying transport . The Server role in the protocol is stateless
Enabling (potentially) different instance of the server to handle client requests
Request can utilize any generic HTTP caches/proxies - > Lowering CDN costs
![Page 60: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/60.jpg)
Messages Smooth Streaming Protocol uses 4 different messages:
Manifest Request Manifest Response Fragment Request Fragment Response
All messages follow the HTTP/1.1 specification
![Page 61: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/61.jpg)
Messages FlowServer
Client
Manifest Request
Manifest Response
Fragment Request
Fragment Response
Fragment Request(s)
![Page 62: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/62.jpg)
Messages Manifest Request and Fragment Request message
MUST use the HTTP "GET" method, generated by the client.
Manifest Request and Fragment Request message use the HTTP Response messages.
Status-Code SHOULD be 200.
![Page 63: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/63.jpg)
Smooth Streaming Transport Protocol Session Details
Manifest RequestManifest Request
Manifest ResponseManifest ResponseVideo Fragment RequestVideo Fragment Request
Fragment ResponseFragment Response
Audio Fragment RequestAudio Fragment Request
![Page 64: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/64.jpg)
Session Details - Manifest Request
In order to initiate a presentation the Client MUST send the server a Manifest Request using the HTTP GET method.
![Page 65: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/65.jpg)
Session Details - Manifest Response
The Response is a ISMC Manifest file describing the session. - <SmoothStreamingMedia MajorVersion="1" MinorVersion="0" Duration="5965419999">
- <StreamIndex Type="video" Subtype="WVC1" Chunks="299" Url="QualityLevels({bitrate})/Fragments(video={start time})">
<QualityLevel Bitrate="2750000" FourCC="WVC1" Width="1280" Height="720" CodecPrivateData="250000010FD3BE27F1678A27F859E804508253EBE8E6C00000010E5AE7F840" />
…..
<c n="0" d="20000000" />
<c n="1" d="20000000" />
.....
<c n="297" d="20000000" />
<c n="298" d="5000001" />
</StreamIndex>
- <StreamIndex Type="audio" Subtype="WmaPro" Chunks="299" Url="QualityLevels({bitrate})/Fragments(audio={start time})">
<QualityLevel Bitrate="64000" WaveFormatEx="6201020044AC0000451F0000CF05100012001000030000000000000000000000E00042C0" />
<c n="0" d="20433560" />
....
<c n="297" d="20433560" />
<c n="298" d="4393197" />
</StreamIndex>
</SmoothStreamingMedia>
![Page 66: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/66.jpg)
Manifest Response reviewed We can see in the ISMC file that the server can support 8 different levels
of quality (bitrate) for the client can chose from between 2.75Mbit to 0.35 Mbit.
- <SmoothStreamingMedia MajorVersion="1" MinorVersion="0" Duration="5965419999">
- <StreamIndex Type="video" Subtype="WVC1" Chunks="299" Url="QualityLevels({bitrate})/Fragments(video={start time})">
<QualityLevel Bitrate="2750000" FourCC="WVC1" Width="1280" Height="720" CodecPrivateData="250000010FD3BE27F1678A27F859E804508253EBE8E6C00000010E5AE7F840" />
<QualityLevel Bitrate="2040000" FourCC="WVC1" Width="1056" Height="592" CodecPrivateData="250000010FD3BE20F1278A20F849E80450823E414DD1400000010E5AE7F840" />
<QualityLevel Bitrate="1520000" FourCC="WVC1" Width="848" Height="480" CodecPrivateData="250000010FCBAE1A70EF8A1A783BE8045081AE62F3F7400000010E5AE7F840" />
<QualityLevel Bitrate="1130000" FourCC="WVC1" Width="704" Height="400" CodecPrivateData="250000010FCBA215F0C78A15F831E8045081A27BD635C00000010E5AE7F840" />
<QualityLevel Bitrate="845000" FourCC="WVC1" Width="576" Height="320" CodecPrivateData="250000010FCB9A11F09F8A11F827E804508199C94077400000010E5AE7F840" />
<QualityLevel Bitrate="630000" FourCC="WVC1" Width="448" Height="256" CodecPrivateData="250000010FCB920DF07F8A0DF81FE804508113396020C00000010E5AE7F840" />
<QualityLevel Bitrate="470000" FourCC="WVC1" Width="368" Height="208" CodecPrivateData="250000010FC38E0B70678A0B7819E80450810E5747B6C00000010E5AE7F840" />
<QualityLevel Bitrate="350000" FourCC="WVC1" Width="320" Height="176" CodecPrivateData="250000010FC38A09F0578A09F815E80450808AADEACF400000010E5AE7F840" />
![Page 67: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/67.jpg)
Manifest Response – reviewed The client also receives the number of chunks for audio and video tracks
and the duration of each chunk so it can request the chunk which fits the desired position in the file
<c n="0" d="20000000" />
<c n="1" d="20000000" />
<c n="2" d="20000000" />
<c n="3" d="20000000" />
....
<c n="297" d="20000000" />
<c n="298" d="5000001" />
</StreamIndex>
- <StreamIndex Type="audio" Subtype="WmaPro" Chunks="299" Url="QualityLevels({bitrate})/Fragments(audio={start time})">
<QualityLevel Bitrate="64000" WaveFormatEx="6201020044AC0000451F0000CF05100012001000030000000000000000000000E00042C0" />
<c n="0" d="20433560" />
<c n="1" d="19969161" />
<c n="2" d="19969161" />
<c n="3" d="20433560" />
<c n="4" d="20433560" />
<c n="297" d="20433560" />
<c n="298" d="4393197" />
</StreamIndex>
</SmoothStreamingMedia>
![Page 68: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/68.jpg)
Session Details – Fragment Request
Client-Server requests are based on RESTFull URLs:GET /mediadl/iisnet/smoothmedia/Experience/BigBuckBunny_720p.ism/QualityLevels(350000)/Fragments(video=0)
The URL includes reference to: Bitrate as QualityLevels which maps to a media file Fragment number
![Page 69: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/69.jpg)
Session Details – Fragment Response
The Server: checks “BigBuckBunny_720p.ism” server manifest file to find the
media file associated with the quality level(350000) Opens and parses the associated media file to get the chunk with
requested time offset (0). Sends the requested media fragment to the client as HTTP
response with status code set to 200
![Page 70: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/70.jpg)
Examplehttp://www.iis.net/media/experiencesmoothstreaming
![Page 71: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/71.jpg)
Adobe HTTP Streaming
Movi
ng to
DASH
![Page 72: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/72.jpg)
Thank you!
• Video Expert
• Lectures on Video / Android / VoIP
• Android Native Developer
More About me:
Yossi CohenYossi [email protected] [email protected]
+972-545-313092+972-545-313092
![Page 73: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/73.jpg)
Backup slides
![Page 74: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/74.jpg)
Adobe Solution main components
![Page 75: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/75.jpg)
Agenda Overview Components Files Session
![Page 76: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/76.jpg)
HTTP Streaming Intro HTTP Streaming offers the advantages of:
Progressive download in terms of Cost Standard Server Scalability Standard client components (OSMF)
Streaming in terms of User experience Seek-ability of streaming
![Page 77: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/77.jpg)
OverviewAdobe HTTP Dynamic Streaming is a solution that allows you to stream live and on-demand content over HTTP to Adobe Flash Player. When content streams over HTTP, clients can seek quickly to any location. HTTP Dynamic Streaming supports adaptive streaming, DVR functionality, and Adobe Flash Access protection (DRM).
![Page 78: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/78.jpg)
COMPONENTS
• Content Ingest• Server• Client
![Page 79: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/79.jpg)
Main components Preparation
File Packager Live Packager for HTTP Dynamic Streaming
Server Apache module (HTTP Origin Module) Flash Access
Client Player with OSMF classes Flash Player version 10.1+ Air 2.0+
![Page 80: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/80.jpg)
Ingest- File Packager•A command-line tool •Used for converting offline content to formats
required for Adobe HTTP streaming •Translates on-demand media files into
fragments and writes the fragments to F4F files.
![Page 81: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/81.jpg)
Ingest - Live Packager• The Live Packager for HTTP Dynamic
Streaming is part of Adobe Flash Media Server.
•The server ingests a live stream over RTMP and translates it into F4F files in real-time.
•The built-in Apache HTTP Server uses the HTTP Origin Module to deliver the live content over HTTP.
![Page 82: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/82.jpg)
Server - Apache module (HTTP Origin)•Extension to Apache HTTP Server version
2.2. •Enables processes of Adobe Files:
▫F4F, F4M,F4X ▫.bootstrap and ▫.drmmeta
•Flash Media Interactive Server 3.8 includes Apache HTTP Server.
![Page 83: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/83.jpg)
Server - Flash Access
• DRM Server • Flash Access delivers protected
media to Flash Player• For content protection, both File
Packager and Flash Media Server are required to package and encrypt the content
![Page 84: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/84.jpg)
Client - OSMF classes• The OSMF Player uses the
ActionScript 3.0 NetStream.appendBytes() API to deliver data to Flash Player.
•OSMF is a robust framework designed to deliver high-quality video.
•Adobe strongly recommends using OSMF to build HTTP Dynamic Streaming players.
![Page 85: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/85.jpg)
ADOBE HTTP STREAMING FILESF4F, F4M,F4X .bootstrap and .drmmeta
![Page 86: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/86.jpg)
Files The files required for HTTP streaming are:
F4F - MPEG4 media format. Holds the media F4M – Media description file(codec, resolution) F4X - Fragments location file .bootstrap – bootstrap information for each
segment .drmmeta – DRM encryption information
![Page 87: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/87.jpg)
*.F4F File
•Standard MP4 format with open file specification
•Each file contains a segment of the source file.
•Each segment contains one or more fragments of content.
•The file formats stores any flash supported codec
•A player can use a URL to address each fragment.
![Page 88: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/88.jpg)
HTTP Streaming file types
•*.F4X File▫Flash Index file. ▫Contains the location of specific
fragments within a stream. •*.F4M File▫Flash Media Manifest file. ▫Contains information about the media
codecs, resolution, and the availability of multi-bitrate files.
![Page 89: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/89.jpg)
F4M File Sample<?xml version="1.0" encoding="utf-8" ?> - <manifest xmlns="http://ns.adobe.com/f4m/1.0"> <id>Dynamic Streaming</id> <duration>253</duration> <mimeType>video/mp4</mimeType> <baseURL>rtmp://cp67126.edgefcs.net/ondemand</baseURL> <media
url="mp4:mediapm/ovp/content/demo/video/elephants_dream/elephants_dream_768x428_24.0fps_408kbps" bitrate="408" width="768" height="428" />
<media url="mp4:mediapm/ovp/content/demo/video/elephants_dream/elephants_dream_768x428_24.0fps_608kbps" bitrate="608" width="768" height="428" />
<media url="mp4:mediapm/ovp/content/demo/video/elephants_dream/elephants_dream_1024x522_24.0fps_908kbps" bitrate="908" width="1024" height="522" />
</manifest>
![Page 90: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/90.jpg)
Folder example Example for File “foo” Folder will include :
fooSeg#.f4f (many fragments) foo.f4x foo.meta foo.bootstrap foo.drmmeta (if the stream is configured for
encryption)
![Page 91: Video delivery methods](https://reader035.fdocuments.in/reader035/viewer/2022062418/55562eafd8b42a5b528b4eb4/html5/thumbnails/91.jpg)
Session The player fetches foo.f4m manifest. The player request fragment# HTTP Origin Module locates the required f4f files by
looking at F4X index file and send to client. If the client seeks further, the Origin module searches at
the f4m and again locates the f4f file that fits, starts streaming again.
If the player constantly monitor bandwidth and performance and ask the Origin Module for the proper bit rate associated f4f.