Wednesday, September 26, 2012

fMP4 - Fragmented MP4 - fMP4 Boxes


A fragmented MP4 file contains a number of discrete units called boxes (also known as atoms).
Three key boxes in the fragmented MP4 approach are the ‘moov’, ‘moof’ and ‘mdat’ boxes:

• ‘moov’ (movie metadata box) contains a virtual movie timeline with display characteristics, duration and timescale elements, as well as subboxes providing information for each movie track.



• ‘mdat’ (media data box) contains media data, raw audio and video information and timed-text elements that are decoded based on a movie box’s information.

• ‘moof’ (movie fragment box) contains short audio, video or text portions of an elementary stream. Movie fragments typically house a closed GOP (Group of Pictures) or AVC Coded Video Sequence.
 

MPEG-4 file sources did not originally support MP4 file streaming but MPEG is now exploring DASH (Dynamic Adaptive Streaming over HTTP) using MP4 elementary stream fragments as network packets for HTTP streaming delivery.

Coupling an ‘mdat’ and a ‘moof’ creates an fMP4 movie fragment that includes one track fragment (either audio or video) with sufficient metadata to make it independently decodable. Using movie fragments to create packets optimized for adaptive streaming is similar in concept to RTP packets of audio/video, but fMP4 movie fragments are optimized for bitrate switching and HTTP delivery over unreliable networks.

Tuesday, September 25, 2012

F4X - File - (HDS) HTTP Dynamic Streaming

Flash Media Index file format. Only required by the client if using the NetStream.appendBytes
API to build a custom player, rather than using the Open Source Media Framework. Otherwise, it
is used by the HTTP Origin Module to calculate the byte offset within a selected media segment
to locate a requested fragment.

Monday, September 24, 2012

HDS (HTTP Dynamic Streaming) Workflow (flow) for On Demand Video (VOD)

The best way to experience the workflow for on-demand HTTP streaming is to complete a tutorial. See Stream on-demand media (HTTP).
The following is the workflow for Adobe HTTP Dynamic Streaming and Apple HTTP Live Streaming use cases:
  1. Encode media files and copy them to the rootinstall/webroot/vod directory on Flash Media Server.
    To configure this location, see Configure the location of content (HDS and HLS).
  2. (Optional) To configure multi-bitrate streaming, use the Set-level F4M/M3U8 File Generator tool to generate a set-level manifest file. See Play on-demand multi-bitrate media files over HTTP.
  3. (Optional—Adobe HTTP Dynamic Streaming) To encrypt content for protected HDS (without Flash Access), see Configure protected HTTP Dynamic Streaming (PHDS).
    To encrypt content for use with Flash Access, edit the jit.conf file. See Encrypt content for Flash Access protection.
  4. (Optional—Apple HTTP Live Streaming) To encrypt content for Apple HTTP Live Streaming, configure the jit.conf file or the Apache httpd.conf file. See Protect content for Apple HLS.
  5. Create a crossdomain.xml file and copy it to the rootinstall\webroot folder.
    A crossdomain.xml file allows Flash Player clients hosted on other domains to access data from this domain. For more information, see Website controls (policy files) in the ActionScript 3.0 Developer’s Guide.
  6. (Adobe HTTP Dynamic Streaming) Use Strobe Media Playback to play media. Strobe Media Playback is installed with Flash Media Server.
  7. (Apple HTTP Live Streaming) Play the content on an iOS device or on MacOS.
    For supported devices, see Apple HTTP Live Streaming documentation.