Viz Engine Administrator Guide

Version 5.0 | Published December 20, 2022 ©

VML Clip Player

VML Clip Player is a direct replacement for DirectShow Clip Player and an alternative to Matrox Clip Player. The main goal of VML Clip Player is to be able to play non-broadcast resolution while offering similar functionality and behavior to Matrox Clip Player.

In Matrox workflow, the user can choose the preferred clip player, between VML Clip Player and Matrox Clip Player via the following configuration (VerboseConfig must be set to 1):

Default clip player to be used for this channel. 0=Matrox 1=VML
ClipIn1.Player: Default=0 Min=0 Max=1
ClipIn1.Player = 0

The default preferred clip player in Matrox workflow is Matrox Clip Player. It is also possible to change the preferred clip player during run-time via the following command:

MAIN*CONFIGURATION*CHANNELS*CLIPIN_0*PLAYER SET VML
MAIN*CONFIGURATION*CHANNELS*CLIPIN_0*PLAYER SET MATROX

Feature Comparison between Clip Players

Not all functionalities are available for VML. The following is a feature comparison between the three different supported clip players:

Functionality

VML

Matrox

DirectShow
(Viz 4.x and earlier)

Basic Functions (Play, Pause, Stop, Load, Scrub, Continue, Flush, Autorun)

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

In and out setting and getting

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

Loop playback

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

3-point loop / 4-point loop

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Upscale luma

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Repeat field

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Reverse field

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Playback speed

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

Native pending support

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

Embedded alpha format

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

Multiple files (alpha / fill / audio / VBI files)

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Timecode

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

VBI Passthrough (to output)

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Timecode Passthrough (to output)

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

CC Extraction

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Audio

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

SHM key events

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

Contiguous seek performance

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

DVE

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg (1)

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg (1)

Playlist management (insert, remove, replace, etc.)

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Mode on load error (pending)

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

V210 (10-bit support)

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Broadcast clip status

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

Replay mode

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Growing files

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Dealing with display aspect ratio

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Delay audio and video

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Hardware-accelerated decoding

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg (2)

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Mixed resolution mode

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg (3)

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg (3)

images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg (3)

(1) Simulated DVE is supported.
(2) With an additional Matrox M264 board.
(3) With slight difference in behavior documented below.

Warning: VML only allows three playback speeds (-1, 0, 1) for interlaced clips, while DirectShow does not allow negative playback speed. DirectShow has performance issues when doing contiguous seeking operation.

Mixed Resolution Mode in Matrox and VML Clip Player

Mixed resolution mode means playing clips with different resolution than the configured Viz Engine output resolution and/or the configured Viz Engine clip channel resolution. Matrox and VML clip player support the playback in mixed resolution. In Viz 4.x and earlier, Matrox clip player was already able to playback clips in mixed resolution, as long as the clips have the same framerate family as the output. However from Viz Engine 5.0 and later, Matrox clip player also support the playback of selected clips coming from smartphones with framerate family different than the configured Viz Engine output resolution. VML has always supported clips with framerate family different than the configured Viz Engine output resolution since its inception.

Even if both Matrox and VML clip players support mixed resolution, the following differences in behavior needs to be taken into account. This is referring only to mixed resolution in which the clip has the same framerate family as the configured Viz Engine output resolution.

Player

Output

Channel

Clip

STATUS GET AT EOF

SCRUBBING

CONCLUSIONS

VML

p50

p50

p50

duration 1000
current_position 999
play_mode scrubbing EOF
file_name D:/clips_reference/1080p50/1080p50_Video_ProRes_Encoder_ProRes[ch=2 bits=24-32]_matrox.mov
frame_rate 50.00000000
markin 0
markout 1000
output_frame_rate 50.00000000

Exactly the same between Matrox and VML. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

Exactly the same between Matrox and VML. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

MATROX

p50

p50

p50

duration 1000
current_position 999
play_mode scrubbing EOF
file_name D:/clips_reference/1080p50/1080p50_Video_ProRes_Encoder_ProRes[ch=2 bits=24-32]_matrox.mov
frame_rate 50.00000000
markin 0
markout 1000
output_frame_rate 50.00000000

Exactly the same between Matrox and VML. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

Exactly the same between Matrox and VML. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

VML

p50

i25

p50

duration 1000
current_position 998
play_mode scrubbing EOF
file_name D:/clips_reference/1080p50/1080p50_Video_ProRes_Encoder_ProRes[ch=2 bits=24-32]_matrox.mov
frame_rate 50.00000000
markin 0
markout 1000
output_frame_rate 25.00000000

Matrox displayed is -1 compared to VML on scrubbing to 00:00:05:00. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Matrox displayed last position is -1 compared to VML at scrubbing EOF. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

MATROX

p50

i25

p50

