28 April 2022
over 2 years ago by Encoding.com Product Team #2
Vantage CML Playlist File
Added ability to use CML file as source files description.
You can use a CML (Content Markup Language) playlist file as instruction set for a job request
The Vantage CML file is a specialized playlist format that contains a collection of hosted source media locations and instructions for media processing, such as timed video timelines, effects and layers. Availability of source media locations within a CML file will be validated before processing begins.
<?xml version="1.0"?>
<query>
<userid><<id>></userid> <!-- required -->
<userkey><<key>></userkey> <!-- required -->
<action>AddMedia</action> <!-- required -->
<cml_source>[CMLSourceFile]</cml_source>
<format>
<output>[output]</output> <!-- required -->
<!-- format params -->
</format>
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "AddMedia", // required
"cml_source": "[CMLSourceFile]", // required
"format": {
"output": "[output]" // required
// format parameters
}
}
}
Parameter | Description | Allowed Values | Default Value |
---|---|---|---|
cml_source | CML source file URL | Valid URL | none |
CML File Structure
CML Features implementation
CML file as source description is in beta status and some CML features not implemented yet.
<?xml version="1.0" encoding="utf-8" ?>
<Composition name="[CompositionName]" version="1.0" created="[CreatedDate]">
<Source identifier="[SourceIdentifier]" timecode="[SourceTimecode]"> <!-- timecode not implemented -->
<File location="[SourceLocationURL]"/>
<Subtitle preserve708="[true|false]"/> <!-- Subtitle not implemented -->
</Source>
<Source identifier="[SourceIdentifier]" timecode="[SourceTimecode]"> <!-- timecode not implemented -->
<File location="[SourceLocationURL]"/>
<Subtitle preserve708="[true|false]"/> <!-- Subtitle not implemented -->
</Source>
<!-- ... -->
<Source identifier="[SourceIdentifier]" timecode="[SourceTimecode]"> <!-- timecode not implemented -->
<!-- Source Params -->
</Source>
<Sequence>
<Segment>
<Canvas duration="[DurationTimeCode]@[FrameRate]"/>
<!-- blank frames -->
</Segment>
<Segment instructions="[SegmentInstructions]"> <!-- instructions not implemented -->
<Video source="[SourceIdentifier]">
<Head>
<Edit mode="[TimeCodeMode]" time="[StartTimeCode]@[FrameRate]"/> <!-- mode not implemented -->
<!-- video start time -->
</Head>
<Tail>
<Edit mode="[TimeCodeMode]" time="[StartTimeCode]@[FrameRate]"/> <!-- mode not implemented -->
<!-- video end time -->
</Tail>
</Video>
<Image layout="[Layout]"
location="[OverlaySource]"
duration="[DurationTimeCode]@[FrameRate]"> <!-- layout not implemented -->
<Head>
<Opacity level="[Opacity]%"/> <!-- Opacity not implemented -->
<Fade duration="[FadeTimeCode]@[FrameRate]" shape="linear"/> <!-- shape not implemented -->
<!-- overlay fade in time -->
</Head>
<Body>
<Opacity level="[Opacity]%"/> <!-- Opacity not implemented -->
</Body>
<Tail>
<Opacity level="[Opacity]%"/> <!-- Opacity not implemented -->
<Fade duration="FadeTimeCode]@[FrameRate]" shape="linear"/> <!-- shape not implemented -->
<!-- overlay fade out time -->
</Tail>
</Image>
</Segment>
<Segment instructions="[SegmentInstructions]"> <!-- instructions not implemented -->
<!-- Segment Params -->
</Segment>
</Sequence>
</Composition>
Detect Silent Black Frames
Added ability to detect and remove only silent black frames.
<?xml version="1.0"?>
<query>
<userid><<id>></userid> <!-- required-->
<userkey><<key>></userkey> <!-- required-->
<action>[Action]</action> <!-- required-->
<source>[SourceFile]</source> <!-- required-->
<format>
<output>[output]</output> <!-- required -->
<cut_black>
<enable>yes</enable>
<silence_check>[yes|no]</silence_check>
<silence_threshold>[SilenceThreshold]</silence_threshold>
<!-- cut_black params -->
</cut_black>
<!-- format parameters -->
</format>
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "[Action]", // required
"source": "[SourceFile]", // required
"format": {
"output": "[output]", // required
"cut_black": {
"enable": "yes",
"silence_check": "[yes|no]",
"silence_threshold": "[SilenceThreshold]"
// cut_black params
}
// format parameters
}
}
}
Parameter | Description | Allowed Values | Default Value |
---|---|---|---|
silence_check | Detect black frames only if audio recognized as silent | yes, no | no |
silence_threshold | Noise tolerance in dB | Integer number | -60 |
Default Main audio service identifier in EAC3 Descriptor
Added option to unset audio service identifier in EAC3 Descriptor
<?xml version="1.0"?>
<query>
<userid><<id>></userid> <!-- required-->
<userkey><<key>></userkey> <!-- required-->
<action>[Action]</action> <!-- required-->
<source>[SourceFile]</source> <!-- required-->
<format> <!-- required -->
<output>mpegts</output> <!-- required -->
<atsc_eac3_descriptor>
<mainid>[ServiceID]</mainid>
<!-- atsc_eac3_descriptor params -->
</atsc_eac3_descriptor>
<audio_stream>
<atsc_eac3_descriptor>
<mainid>[ServiceID]</mainid>
<!-- atsc_eac3_descriptor params -->
</atsc_eac3_descriptor>
<!-- audio_stream params -->
</audio_stream>
<audio_stream>
<!-- audio_stream params -->
</audio_stream>
</format>
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "[Action]", // required
"source": "[SourceFile]", // required
"format": {
"output": "mpegts", // required
"atsc_eac3_descriptor": {
"mainid": "[ServiceID]"
// atsc_eac3_descriptor params
},
"audio_stream": [
{
"atsc_eac3_descriptor": {
"mainid": "[ServiceID]"
// atsc_eac3_descriptor params
}
// audio_stream params
},
{
// audio_stream params
}
]
}
}
}
<?xml version="1.0"?>
<query>
<userid><<id>></userid> <!-- required-->
<userkey><<key>></userkey> <!-- required-->
<action>[Action]</action> <!-- required-->
<source>[SourceFile]</source> <!-- required-->
<format> <!-- required -->
<output>advanced_hls</output> <!-- required -->
<destination>[DestFile]</destination> <!-- required -->
<stream>
<atsc_eac3_descriptor>
<mainid>[ServiceID]</mainid>
<!-- atsc_eac3_descriptor params -->
</atsc_eac3_descriptor>
<audio_stream>
<atsc_eac3_descriptor>
<mainid>[ServiceID]</mainid>
<!-- atsc_eac3_descriptor params -->
</atsc_eac3_descriptor>
<!-- audio_stream params -->
<audio_stream>
<!-- stream params -->
</stream>
<stream>
<!-- stream params -->
</stream>
</format>
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "[Action]", // required
"source": "[SourceFile]", // required
"format": {
"output": "advanced_hls", // required
"stream": [
{
"atsc_eac3_descriptor": {
"mainid": "[ServiceID]"
// atsc_eac3_descriptor params
},
"audio_stream": {
"atsc_eac3_descriptor": {
"mainid": "[ServiceID]"
// atsc_eac3_descriptor params
}
// audio_stream params
}
// stream params
},
{
// stream params
}
]
}
}
}
Parameter | Description | Allowed Values | Default Value |
---|---|---|---|
mainid | Main audio service identifier | no, 0, 1, 2, 3, 4, 5, 6, 7 | no |