Skip to main content
Skip table of contents

Supported Proxy Video Format

Format specification

VidiEditor requires a proxy video to preview the media assets in the browser based frontend allowing work from anywhere even on lower bandwidth. VidiEditor's streaming server supports following video formats, considering usage of 16 by 9 videos as input.

  • Reference Documents: AFN-100, RDD-25

  • Container: MXF, MP4

  • Video Codec : H.264 Baseline Profile, Progressive scan

  • Video Frame Rates: 25, 30, 50, 29.97, 59.94

  • 16:9 Video resolutions: 640x360 pixels; 960x540 pixels, 1920x1080 pixels

  • Audio: AAC, 48 kHz, 192 kbps with mutliple amount of audio channels

Please note that in our web clients we rely on the Google Chrome decoding engine. But we recommend a maximum GOP size of about half a second (12 with PAL and 15 with NTSC) . The very maximum GOP size is 33.
One other point is very important: we do not allow B-frames at all. We experienced problems with that especially with DASH streaming and the Google Chrome's MSE implementation.

The usage of videos is not limited to 16:9 videos only. Having a system with video content having different aspect ratios such as 16:9, 9:16 or 1:1 VidiEditor allows to mix those videos on a timeline as long as they are in the same frame rate. In result it is easy to use video content from traditional linear television (Camera, SDI) mixed with videos coming for example from a mobile phone.

Hardware resources, Hardware acceleration and proxy format

Above definition allows to use different kind of proxy formats running VidiEditor in an on-prem/hybrid/BYOC context. It is a trade decision between:

  • Visual quality of used proxy format

  • Needed backend hardware

  • Used functionalities of VidiEditor

  • Possible amount of concurrent user session on that hardware

Those 3 aspects must be considered together when defining a systems proxy video format and especially its resolution and bandwidth. The streaming backend can be operated using software video encoding/decoding or using GPU based computing (Hardware Acceleration). Dedicated recommendations can be made while planning a system architecture depending on the above aspects. Please contact Vidispine support for a detailed recommendation about the best fitting proxy format and the needed hardware.

Transcoder Recommendation

While the above video format specifications work in general with VidiEditor, it should be mentioned that an aligned chain between proxy generation and media streaming is recommended to get the best results and performance out of the product. This is due to the fact that the smart rendering, used for timeline playback is optimized on specific parameters of the video codec, such as the GOP structure and encoder- and decoder settings. Therefore, VidiEditor's streaming backend is optimized on 2 transcoders used:

  1. VidiCoder using a shape tag as described below

  2. Transcoder S4M using Nablet decoder settings with mp4 and mxf RDD25 files

The solution would also work on files generated with different transcoders using above format specification. It might be that performance and accuracy drop when using a different transcoder.

In case a different transcoder solution is needed in specific scenarios, it can be helpful to get in contact with the VidiEditor’s product management to clarify differences on concrete examples.

Usage of Proxy Videos