duration 1000
current_position 998
play_mode scrubbing EOF
file_name D:/clips_reference/1080p50/1080p50_Video_ProRes_Encoder_ProRes[ch=2 bits=24-32]_matrox.mov
frame_rate 50.00000000
markin 0
markout 1000
output_frame_rate 25.00000000

Matrox displayed is -1 compared to VML on scrubbing to 00:00:05:00. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Matrox displayed last position is -1 compared to VML at scrubbing EOF. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

VML

p50

p50

i25

duration 2000
current_position 1999
play_mode scrubbing EOF
file_name D:/clips_reference/1080i50/1080i50_Video_AVC-Intra_Encoder_AVCIntraClass100[TimeCode] [VBI] [ch=2 bits=24-32]_avcintra.mxf
frame_rate 25.00000000
markin 0
markout 2000
output_frame_rate 50.00000000

Exactly the same between Matrox and VML. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

Matrox displayed last position and Current Position is -1 compared to VML at scrubbing EOF. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

MATROX

p50

p50

i25

duration 2000
current_position 1998
play_mode scrubbing EOF
file_name D:/clips_reference/1080i50/1080i50_Video_AVC-Intra_Encoder_AVCIntraClass100[TimeCode] [VBI] [ch=2 bits=24-32]_avcintra.mxf
frame_rate 25.00000000
markin 0
markout 2000
output_frame_rate 50.00000000

Exactly the same between Matrox and VML. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

Matrox displayed last position and "Current Position" is -1 compared to VML at scrubbing EOF. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

VML

p50

i25

p50

duration 2000
current_position 1998
play_mode scrubbing EOF
file_name D:/clips_reference/1080i50/1080i50_Video_AVC-Intra_Encoder_AVCIntraClass100[TimeCode] [VBI] [ch=2 bits=24-32]_avcintra.mxf
frame_rate 25.00000000
markin 0
markout 2000
output_frame_rate 25.00000000

Exactly the same between Matrox and VML. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

Exactly the same between Matrox and VML. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

MATROX

p50

i25

p50

duration 2000
current_position 1998
play_mode scrubbing EOF
file_name D:/clips_reference/1080i50/1080i50_Video_AVC-Intra_Encoder_AVCIntraClass100[TimeCode] [VBI] [ch=2 bits=24-32]_avcintra.mxf
frame_rate 25.00000000
markin 0
markout 2000
output_frame_rate 25.00000000

Exactly the same between Matrox and VML. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

Exactly the same between Matrox and VML. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

VML

i25

i25

i25

duration 1000
current_position 999
play_mode scrubbing EOF
file_name D:/clips_reference/1080i50/1080i50_Video_AVC-Intra_Encoder_AVCIntraClass100[TimeCode] [VBI] [ch=2 bits=24-32]_avcintra.mxf
frame_rate 25.00000000
markin 0
markout 1000
output_frame_rate 25.00000000

Exactly the same between Matrox and VML. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

Exactly the same between Matrox and VML. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

MATROX

i25

i25

i25

duration 1000
current_position 999
play_mode scrubbing EOF
file_name D:/clips_reference/1080i50/1080i50_Video_AVC-Intra_Encoder_AVCIntraClass100[TimeCode] [VBI] [ch=2 bits=24-32]_avcintra.mxf
frame_rate 25.00000000
markin 0
markout 1000
output_frame_rate 25.00000000

Exactly the same between Matrox and VML. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

Exactly the same between Matrox and VML. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

VML

i25

p50

i25

duration 1000
current_position 999
play_mode scrubbing EOF
file_name D:/clips_reference/1080i50/1080i50_Video_AVC-Intra_Encoder_AVCIntraClass100[TimeCode] [VBI] [ch=2 bits=24-32]_avcintra.mxf
frame_rate 25.00000000
markin 0
markout 1000
output_frame_rate 50.00000000

Exactly the same between Matrox and VML. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

Matrox displayed last position is -1 compared to VML at scrubbing EOF. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

MATROX

i25

p50

i25

duration 1000
current_position 999
play_mode scrubbing EOF
file_name D:/clips_reference/1080i50/1080i50_Video_AVC-Intra_Encoder_AVCIntraClass100[TimeCode] [VBI] [ch=2 bits=24-32]_avcintra.mxf
frame_rate 25.00000000
markin 0
markout 1000
output_frame_rate 50.00000000

Exactly the same between Matrox and VML. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

Matrox displayed last position is -1 compared to VML at scrubbing EOF. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

VML

i25

i25

p50

duration 500
current_position 499
play_mode scrubbing EOF
file_name D:/clips_reference/1080p50/1080p50_MPEG-2__MpegIFrame422ProfileHighLevel_422[bitrate=300].avi
frame_rate 50.00000000
markin 0
markout 500
output_frame_rate 25.00000000

Matrox displayed is -1 compared to VML on scrubbing to 00:00:05:00. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Matrox displayed last position is -1 compared to VML at scrubbing EOF. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

