16 December 2021

Mainconcept AVC Codec for Cablelabs MPEG-TS

Added support of mainconcept_avc video codec and mp2 audio codec for cablelabs_mpegts output format.

🚧

Compatibility

The mainconcept_avc video codec available only for cablelabs_mpegts output format.

<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>AddMedia</action>
    <source>[SourceFile]</source> <!-- required-->
    <format> <!-- required -->
        <output>cablelabs_mpegts</output> <!-- required-->
        <video_codec>mainconcept_avc</video_codec>
        <audio_codec>mp2</audio_codec>
        <!-- common format parameters -->
        <video_cocec_parameters>
            <interlace_mode>[pure|mbaff]</interlace_mode>
            <level>[Level]</level>
            <refs>[Refs]</refs>
            <bf>[BFramesNumber]</bf>
            <search_range>[SearchRange]</search_range>
            <max_l0_active>[List0RefFrames]</max_l0_active>
            <max_l1_active>[List1RefFrames]</max_l1_active>
            <allow_override_max_l0_l1>[yes|no]</allow_override_max_l0_l1>
            <quant_pI>[ISLiceQuantization]</quant_pI>
            <quant_pP>[PSLiceQuantization]</quant_pP>
            <quant_pB>[BSLiceQuantization]</quant_pB>
            <inter_search_shape>[16x16|16x8|8x8]</inter_search_shape>
            <entropy_coding_mode>[CAVLC|CABAC]</entropy_coding_mode>
            <use_hadamard_transform>[yes|no|refs]</use_hadamard_transform>
            <video_format>[VideoFormat]</video_format>
            <num_units_in_tick>[NumUnitsInTick]</num_units_in_tick>
            <timescale>[Timescale]</timescale>
            <vbv_buffer_fullness>[InitialFullness]</vbv_buffer_fullness>
            <vbv_buffer_fullness_trg>[TargetFullness]</vbv_buffer_fullness_trg>
            <vcsd_mode>[off|idr]</vcsd_mode>
            <cpb_removal_delay>[CPBRemovalDelay]</cpb_removal_delay>
            <bit_rate_scale>[BitRateScale]</bit_rate_scale>
            <cpb_size_scale>[CPBSizeScale]</cpb_size_scale>
            <min_frame_size>[MinFrameSize]</min_frame_size>
            <max_frame_size>[MaxFrameSize]</max_frame_size>
            <hrd_maintain>[yes|no]</hrd_maintain>
            <hrd_low_delay>[yes|no]</hrd_low_delay>
            <smooth_factor>[SmoothFactor]</smooth_factor>
            <hrd_preview>[yes|no]</hrd_preview>
            <slice_arg>[SliceArg]</slice_arg>
            <b_slice_reference>[yes|no]</b_slice_reference>
            <b_slice_pyramid>[yes|no]</b_slice_pyramid>
            <cb_offset>[CbOffset]</cb_offset>
            <cr_offset>[CrOffset]</cr_offset>
            <me_subpel_mode>[full|half|quarter|quarter_pel_on_ref]</me_subpel_mode>
            <me_weighted_p_mode>[yes|no]</me_weighted_p_mode>
            <me_weighted_b_mode>[yes|no]</me_weighted_b_mode>
            <enable_fast_intra_decisions>[no|yes|slow]</enable_fast_intra_decisions>
            <enable_fast_inter_decisions>[no|yes|slow]</enable_fast_inter_decisions>
            <calc_quality>[disabled|psnr|ssim|psnr-ssim]</calc_quality>
            <min_quant>[MinQuant]</min_quant>
            <max_quant>[MaxQuant]</max_quant>
            <max_slice_size>[MaxSliceSize]</max_slice_size>
            <low_delay>[yes|no]</low_delay>
            <air_mode>[yes|no]</air_mode>
            <constrained_intra_pred>[ConstrainedIintraPprediction]</constrained_intra_pred>
            <air_split_frequency>[IntraLinesFrequency]</air_split_frequency>
            <air_qp_offset>[QPOffset]</air_qp_offset>
            <use_deblocking_filter>[yes|no]</use_deblocking_filter>
            <adaptive_deblocking>[yes|no]</adaptive_deblocking>
            <deblocking_alphaC0_offset>[DeblockingAlphaC0Offset]</deblocking_alphaC0_offset>
            <deblocking_beta_offset>[DeblockingBetaOffset]</deblocking_beta_offset>
            <stream_type>[I|I-sei|II|II-no-sei]</stream_type>
            <bit_depth_luma>[8|10]</bit_depth_luma>
            <bit_depth_chroma>[8|10]</bit_depth_chroma>
            <vui_presentation>[VUIPresentation]</vui_presentation>
            <write_au_delimiters>[yes|no]</write_au_delimiters>
            <write_seq_end_code>[VUIPresentation]</write_seq_end_code>
            <write_timestamps>[no|partial|full]</write_timestamps>
            <timestamp_offset>[TimestampOffset]</timestamp_offset>
            <drop_frame_timecode>[yes|no]</drop_frame_timecode>
            <write_single_sei_per_nalu>[yes|no]</write_single_sei_per_nalu>
            <write_seq_par_set>[idr|i-frame]</write_seq_par_set>
            <write_pic_par_set>[idr|i-frame|picture]</write_pic_par_set>
            <log2_max_poc>[Log2MaxPoc]</log2_max_poc>
            <log2_max_frame_num>[Log2MaxFrameNum]</log2_max_frame_num>
            <pic_order_cnt_type>[0|2]</pic_order_cnt_type>
            <pic_order_present_flag>[yes|no]</pic_order_present_flag>
            <fixed_frame_rate>[yes|no]</fixed_frame_rate>
            <frame_based_timing>[yes|no]</frame_based_timing>
            <frame_packing_arrangement_mode>[FramePackingArrangementMode]</frame_packing_arrangement_mode>
            <stream_creation_product_info>[none|ll|ds]</stream_creation_product_info>
            <write_pic_timing_sei>[yes|no]</write_pic_timing_sei>
            <normalize_dts>[yes|no]</normalize_dts>
            <min_idr_interval>[MinIdrInterval]</min_idr_interval>
            <adaptive_b_frames>[yes|no]</adaptive_b_frames>
            <idr_frequency>[first|every|every-second]</idr_frequency>
            <fixed_i_position>[yes|no]</fixed_i_position>
            <isolated_gops>[yes|no]</isolated_gops>
            <leading_b_frames>[yes|no]</leading_b_frames>
            <fast_multi_ref_me>[greedy|heuristic|combine]</fast_multi_ref_me>
            <fast_sub_block_me>[greedy|heuristic|combine]</fast_sub_block_me>
            <allow_out_of_pic_mvs>[yes|no]</allow_out_of_pic_mvs>
            <constrained_ref_list>[yes|no]</constrained_ref_list>
            <motion_search_pattern>[MotionSearchPattern]</motion_search_pattern>
            <chroma_me>[ChromaMe]</chroma_me>
            <enable_intra_big>[EnableIntraBig]</enable_intra_big>
            <enable_intra_8x8>[EnableIntra8x8]</enable_intra_8x8>
            <enable_intra_4x4>[EnableIntra4x4]</enable_intra_4x4>
            <enable_intra_pcm>[EnableIntraPcm]</enable_intra_pcm>
            <enable_inter_big>[EnableInterBig]</enable_inter_big>
            <enable_inter_8x8>[EnableInter8x8]</enable_inter_8x8>
            <enable_inter_4x4>[EnableInter4x4]</enable_inter_4x4>
            <enable_inter_pcm>[EnableInterPcm]</enable_inter_pcm>
            <fast_rd_optimization>[accurate|fast|combine]</fast_rd_optimization>
            <quant_mode>[0|1|2|3]</quant_mode>
            <grain_opt_strength>[yes|no]</grain_opt_strength>
            <rdo_ip_4x4>[off|fast|slow]</rdo_ip_4x4>
            <adaptive_quant_strength>[AdaptiveQuantStrength]</adaptive_quant_strength>
            <denoise_strength_y>[DenoiseStrengthY]</denoise_strength_y>
            <denoise_strength_c>[DenoiseStrengthC]</denoise_strength_c>
            <black_norm_level>[BlackNormLevel]</black_norm_level>
            <pulse_reduction>[PulseReduction]</pulse_reduction>
        </video_cocec_parameters>
    </format>
