25 December 2014 - More features for Advanced HLS and MJPEG codec.

MJPEG codec support for MOV format

Field NameDescriptionAllowed ValuesDefault Values
video_codecVideo codecmov: mpeg4, libx264, xdcam, dvcpro, dvcpro50, dvcprohd, mjpegmp4, m4v,appletv, psp, android, mov: mpeg4

Main and Alternare source

This feature allows a provider to specify one of a set of variant playlists as an "override" of the main presentation. The client will only play the override media (audio or video), and suppress any media of the same type from the main presentation, if present. This allows a presentation to offer multiple versions of the media without requiring the provider to store duplicate media, or requiring the client download all variants when it only needs one. It also allows additional media to be offered subsequently without remastering the original content. Read more at Apple dev technote

<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>advanced_hls</output>
        <stream>
            <!-- stream params -->
            <group_id>[GroupID]</group_id>
        </stream>
        <stream>
            <!-- stream params -->
            <use_group_id>[CommaSeparatedList]</use_group_id>
        </stream>
        <!-- Main/alternate source fields -->
        <main_source>
            <type>[video_audio|video|audio]</type>
            <video_name>[Name]</video_name>
            <audio_name>[Name]</audio_name>
            <use_stream_id>[CommaSeparatedList]</use_stream_id>
        </main_source>
        <alternate_source>
        <!-- multiple alternate_sources may be included -->
            <source>[FileURL]</source>
            <type>[video_audio|video|audio]</type>
            <video_name>[Name]</video_name>
            <audio_name>[Name]</audio_name>
            <use_stream_id>[CommaSeparatedList]</use_stream_id>
        </alternate_source>
    </format>
</query>
{
    "query": {
        "userid": "<<id>>",
        "userkey": "<<key>>",
        "action": "[Action]",
        "format": {
            "output": "advanced_hls",
            "stream": [
                {
                    "group_id": "[GroupID]"
                },
                {
                    "use_group_id": "[CommaSeparatedList]"
                }
            ],
            "main_source": {
                "type": "[video_audio|video|audio]",
                "video_name": "[Name]",
                "audio_name": "[Name]",
                "use_stream_id": "[CommaSeparatedList]"
            },
            "alternate_source": {
                "source": "[FileURL]",
                "type": "[video_audio|video|audio]",
                "video_name": "[Name]",
                "audio_name": "[Name]",
                "use_stream_id": "[CommaSeparatedList]"
            }
        }
    }
}
Field NameDescriptionAllowed ValuesDefault Values
Stream params
group_idAlternate group id based on current stream.String 
use_group_idSpecifies group id list to use as alternate for current stream.Comma separated group_id list 
Main source params
typeSets for which stream types source will be usedvideo – for NOT audio_only streams
audio - for audio_only streams
video_audio - for all streams
video_audio
video_nameName of main source video streamstring 
audio_nameName of main source audio streamstring 
use_stream_idSets which source's stream will be used.Comma separated list of stream ids 
ALternate source params
sourceURL to alternate source file. Optional. If not exists main source link will be used as alternate sourceValid URL to alternate source file 
typeSets for which stream types source will be usedvideo – for NOT audio_only streams
audio - for audio_only streams
video_audio - for all streams
video_audio
video_nameName of alternate source video streamstring 
audio_nameName of alternate source audio streamstring 
use_stream_idSets which source's stream will be used.Comma separated list of stream ids 

Changes in stream and format params

New audio codec

Added new 'ac3' audio codec for streams.

Byte-range

You can now specify a media segment as a byte range (subrange) of a larger URL. This allows you to consolidate your media segments into larger files or a single large file. The primary benefit of this is when a client is playing your media, rather than downloading each successive segment file from a different location, it is actually walking through a larger file in sequence. Read more at Apple dev technote

I-Frame playlist

iOS 5 now supports Fast Forward and Reverse Playback. However, you don't need to produce special purpose content to support Fast Forward and Reverse Playback. All you need to do is specify where the I-Frames are. I-Frames, or Intra frames, are encoded video frames whose encoding does not depend on any other frame. To specify where the I-Frames are, iOS 5 introduces a new I-Frame only playlist. Read more at Apple dev technote

<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>advanced_hls</output>
        <stream>
            <audio_codec>[ac3|default audio codecs for streams]</audio_codec>
            <byte_range>[yes|no]</byte_range>
            <add_iframe_stream>[yes|no]</add_iframe_stream>
            <video_only>[yes|no]</video_only>
        </stream>
        <duration_precision>[Number]</duration_precision>
    </format>
</query>
{
    "query": {
        "userid": "<<id>>",
        "userkey": "<<key>>",
        "action": "[Action]",
        "format": {
            "output": "advanced_hls",
            "stream": {
                "audio_codec": "[ac3|default audio codecs for streams]",
                "byte_range": "[yes|no]",
                "add_iframe_stream": "[yes|no]",
                "video_only": "[yes|no]"
            },
            "duration_precision": "[Number]"
        }
    }
}
Field NameDescriptionAllowed ValuesDefault Values
Format params
duration_precisionSets number of decimals after point for duration in playlist file.integer0
Stream params
byte_rangeUse byte-range playlist - do not split mpeg-ts file to segmentsyes, nono
add_iframe_streamAdd i-frame playlist for this stream (allowed only for video)yes, nono
audio_onlyResult segments will contain only audio streamyes, nono