Simple playlist support in server

I feel like it’s been asked already, but my search skills are failing me today.

I am trying to play several video files one after another. Ideally with a quick mix transition in between (but it’s not a must). Is there a way to do that currently on the Server? Or do we need a Client support for that?

I vaguely remember writing a small client some time ago that would load a file in the background (LOADBG … AUTO) and then use OSC to monitor when the background layer becomes empty and load the next one. But, it still seems like a bit of an overkill.

One idea I had is to use FFmpeg concat filter. You can create a playlist file and tell FFmpeg to play it. Not sure if that could be used via an AMCP command somehow.

Did anyone else run into this? And if so, could you please share how you’ve solved it?

I guess more specifically, I’d like to know if/how this can be triggered from Bitfocus Companion.

Yes, it’s a AMCP command

LOADBG

Syntax:

LOADBG [channel:int]{-[layer:int]} [clip:string] {[loop:LOOP]} {[transition:CUT,MIX,PUSH,WIPE,SLIDE] [duration:int] {[tween:string]|linear}
{[direction:LEFT,RIGHT]|RIGHT}|CUT 0} {SEEK [frame:int]} {LENGTH [frames:int]} {FILTER [filter:string]} {[auto:AUTO]}

Loads a producer in the background and prepares it for playout. If no layer is specified the default layer index will be used.

clip will be parsed by available registered producer factories. If a successfully match is found, the producer will be loaded into the background.

If a file with the same name (extension excluded) but with the additional postfix _a is found this file will be used as key for the main clip.

loop will cause the clip to loop.

When playing and looping the clip will start at frame.

When playing and loop the clip will end after frames number of frames.

auto will cause the clip to automatically start when foreground clip has ended (without play). The clip is considered “started” after the optional transition has ended. Note: only one clip can be queued to play automatically per layer.

Examples:

>> LOADBG 1-1 MY_FILE PUSH 20 easeinesine LOOP SEEK 200 LENGTH 400 AUTO FILTER hflip
>> LOADBG 1 MY_FILE PUSH 20 EASEINSINE
>> LOADBG 1-1 MY_FILE SLIDE 10 LEFT
>> LOADBG 1-0 MY_FILE
>> PLAY 1-1 MY_FILE
>> LOADBG 1-1 EMPTY MIX 20 AUTO

…To automatically fade out a layer after a video file has been played to the end

See Animation Types for supported values for tween.