MATROX

i25

i25

p50

duration 500
current_position 499
play_mode scrubbing EOF
file_name D:/clips_reference/1080p50/1080p50_MPEG-2__MpegIFrame422ProfileHighLevel_422[bitrate=300].avi
frame_rate 50.00000000
markin 0
markout 500
output_frame_rate 25.00000000

Matrox displayed is -1 compared to VML on scrubbing to 00:00:05:00. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Matrox displayed last position is -1 compared to VML at scrubbing EOF. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

VML

i25

p50

p50

duration 500
current_position 499
play_mode scrubbing EOF
file_name D:/clips_reference/1080p50/1080p50_MPEG-2__MpegIFrame422ProfileHighLevel_422[bitrate=300].avi
frame_rate 50.00000000
markin 0
markout 500
output_frame_rate 50.00000000

Exactly the same between Matrox and VML. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

Matrox Current Position (but not displayed one) is the same as duration but VML is duration -1. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

MATROX

i25

p50

p50

duration 500
current_position 500
play_mode scrubbing EOF
file_name D:/clips_reference/1080p50/1080p50_MPEG-2__MpegIFrame422ProfileHighLevel_422[bitrate=300].avi
frame_rate 50.00000000
markin 0
markout 500
output_frame_rate 50.00000000

Exactly the same between Matrox and VML. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/check.svg

Matrox Current Position (but not displayed one) is the same as duration but VML is duration -1. images/s/-wjspee/8703/98yf4s/_/images/icons/emoticons/error.svg

Non-broadcast Clip Support in Matrox and VML Clip Player

Broadcast clips are defined by their resolution (width and height), framerate, aspect ratio, scan mode and audio sample rate (48khz). The codec and format can also define a clip as broadcast clip. Examples of broadcast clips can be found in the Media Assets > Supported Codecs > Supported Codecs for Matrox Clip Playback section of the Viz Artist User Guide.

From Viz Engine version 5.0 and later, Matrox Clip Player also supports non-broadcast clips. These clips usually comes from smartphones. All of these clips are progressive resolution with non-broadcast resolution, aspect ratio, framerate and audio sample rate (41.1khz). The following needs to be taken into account regarding non-broadcast clip support in Matrox clip player:

  • Loading a clip with different framerate than the configured Viz Engine Output framerate, converts the clip framerate to the Viz Engine Output framerate.

  • DVE or Hybrid is not supported for non-broadcast clip.

  • Reverse playback might not be in real time.

  • Supported containers for non-broadcast clips are mostly .mov or .mp4.

VML Clip Player as a Fallback Clip Player

When using Matrox clip player as preferred clip player and the input clip is not supported, Viz Engine automatically tries to load the clip with VML clip player. However, this is not always possible, such as in the following case:

  • If the clip channel is configured as DVE or Hybrid.

When a clip channel is in fallback mode (using VML Clip Player) calling:

MAIN*CONFIGURATION*CHANNELS*CLIPIN_0*PLAYER GET

Still returns the original configuration. This is because this configuration means the preferred clip player to be used. If a clip is supported in Matrox clip player, then Matrox clip player is always the one used.

The preferred clip player is always used first in an attempt to load a new clip. If the loads fails, then the fallback triggers. An example of a workflow if the preferred clip player is configured as Matrox Clip Player:

  • User tries to load a supported clip: Matrox Clip Player is used.

  • User then tries to load an unsupported clip: Matrox Clip Player is used first, Matrox Clip Player reports the clip is not supported, fallback triggers and VML Clip Player is instead used to load the clip.

  • User then tries to load a supported clip: Matrox Clip Player is used first (since it is the preferred clip player) in an attempt to load the clip.

The following warning messages should appear in the console when a fallback has triggered:

WARNING: Unable to open file with Matrox clip player (active). Attempting to open file with VML clip player.

WARNING: Unable to open file with Matrox clip player (pending). Attempting to open file with VML clip player.

Depending on whether the target clip player inside Matrox Clip Player is the active or pending one.

The following message also appears after a VML Clip Player has been used to load an unsupported clip and a new clip is about to be loaded in Matrox Clip Player:

WARNING: VML Clip Player was used to open an unsupported clip. Using Matrox Clip Player again as preferred clip player.

The messages are there to warn the user that a clip player switch has been performed.

Warning: Do not use clip fallback in stage workflow since it is not full supported. The console also displays a warning when the pending clip player is the one failing to load a clip. Basic stage workflow which do not include back to back playback or 3-4 point loop work fine. If an unsupported clip is needed, then the best course of action is to change the preferred clip player of the clip channel to VML: ClipIn1.Player = 1.

The following warning appears in console when the pending clip player was used to attempt load a clip but failed:

WARNING: If this is part of a stage workflow (B2B, 3-4 point loop) clip fallback is not fully supported!!!