The proxy video format is only used for preview in the source and timeline player components of VidiEditor to allow low bandwidth preview. When a publish action is performed, a newly created file will be transcoded based on the original shape. It is highly recommended to ensure the original and proxy shapes consist of the same frame rate to avoid frame rate conversion on publish also important for VidiEditor’s internal search filters for items having a correct shape. Only items are displayed in the search result having a shape matching the configuration of the ME_ProxyShapeTag in the ConfigPortal → VdiEditor → General → Setting page (see .

Configuring a shape not matching the above mentioned requirements for video files will result in the player not working in VidiEditor.

Configuring a Shape Tag

The aforementioned default shape tag to generate proxy videos is inserted during VidiEditor’s installation. It can be used to create proxy files usable by the streaming server and that therefore are suitable for preview in VidiEditor. It is defined as follows for MP4 Proxy:

XML
<TranscodePresetDocument xmlns="http://xml.vidispine.com/schema/vidispine">
    <format>mp4</format>
    <audio>
        <codec>aac</codec>
        <bitrate>192000</bitrate>
        <framerate>
            <numerator>1</numerator>
            <denominator>48000</denominator>
        </framerate>
        <channel>0</channel>
        <channel>1</channel>
        <channel>2</channel>
        <channel>3</channel>
        <channel>4</channel>
        <channel>5</channel>
        <channel>6</channel>
        <channel>7</channel>
        <stream>2</stream>
        <stream>2</stream>
        <stream>2</stream>
        <stream>2</stream>
    </audio>
    <video>
        <scaling>
            <width>640</width>
            <height>360</height>
            <targetDAR>
                <horizontal>16</horizontal>
                <vertical>9</vertical>
            </targetDAR>
        </scaling>
        <codec>h264</codec>
        <bitrate>2000000</bitrate>
        <preset>baseline</preset>
        <setting>
            <key>interlace_flag</key>
            <value>progressive</value>
        </setting>
    </video>
    <thumbnailPlugin>scenechange</thumbnailPlugin>
    <metadata/>
</TranscodePresetDocument>

or for RDD25 proxy that is a format allowing growing playback support:

XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TranscodePresetDocument xmlns="http://xml.vidispine.com/schema/vidispine">
    <description>Proxy_RDD25</description>
    <name>__mp4</name>
    <format>mxf_nablet</format>
    <audio>
        <codec>nablet_aac</codec>
        <bitrate>128000</bitrate>
        <framerate>
            <numerator>1</numerator>
            <denominator>48000</denominator>
        </framerate>
        <channel>0</channel>
        <channel>1</channel>
        <channel>2</channel>
        <channel>3</channel>
        <channel>4</channel>
        <channel>5</channel>
        <channel>6</channel>
        <channel>7</channel>
        <stream>2</stream>
        <stream>2</stream>
        <stream>2</stream>
        <stream>2</stream>
        <setting>
            <key>AAC_OUTPUT_FORMAT</key>
            <value>AF_ADTS</value>
        </setting>
    </audio>
    <video>
        <scaling>
            <width>960</width>
            <height>540</height>
        </scaling>
        <codec>h264</codec>
        <bitrate>4000000</bitrate>
        <framerate>
            <numerator>1</numerator>
            <denominator>25</denominator>
        </framerate>
        <preset>baseline</preset>
        <setting>
            <key>level_id</key>
            <value>31</value>
        </setting>
        <burnTimecode>false</burnTimecode>
        <burnSubtitles>false</burnSubtitles>
    </video>
    <metadata>
        <field>
            <key>V3_GUID</key>
            <value>ff635abf-dedf-72bb-30c7-d34b3a30d0f4</value>
        </field>
        <field>
            <key>V3_DisplayName</key>
            <value>Proxy_RDD25</value>
        </field>
    </metadata>
    <script></script>
    <muxerSetting>
        <key>nablet_muxing_mode</key>
        <value>Afn100</value>
    </muxerSetting>
    <muxerSetting>
        <key>MXF_MUX_FLAG_KEEP_HEADER_INCOMPLETE</key>
        <value>true</value>
    </muxerSetting>
    <muxerSetting>
        <key>MXF_MUX_FLAG_KEEP_HEADER_OPEN</key>
        <value>true</value>
    </muxerSetting>
    <muxerSetting>
        <key>MXF_MUX_FLAG_DO_NOT_FINALYZE_HEADER</key>
        <value>true</value>
    </muxerSetting>
    <muxerSetting>
        <key>MXF_MUX_FLAG_DO_NOT_FINALYZE_BODIES</key>
        <value>false</value>
    </muxerSetting>
    <generateCixTix>true</generateCixTix>
</TranscodePresetDocument>

Anyway it is easy to modify the technical settings as wanted using the ConfigurationPortal Global Shape Tag configuration page:

The usage of proxy formats in VidiEditor can be configured in the VidiEditor → General → Settings Page (see General Configurations) allowing to set a list of supported formats to be found in VidiEditor:

Please note that the physical video files must stay above definition to be streamable. Configuring shapes into this filter that refer to files of not supported formats will result in a not working preview of inside the VidiEditor players.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.