</query>
{
    "query": {
        "userid": "<<id>>", // required
        "userkey": "<<id>>", // required
        "action": "AddMedia",
        "source": "[SourceFile]", // required
        "format": { // required
            "output": "cablelabs_mpegts", // required
            "video_codec": "mainconcept_avc",
            "audio_codec": "mp2",
            "video_codec_parameters": {
                "interlace_mode": "[pure|mbaff]",
                "level": "[Level]",
                "refs": "[Refs]",
                "bf": "[BFramesNumber]",
                "search_range": "[SearchRange]",
                "max_l0_active": "[List0RefFrames]",
                "max_l1_active": "[List1RefFrames]",
                "allow_override_max_l0_l1": "[yes|no]",
                "quant_pI": "[ISLiceQuantization]",
                "quant_pP": "[PSLiceQuantization]",
                "quant_pB": "[BSLiceQuantization]",
                "inter_search_shape": "[16x16|16x8|8x8]",
                "entropy_coding_mode": "[CAVLC|CABAC]",
                "use_hadamard_transform": "[yes|no|refs]",
                "video_format": "[VideoFormat]",
                "num_units_in_tick": "[NumUnitsInTick]",
                "timescale": "[Timescale]",
                "vbv_buffer_fullness": "[InitialFullness]",
                "vbv_buffer_fullness_trg": "[TargetFullness]",
                "vcsd_mode": "[off|idr]",
                "cpb_removal_delay": "[CPBRemovalDelay]",
                "bit_rate_scale": "[BitRateScale]",
                "cpb_size_scale": "[CPBSizeScale]",
                "min_frame_size": "[MinFrameSize]",
                "max_frame_size": "[MaxFrameSize]",
                "hrd_maintain": "[yes|no]",
                "hrd_low_delay": "[yes|no]",
                "smooth_factor": "[SmoothFactor]",
                "hrd_preview": "[yes|no]",
                "slice_arg": "[SliceArg]",
                "b_slice_reference": "[yes|no]",
                "b_slice_pyramid": "[yes|no]",
                "cb_offset": "[CbOffset]",
                "cr_offset": "[CrOffset]",
                "me_subpel_mode": "[full|half|quarter|quarter_pel_on_ref]",
                "me_weighted_p_mode": "[yes|no]",
                "me_weighted_b_mode": "[yes|no]",
                "enable_fast_intra_decisions": "[no|yes|slow]",
                "enable_fast_inter_decisions": "[no|yes|slow]",
                "calc_quality": "[disabled|psnr|ssim|psnr-ssim]",
                "min_quant": "[MinQuant]",
                "max_quant": "[MaxQuant]",
                "max_slice_size": "[MaxSliceSize]",
                "low_delay": "[yes|no]",
                "air_mode": "[yes|no]",
                "constrained_intra_pred": "[ConstrainedIintraPprediction]",
                "air_split_frequency": "[IntraLinesFrequency]",
                "air_qp_offset": "[QPOffset]",
                "use_deblocking_filter": "[yes|no]",
                "adaptive_deblocking": "[yes|no]",
                "deblocking_alphaC0_offset": "[DeblockingAlphaC0Offset]",
                "deblocking_beta_offset": "[DeblockingBetaOffset]",
                "stream_type": "[I|I-sei|II|II-no-sei]",
                "bit_depth_luma": "[8|10]",
                "bit_depth_chroma": "[8|10]",
                "vui_presentation": "[VUIPresentation]",
                "write_au_delimiters": "[yes|no]",
                "write_seq_end_code": "[VUIPresentation]",
                "write_timestamps": "[no|partial|full]",
                "timestamp_offset": "[TimestampOffset]",
                "drop_frame_timecode": "[yes|no]",
                "write_single_sei_per_nalu": "[yes|no]",
                "write_seq_par_set": "[idr|i-frame]",
                "write_pic_par_set": "[idr|i-frame|picture]",
                "log2_max_poc": "[Log2MaxPoc]",
                "log2_max_frame_num": "[Log2MaxFrameNum]",
                "pic_order_cnt_type": "[0|2]",
                "pic_order_present_flag": "[yes|no]",
                "fixed_frame_rate": "[yes|no]",
                "frame_based_timing": "[yes|no]",
                "frame_packing_arrangement_mode": "[FramePackingArrangementMode]",
                "stream_creation_product_info": "[none|ll|ds]",
                "write_pic_timing_sei": "[yes|no]",
                "normalize_dts": "[yes|no]",
                "min_idr_interval": "[MinIdrInterval]",
                "adaptive_b_frames": "[yes|no]",
                "idr_frequency": "[first|every|every-second]",
                "fixed_i_position": "[yes|no]",
                "isolated_gops": "[yes|no]",
                "leading_b_frames": "[yes|no]",
                "fast_multi_ref_me": "[greedy|heuristic|combine]",
                "fast_sub_block_me": "[greedy|heuristic|combine]",
                "allow_out_of_pic_mvs": "[yes|no]",
                "constrained_ref_list": "[yes|no]",
                "motion_search_pattern": "[MotionSearchPattern]",
                "chroma_me": "[ChromaMe]",
                "enable_intra_big": "[EnableIntraBig]",
                "enable_intra_8x8": "[EnableIntra8x8]",
                "enable_intra_4x4": "[EnableIntra4x4]",
                "enable_intra_pcm": "[EnableIntraPcm]",
                "enable_inter_big": "[EnableInterBig]",
                "enable_inter_8x8": "[EnableInter8x8]",
                "enable_inter_4x4": "[EnableInter4x4]",
                "enable_inter_pcm": "[EnableInterPcm]",
                "fast_rd_optimization": "[accurate|fast|combine]",
                "quant_mode": "[0|1|2|3]",
                "grain_opt_strength": "[yes|no]",
                "rdo_ip_4x4": "[off|fast|slow]",
                "adaptive_quant_strength": "[AdaptiveQuantStrength]",
                "denoise_strength_y": "[DenoiseStrengthY]",
                "denoise_strength_c": "[DenoiseStrengthC]",
                "black_norm_level": "[BlackNormLevel]",
                "pulse_reduction": "[PulseReduction]"
            }
        }
    }
}
ParameterDescriptionAllowed ValuesDefault Value
interlace_modeVideo interlacing modepure, mbaffpure
levelVideo LevelPositive integer number
10 – 1.0,
11 – 1.1,
12 – 1.2,
13 – 1.3,
16 – 1b,
20 – 2.0,
21 – 2.1,
22 – 2.2,
30 – 3.0,
31 – 3.1,
32 – 3.2,
40 – 4.0,
41 – 4.1,
42 – 4.2,
50 – 5.0,
51 – 5.1,
52 – 5.2,
6 – 6,
61 – 6.1,
62 – 6.2,
100 – auto
none
refsRefsPositive integer numbernone
bfBframesPositive integer numbernone
search_rangeSearch rangePositive integer numbernone
max_l0_activeList0 reference framesPositive integer numbernone
max_l1_activeList1 reference framesPositive integer numbernone
allow_override_max_l0_l1Allow_override_max_l0_l1yes, nonone
quant_pII slices quantizationPositive integer number between 0 and 51 inclusivenone
quant_pPP slices quantizationPositive integer number between 0 and 51 inclusivenone
quant_pBB slices quantizationPositive integer number between 0 and 51 inclusivenone
inter_search_shapeInter search shape16x16, 16x8, 8x8none
entropy_coding_modeEntropy coding modeCAVLC, CABACnone
use_hadamard_transformUse hadamard transformyes, no, refsnone
video_formatVideo format-1 – auto,
5 – unspecified,
0 – component,
1 – pal,
2 – ntsc,
3 – secam,
4 – mac
none
num_units_in_tickNumber of time units in tickPositive integer numbernone
timescaleTimescalePositive integer numbernone
vbv_buffer_fullnessInitial CBP fullnessPositive integer numbernone
vbv_buffer_fullness_trgTarget fullnessPositive integer numbernone
vcsd_modeScene detectionoff, idrnone
cpb_removal_delayCBP removal delayPositive integer numbernone
bit_rate_scaleBitrate scalePositive integer numbernone
cpb_size_scaleCBP scalePositive integer numbernone
min_frame_sizeMax frame sizePositive integer numbernone
max_frame_sizeMax frame sizePositive integer numbernone
hrd_maintainHRD maintainyes, nonone
hrd_low_delayHRD low delayyes, nonone
smooth_factorSmooth factorPositive integer numbernone
hrd_previewHRD previewyes, noyes
slice_argSlices number per picturePositive integer number greater than or equal to 1none
b_slice_referenceB pictures as a referenceyes, nonone
b_slice_pyramidB pictures as a referenceyes, nonone
cb_offsetCb_offsetInteger number between -12 and 12 inclusivenone
cr_offsetCr_offsetInteger numbernone
me_subpel_modeSubpixel motion search depthfull,
half,
quarter,
quarter_pel_on_ref
none
me_weighted_p_modeWeighted P modeyes, nonone
me_weighted_b_modeWeighted P modeyes, nonone
enable_fast_intra_decisionsFast intra coding decisionno, yes, slownone
enable_fast_inter_decisionsFast inter coding decisionno, yes, slownone
calc_qualityQuality metrics calculationdisabled,
psnr,
ssim,
psnr-ssim
none
min_quantMin quantizationPositive integer number between 0 and 51 inclusivenone
max_quantMax quantizationPositive integer number between 0 and 51 inclusivenone
max_slice_sizeMax slice sizePositive integer numbernone
low_delayLow delayyes, nonone
air_modeAdaptive Intra Refresh delayyes, nonone
constrained_intra_predConstrained intra predictionPositive integer numbernone
air_split_frequencyIntra lines frequencyPositive integer numbernone
air_qp_offsetQP offset for AIR modePositive integer number between -10 and 10 inclusivenone
use_deblocking_filterUse deblocking filteryes, nonone
adaptive_deblockingAdaptive deblockingyes, nonone
deblocking_alphaC0_offsetSpecifies the offset used in accessing alpha deblocking filter table for filtering operations controlled by the macroblocks within a sliceInteger number between -6 and 6 inclusivenone
deblocking_beta_offsetSpecifies the offset used in accessing beta deblocking filter table for filtering operations controlled by the macroblocks within a sliceInteger number between -6 and 6 inclusivenone
stream_typeNALU stream typesI,
I-sei,
II,
II-no-sei
none
bit_depth_lumaBit depth luminance8, 10none
bit_depth_chromaBit depth chrominance8, 10none
vui_presentationVUI presentationPositive integer numbernone
write_au_delimitersWrite access unit delimitersyes, nonone
write_seq_end_codeWrite sequence end codeno, stream-end, before-idrnone
write_timestampsWrite picture timing informationno, partial, fullnone
timestamp_offsetFrame based timestamp offsetInteger numbernone
drop_frame_timecodeUse NTSC drop frame timecodeyes, nonone
write_single_sei_per_naluEncapsulate each SEI into its own NAL unityes, nonone
write_seq_par_setSequence parameter setidr, i-framenone
write_pic_par_setPicture parameter setidr, i-frame, picturenone
log2_max_pocCustom log2_max_pic_order_cnt_lsb_minus4Integer number between 4 and 16 inclusive8
log2_max_frame_numCustom log2_max_frame_num_minus4Integer number between 4 and 16 inclusive8
pic_order_cnt_typeCustom pic_order_cnt_type0, 2none
pic_order_present_flagCustom pic_order_cnt_typeyes, nonone
fixed_frame_rateVUI fixed_frame_rate_flagyes, nonone
frame_based_timingWrite frame rate in VUIyes, nonone
frame_packing_arrangement_modeFrame packing arrangement modenone,
checkboard,
column-interleaving,
row-interleaving,
side-by-side,
top-bottom
none
stream_creation_product_infoProduct name and version number in a streamnone, ll, dsnone
write_pic_timing_seiPicture timing SEI messageyes, nonone
normalize_dtsNormalize DTSyes, nonone
min_idr_intervalMinimum IDRInteger numbernone
adaptive_b_framesAdaptive B-framesyes, nonone
idr_frequencyI-frames as IDRfirst, every, every-secondnone
fixed_i_positionFixed I positionyes, nonone
isolated_gopsIsolated GOPsyes, nonone
leading_b_framesLeading B-framesyes, nonone
fast_multi_ref_meFast decisions for multi-ref MEgreedy, heuristic, combinenone
fast_sub_block_meFast decisions for sub-block MEgreedy, heuristic, combinenone
allow_out_of_pic_mvsUse pixels beyond the picture boundariesyes, nonone
constrained_ref_listConstrained reference picture listyes, nonone
motion_search_patternMotion search patterndiamond,
hex-horizontal,
hex-horizontal-flat,
hex-vertical,
hex-vertical-flat
none
chroma_meInter-macroblocks chroma evaluationPositive integer numbernone
enable_intra_bigUse 16x16 intra prediction modesPositive integer numbernone
enable_intra_8x8Use 8x8 intra prediction modesPositive integer numbernone
enable_intra_4x4Use 4x4 intra prediction modesPositive integer numbernone
enable_intra_pcmUse PCM intra prediction modesPositive integer numbernone
enable_inter_bigUse 16x16 intra prediction modesPositive integer numbernone
enable_inter_8x8Use 8x8 intra prediction modesPositive integer numbernone
enable_inter_4x4Use 4x4 intra prediction modesPositive integer numbernone
enable_inter_pcmUse PCM intra prediction modesPositive integer numbernone
fast_rd_optimizationFast Rate Distortion optimizationaccurate, fast, combinenone
quant_modeQuantization optimization mode0,
1,
2,
3
none
grain_opt_strengthScalable film grain optimizationyes, nonone
rdo_ip_4x4RDO based selection of best Intra modeoff, fast, slownone
adaptive_quant_strengthAadaptive quantization strengthsPositive integer numbernone
denoise_strength_yLuma denoise strengthPositive integer number between 0 and 100 inclusivenone
denoise_strength_cChroma denoise strengthPositive integer number between 0 and 100 inclusivenone
black_norm_levelPre-encoding black normalization levelPositive integer number between 0 and 255 inclusivenone
pulse_reductionKey frame pulsing reductionPositive integer number between 0 and 10 inclusivenone