Your SlideShare is downloading. ×
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Video delivery methods
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Video delivery methods

4,958

Published on

Review of Progressive Download and HTTP streaming methods including HLS and MSS. Wireshark analysis of PD and MSS.

Review of Progressive Download and HTTP streaming methods including HLS and MSS. Wireshark analysis of PD and MSS.

Published in: Technology
0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,958
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
63
Comments
0
Likes
10
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Video DeliveryMethodsYossi Cohen
  • 2. Intro: “Legacy” Methods
  • 3. 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
  • 4. Progressive Download Simple 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
  • 5. 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
  • 6. 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
  • 7. Delivery Methods Summary
  • 8. Progressive DownloadSession Analysis
  • 9. Flash Video
  • 10. 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.
  • 11. PROGRESSIVE DWFLASH SESSION
  • 12. 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
  • 13. 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
  • 14. Session Progress 1) Request HTML Page 2) HTML response Browser Web Server 192.168.2.102 72.125.39.138
  • 15. 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 )
  • 16. Session Progress 1) Request HTML Page 2) HTML response Browser Web Server File Server 3) Request the Flash Player192.168.2.102 72.125.39.138 82.80.222.83 4) Flash Player response
  • 17. 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 contain com.google.youtube.ui.QualityButton_HqOffIcon_dataClass 1 com.google.youtube.ui.WatchEndScreen_replayIcon_dataClass 2 com.google.youtube.ui.QualityButton_HqOffIcon 3
  • 18. 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=B20512CB5B62A0FCEA5D15EFF56AB35 B35524614.15CDEF403DDDC9716E51EBB108CBA7D7CEFD7 D98&factor=1.25&id=940976f1dead6e4a&
  • 19. 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.
  • 20. 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.
  • 21. Request from YouTube The original host of the message is Googles CDN server: Host : video-stats.video.google.com IP: 74.125.79.139
  • 22. Complete Session 1) Request HTML Page 2) HTML response 3) Request Flash Player 4) Flash Player response 5) FLV File Request Browser Web Server File Server FLV Server / CDN Flash Player192.168.2.102 72.125.39.138 82.80.222.83 212.179.74.181 192.168.2.102
  • 23. Modern Capture (Byte Ranges)
  • 24. 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
  • 25. 204 Request Measures latency -> Input for request type mechanism
  • 26. Algorithm Request Cburst / throttle depending on content requested Client side instead of server side control
  • 27. Byte Ranges
  • 28. 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
  • 29. HTTP StreamingAppleMicrosoftAdobe
  • 30. HTTP Live StreamingbyApple
  • 31. Agenda System Overview Components Session
  • 32. 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.
  • 33. System Overview
  • 34. Components Review Server  Encoder  Segmenter Distributer  Basic HTTP Server Client
  • 35. 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
  • 36. 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
  • 37. Distribution Distribution system is a regular HTTP Server Could be Apache or small embedded Server
  • 38. 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
  • 39. 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
  • 40. 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 efficient than Silverlight Global File
  • 41. 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?
  • 42. Silverlight Smooth Streaming S H D A to g v in M o
  • 43. SILVERLIGHT INTRODUCTION
  • 44. 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
  • 45. 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
  • 46. 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.
  • 47. SILVERLIGHT FILESContainers & Configuration files
  • 48. 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
  • 49. Smooth Streaming File Format
  • 50. Smooth Streaming Wire Format
  • 51. 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).
  • 52. Directory Structure Media file in different Manifest Files bitrates
  • 53. 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
  • 54. 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>
  • 55. 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>
  • 56. *.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="250000010FD3FE27F1678A27F859E80C9082DB8D44A9C00000 010E5A67F840" /> <QualityLevel Bitrate="2400000" FourCC="WVC1" Width="1056" Height="592" CodecPrivateData="250000010FD3FE20F1278A20F849E80C9082493DEDDCC00000 010E5A67F840" /><QualityLevel Bitrate="1800000" FourCC="WVC1" Width="848" Height="480" CodecPrivateData="250000010FCBF81A70EF8A1A783BE80C908236EE5265400000 010E5A67F840" /> <QualityLevel Bitrate="1300000" FourCC="WVC1" Width="640" Height="352" CodecPrivateData="250000010FCBE813F0AF8A13F82BE80C9081A7ABF704400000 010E5A67F840" />
  • 57. 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="250000010FD3BE27F1678A27F859E804508253EBE8E6C00000010E5AE7F 840" /> …..<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="6201020044AC0000451F0000CF05100012001000030000000000000000000000 E00042C0" /> <c n="0" d="20433560" /> .... <c n="297" d="20433560" /> <c n="298" d="4393197" /> </StreamIndex> </SmoothStreamingMedia>
  • 58. SILVERLIGHT SESSIONInitiation and Flow
  • 59. 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
  • 60. Messages Smooth Streaming Protocol uses 4 different messages:  Manifest Request  Manifest Response  Fragment Request  Fragment Response All messages follow the HTTP/1.1 specification
  • 61. Messages Flow Server Client Manifest Request Manifest Response Fragment Request Fragment Response Fragment Request(s)
  • 62. 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.
  • 63. Smooth Streaming TransportProtocol Session Details Manifest Request Manifest Response Video Fragment Request Audio Fragment Request Fragment Response
  • 64. Session Details - ManifestRequest In order to initiate a presentation the Client MUST send the server a Manifest Request using the HTTP GET method.
  • 65. 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>
  • 66. 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" />
  • 67. 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>
  • 68. Session Details – FragmentRequest 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
  • 69. Session Details – FragmentResponse 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
  • 70. Examplehttp://www.iis.net/media/experiencesmoothstreaming
  • 71. Adobe HTTP Streaming S H D A t o g v in M o
  • 72. Thank you!More About me:• Video Expert Yossi Cohen• Lectures on Video / Android / VoIP yossicohen19@gmail.com 972-545-313092+• Android Native Developer
  • 73. Backup slides
  • 74. Adobe Solution main components
  • 75. Agenda Overview Components Files Session
  • 76. 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
  • 77. Overview Adobe 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).
  • 78. COMPONENTS• Content Ingest• Server• Client
  • 79. 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+
  • 80. 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.
  • 81. 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.
  • 82. 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.
  • 83. 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
  • 84. 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.
  • 85. ADOBE HTTP STREAMING FILESF4F, F4M,F4X.bootstrap and.drmmeta
  • 86. 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
  • 87. *.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.
  • 88. 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.
  • 89. 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_76 8x428_24.0fps_408kbps" bitrate="408" width="768" height="428" /> <media url="mp4:mediapm/ovp/content/demo/video/elephants_dream/elephants_dream_76 8x428_24.0fps_608kbps" bitrate="608" width="768" height="428" /> <media url="mp4:mediapm/ovp/content/demo/video/elephants_dream/elephants_dream_10 24x522_24.0fps_908kbps" bitrate="908" width="1024" height="522" /> </manifest>
  • 90. 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)
  • 91. 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.

×