Audio playlist

client
playout

#1

I’m struggling to get an audio playlist to work properly. I have a list of .wav files that are added to a group in a rundown (in the official CasparCG Client, version 2.0.8) with autostep and autoplay enabled. I have enabled OSC input in the Client.

Selecting individual files and hitting F2 plays each file with no issues.

When I play the group, however, I notice the server executes PlayCommand on each file in rapid succession (no/negligible delay between each) and then plays only the final file in the group through the server’s consumers.

I suspect the issue might relate to the fact that they’re audio files and the server and client do not know the actual length of each but I’m a novice to CasparCG so this could be WAY off the mark. I did try giving each file a Duration value but I’m still only getting the last file in the list actually played.

From the logs, it actually looks like the Client doesn’t wait for items to actually play, it just sends a flood of play requests:

[2020-01-28 15:01:47.013] [7920]  [info]    Received message from 192.168.10.23: PLAY 1-30 "MUSIC/STARCRAFT/HEART OF THE SWARM/001. SWARM (INTRO)" CUT 8 Linear RIGHT\r\n
[2020-01-28 15:01:47.020] [11916] [debug]   [audio-decoder] PCM signed 16-bit little-endian Selected channel layout STEREO
[2020-01-28 15:01:47.020] [11916] [info]    ffmpeg[001. Swarm (Intro).wav||0/0] [audio-decoder] PCM signed 16-bit little-endian
[2020-01-28 15:01:47.023] [11916] [info]    transition[empty=>ffmpeg[001. Swarm (Intro).wav||0/0]] Initialized.
[2020-01-28 15:01:47.023] [11916] [debug]   Executed command: PlayCommand
[2020-01-28 15:01:47.023] [11916] [info]    Sent message to 192.168.10.23: 202 PLAY OK\r\n
[2020-01-28 15:01:47.023] [7920]  [info]    Received message from 192.168.10.23: PLAY 1-30 "MUSIC/STARCRAFT/HEART OF THE SWARM/003. HOPES AND FEARS" CUT 1 Linear RIGHT\r\n
[2020-01-28 15:01:47.024] [7920]  [info]    Received message from 192.168.10.23: PLAY 1-30 "MUSIC/STARCRAFT/HEART OF THE SWARM/004. I AM KERRIGAN" CUT 1 Linear RIGHT\r\n
[2020-01-28 15:01:47.024] [7920]  [info]    Received message from 192.168.10.23: PLAY 1-30 "MUSIC/STARCRAFT/HEART OF THE SWARM/005. APPRECIATED COOPERATION" CUT 1 Linear RIGHT\r\n
[2020-01-28 15:01:47.031] [11916] [debug]   [audio-decoder] PCM signed 16-bit little-endian Selected channel layout STEREO
[2020-01-28 15:01:47.031] [11916] [info]    ffmpeg[003. Hopes and Fears.wav||0/0] [audio-decoder] PCM signed 16-bit little-endian
[2020-01-28 15:01:47.034] [11916] [info]    transition[empty=>ffmpeg[003. Hopes and Fears.wav||0/0]] Initialized.
[2020-01-28 15:01:47.034] [11916] [debug]   Executed command: PlayCommand

(this is just a small sample, obviously the pattern above repeats for every file in the group)

After the client finishes flooding the server with Play requests, the server rapidly processes all the requests:

[2020-01-28 15:01:47.548] [11916] [info]    Sent message to 192.168.10.23: 202 PLAY OK\r\n
[2020-01-28 15:01:47.551] [16956] [info]    transition[ffmpeg[033. Allegiance Bound.wav||0/0]=>ffmpeg[034. Trench Warfare.wav||0/0]] End Of File.
[2020-01-28 15:01:47.556] [16956] [info]    transition[ffmpeg[033. Allegiance Bound.wav||0/0]=>ffmpeg[034. Trench Warfare.wav||0/0]] Uninitialized.
[2020-01-28 15:01:47.562] [11916] [debug]   [audio-decoder] PCM signed 16-bit little-endian Selected channel layout STEREO
[2020-01-28 15:01:47.562] [11916] [info]    ffmpeg[035. Fire in the Sky.wav||0/0] [audio-decoder] PCM signed 16-bit little-endian
[2020-01-28 15:01:47.566] [11916] [info]    transition[empty=>ffmpeg[035. Fire in the Sky.wav||0/0]] Initialized.
[2020-01-28 15:01:47.566] [11916] [debug]   Executed command: PlayCommand
[2020-01-28 15:01:47.566] [11916] [info]    Sent message to 192.168.10.23: 202 PLAY OK\r\n
[2020-01-28 15:01:47.567] [16956] [info]    transition[ffmpeg[034. Trench Warfare.wav||0/0]=>ffmpeg[035. Fire in the Sky.wav||0/0]] End Of File.
[2020-01-28 15:01:47.572] [16956] [info]    transition[ffmpeg[034. Trench Warfare.wav||0/0]=>ffmpeg[035. Fire in the Sky.wav||0/0]] Uninitialized.
[2020-01-28 15:02:01.981] [7920]  [info]    Received message from 192.168.10.23: STOP 1-30\r\n
[2020-01-28 15:02:01.981] [11916] [debug]   Executed command: StopCommand
[2020-01-28 15:02:01.981] [11916] [info]    Sent message to 192.168.10.23: 202 STOP OK\r\n

(these are just the final 2 files, and only the last in the list has any StopCommands.)

As mentioned, although the server has a PlayCommand logged for each file, only the final file in the group actually plays out.


#2

ok, I’ve done a little more banging around with things and can add:

I didn’t have an section in my casparcg.config file, so I added one:

I’m not sure what port in that definition is the one I need configured in my Client, so I’ve tried both. I’m still getting the same results, with only the last file in the list playing.


#3

It seams, that Caspar client does not get timing information’s on audio files. What about rendering the clips as video files? I know: an ugly workaround…


#4

CCG counts frames. If you convert the files to MP4 with just black it shouldn’t be a big increase in file size.