Server v2.1.0 beta 2 not outputting audio (Windows)

Hi everyone,
I’m using the old version of the server as I need to interact actively with the HTML files i use.
However, I hadn’t found how to output audio from the server. I use Voicemeeter and its virtual in, and I only need a stereo output; the Windows system outputs are set correctly as in the last version of the server the audio outputs correctly into the system. My main suspect is the config file not set up properly, but I don’t know where is the problem, as I am a newbie on this software.
I’m using Server 2.1.0 Beta 2 on Windows as is the only version I found on the repo that still supported interacting with HTMLs.
I have to clarify that when I give the play command to the audio file, even on the meters of the client it doesn’t show up nothing.

My config file is as it follows:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <paths>
    <media-path>media/</media-path>
    <log-path>log/</log-path>
    <data-path>data/</data-path>
    <template-path>template/</template-path>
    <thumbnail-path>thumbnail/</thumbnail-path>
    <font-path>font/</font-path>
  </paths>
  <lock-clear-phrase>secret</lock-clear-phrase>
  <channels>
    <channel>
      <video-mode>1080p6000</video-mode>
      <channel-layout>stereo</channel-layout>
      <consumers>
        <screen>
          <device>1</device>
          <windowed>false</windowed>
          <borderless>true</borderless>
          <stretch>none</stretch>
          <aspect-ratio>16:9</aspect-ratio>
        </screen>
        <system-audio>
          <channel-layout>stereo</channel-layout>
          <latency>200</latency>
        </system-audio>
      </consumers>
    </channel>
  </channels>
  <controllers>
    <tcp>
      <port>5250</port>
      <protocol>AMCP</protocol>
    </tcp>
    <tcp>
      <port>3250</port>
      <protocol>LOG</protocol>
    </tcp>
  </controllers>
  <audio>
	<channel-layouts>
		<channel-layout name="mono"        type="mono"        num-channels="1" channel-order="FC" />
		<channel-layout name="stereo"      type="stereo"      num-channels="2" channel-order="FL FR" />
		<channel-layout name="matrix"      type="matrix"      num-channels="2" channel-order="ML MR" />
		<channel-layout name="film"        type="5.1"         num-channels="6" channel-order="FL FC FR BL BR LFE" />
		<channel-layout name="smpte"       type="5.1"         num-channels="6" channel-order="FL FR FC LFE BL BR" />
		<channel-layout name="ebu_r123_8a" type="5.1+downmix" num-channels="8" channel-order="DL DR FL FR FC LFE BL BR" />
		<channel-layout name="ebu_r123_8b" type="5.1+downmix" num-channels="8" channel-order="FL FR FC LFE BL BR DL DR" />
		<channel-layout name="8ch"         type="8ch"         num-channels="8" />
		<channel-layout name="16ch"        type="16ch"        num-channels="16" />
	</channel-layouts>
	<mix-configs>
		<mix-config from-type="mono"          to-types="stereo, 5.1"  mix="FL = FC                                           | FR = FC" />
		<mix-config from-type="mono"          to-types="5.1+downmix"  mix="FL = FC                                           | FR = FC                                         | DL = FC | DR = FC" />
		<mix-config from-type="mono"          to-types="matrix"       mix="ML = FC                                           | MR = FC" />
		<mix-config from-type="stereo"        to-types="mono"         mix="FC &lt; FL + FR" />
		<mix-config from-type="stereo"        to-types="matrix"       mix="ML = FL                                           | MR = FR" />
		<mix-config from-type="stereo"        to-types="5.1"          mix="FL = FL                                           | FR = FR" />
		<mix-config from-type="stereo"        to-types="5.1+downmix"  mix="FL = FL                                           | FR = FR                                         | DL = FL | DR = FR" />
		<mix-config from-type="5.1"           to-types="mono"         mix="FC &lt; FL + FR + 0.707*FC + 0.707*BL + 0.707*BR" />
		<mix-config from-type="5.1"           to-types="stereo"       mix="FL &lt; FL + 0.707*FC + 0.707*BL                  | FR &lt; FR + 0.707*FC + 0.707*BR" />
		<mix-config from-type="5.1"           to-types="5.1+downmix"  mix="FL = FL                                           | FR = FR                                         | FC = FC | BL = BL | BR = BR | LFE = LFE | DL &lt; FL + 0.707*FC + 0.707*BL | DR &lt; FR + 0.707*FC + 0.707*BR" />
		<mix-config from-type="5.1"           to-types="matrix"       mix="ML = 0.3204*FL + 0.293*FC + -0.293*BL + -0.293*BR | MR = 0.3204*FR + 0.293*FC + 0.293*BL + 0.293*BR" />
		<mix-config from-type="5.1+stereomix" to-types="mono"         mix="FC &lt; DL + DR" />
		<mix-config from-type="5.1+stereomix" to-types="stereo"       mix="FL = DL                                           | FR = DR" />
		<mix-config from-type="5.1+stereomix" to-types="5.1"          mix="FL = FL                                           | FR = FR                                         | FC = FC | BL = BL | BR = BR | LFE = LFE" />
		<mix-config from-type="5.1+stereomix" to-types="matrix"       mix="ML = 0.3204*FL + 0.293*FC + -0.293*BL + -0.293*BR | MR = 0.3204*FR + 0.293*FC + 0.293*BL + 0.293*BR" />
	</mix-configs>
</audio>
</configuration>

Is anyone able to help me with this?
Thanks in avance,
Daniele

There is another CasparCG server version that may be better for long-term deployment. NRK created a slight variant of the main CasparCG 2.1, and this was deployed as part of their Sophie Automation playout system. I still use the NRK server version 2.1.12 for some projects. The server code build is available via Github here. Look for either V2.1.12NRK or V2.1.13 - both these should still support interaction with the screen consumer in HTML pages.

I used your config with V2.1.12NRK, but not with any audio routing such as Voicemeeter. Sound came out of my computer audio jack. So the config works, suggesting you may have an issue with linking CasparCG to Voicemeeter.

In your casparcg server folder there is a log/ sub-folder. CasparCG server writes to a file all the output of the startup process, and reports when media is played. Does that log file give you any reports about the audio output?

Andy.

1 Like

Hi, thanks for the response.
I have both tried looking at the log file and downloading the NRK’s version of CasparCG.

First, the NRK’s version audio output works with some files.
MP3s do NOT work; FLACs, WAVes, MP4 (with compressed audio just like a MP3) do work.
The meters in the client (currently using SVT’s 2.3.0) do not show up working in both cases.
I don’t know if is a mastering or an audio quality problem on the outputs of the file, that the server refuses to play (the MP3s I tried were normal 16bit 44.1kHz), or what else.

Then, the log file(s).

Trying to read the log file of SVT’s Server 2.1.0 Beta 2 the output is as it follows, even tough the audio was not playing.

[2025-08-31 09:35:53.640] [4604]  [info]    Received message from 127.0.0.1: PLAY 1-30 "SNAP (EUROVISION 2022 - ARMENIA - KARAOKE VERSION)" CUT 1 Linear RIGHT\r\n
[2025-08-31 09:35:53.643] [8552]  [info]    [ffmpeg] [mp3 @ 000002688D242960] Skipping 0 bytes of junk at 99447.
[2025-08-31 09:35:53.643] [8552]  [info]    
[2025-08-31 09:35:53.646] [8552]  [info]    ffmpeg[Snap (Eurovision 2022 - Armenia - Karaoke Version).mp3|1280x720p50.00|0/16107120] [video-decoder] MJPEG (Motion JPEG)
[2025-08-31 09:35:53.647] [8552]  [info]    ffmpeg[Snap (Eurovision 2022 - Armenia - Karaoke Version).mp3|1280x720p50.00|0/16107120] [audio-decoder] MP3 (MPEG audio layer 3)
[2025-08-31 09:35:53.652] [8552]  [info]    transition[empty=>ffmpeg[Snap (Eurovision 2022 - Armenia - Karaoke Version).mp3|1280x720p50.00|0/16107120]] Initialized
[2025-08-31 09:35:53.652] [8552]  [info]    Sent message to 127.0.0.1:202 PLAY OK\r\n
[2025-08-31 09:35:53.668] [14712] [warning] [ffmpeg] [swscaler @ 0000026891C51040] deprecated pixel format used, make sure you did set range correctly
[2025-08-31 09:35:53.668] [14712] [warning] 
[2025-08-31 09:35:53.668] [14712] [info]    [frame_muxer] simple 1280x720p50.00
[2025-08-31 09:35:53.671] [14712] [warning] ffmpeg[Snap (Eurovision 2022 - Armenia - Karaoke Version).mp3|1280x720p50.00|1/16107120] Frame blending frame rate conversion required to conform to channel frame rate.
[2025-08-31 09:35:53.687] [16052] [info]    ffmpeg[Snap (Eurovision 2022 - Armenia - Karaoke Version).mp3|1280x720p50.00|1/16107120] Destroyed.

Trying NRK’s one with a MP3 that does not work, the output is as it follows

[2025-08-31 10:45:33.973] [21332] [info]    Received message from 127.0.0.1: PLAY 1-30 "SNAP (EUROVISION 2022 - ARMENIA - KARAOKE VERSION)" CUT 0 Linear RIGHT\r\n
[2025-08-31 10:45:33.977] [8616]  [info]    ffmpeg[Snap (Eurovision 2022 - Armenia - Karaoke Version).mp3|1280x720p45.00|0/16107120] [video-decoder] MJPEG (Motion JPEG)
[2025-08-31 10:45:33.979] [8616]  [info]    ffmpeg[Snap (Eurovision 2022 - Armenia - Karaoke Version).mp3|1280x720p45.00|0/16107120] [audio-decoder] MP3 (MPEG audio layer 3)
[2025-08-31 10:45:33.979] [8616]  [warning] No exact audio cadence match found for framerate 45/1
[2025-08-31 10:45:33.979] [8616]  [warning] Closest match is 50/1
[2025-08-31 10:45:33.979] [8616]  [warning] which is a 5/1 difference.
[2025-08-31 10:45:33.983] [8616]  [info]    transition[empty=>ffmpeg[Snap (Eurovision 2022 - Armenia - Karaoke Version).mp3|1280x720p45.00|0/16107120]] Initialized
[2025-08-31 10:45:33.983] [20260] [info]    Sent message to 127.0.0.1:202 PLAY OK\r\n
[2025-08-31 10:45:33.988] [12956] [warning] [ffmpeg] [swscaler @ 000001CFB15CDC00] deprecated pixel format used, make sure you did set range correctly
[2025-08-31 10:45:33.988] [12956] [warning] 
[2025-08-31 10:45:33.988] [12956] [info]    [frame_muxer] simple 1280x720p45.00
[2025-08-31 10:45:33.988] [12956] [warning] [ffmpeg] [swscaler @ 000001CFCBF71540] deprecated pixel format used, make sure you did set range correctly
[2025-08-31 10:45:33.988] [12956] [warning] 
[2025-08-31 10:45:33.992] [6284]  [warning] ffmpeg[Snap (Eurovision 2022 - Armenia - Karaoke Version).mp3|1280x720p45.00|1/16107120] Frame blending frame rate conversion required to conform to channel frame rate.

The output of NRK’s Server with a FLAC that does work is as it follows

[2025-08-31 10:51:59.797] [21332] [info]    Received message from 127.0.0.1: PLAY 1-10 "COLDPLAY - PARADISE" CUT 0 Linear RIGHT\r\n
[2025-08-31 10:51:59.801] [8616]  [info]    ffmpeg[Coldplay - Paradise.flac||0/0] [audio-decoder] FLAC (Free Lossless Audio Codec)
[2025-08-31 10:51:59.805] [8616]  [info]    transition[empty=>ffmpeg[Coldplay - Paradise.flac||0/0]] Initialized
[2025-08-31 10:51:59.805] [11016] [info]    Sent message to 127.0.0.1:202 PLAY OK\r\n

Now I think that the “framerate” of the audio is the problem. However, I do not know how to move forward, or how to covert (if it’s possible) from 45 to 50. Running the ffplay utility of ffmpeg plays back all the files (even the ones that do not work) correctly as expected.

Thanks,
Daniele

Thank you for including the version of client you are using. Hopefully we can get the audio metering working for your system with a few simple changes. You actually need an earlier version of the SVT client software. I suggest you need V2.0.8 or V2.0.9. Version 2.0.8 is available from the CasparCG client repository here, scroll to the bottom of the page to find 2.0.8. Version 2.0.9 can be accessed via URL https://builds.casparcg.com/CasparCG Client/master. For some reason the forum page will not allow me to enter the full URL as a hotlink, so you will need to cut and paste the address into your browser.

The file name you need from the folder is:
CasparCG Client 8fe4871ae06abff4301f932acb98008aef043bce.zip

Feel free to rename the unzipped folders. V2.0.9 has extra features such as ability to send OSC control messages to the client via a websocket connection. This enables use of a simple web page to control the client playout.

CasparCG server emits a stream of OSC transported status information back to connected clients. The status includes the peak audio level for each channel during the last playback frame. The structure of the OSC data and sample levels changed significanly when server V2.2 was created. Client 2.2 was created to work with that server. Client 2.3 tidies up the V2.2 codebase and removes CasparCG client direct control of other broadcast equipment such as ATEM mixers, instead using the client OSC and http output messages to tell the open source BitFocus Companion to trigger control actions, enabling a much wider range of equipment control. So server versions 2.0.x and 2.1.x need the earlier client version that understands the OSC status data from those servers.

The client stores it’s configuration in a database file called database.s3db located at C:/Users/<username>/.CasparCG/Client, where <username> is the users windows log-on name. When a newer client version is run it updates the structure of that default database file, including changing the database version ident. Experience suggests using the older client when the database has been used by a newer client can cause unexpected issues, one being that audio metering does not always work. So when you step back to an older client is is sensible to delete the old database file and let the first run of the older client re-create the database, followed by re-entering your configuration requirements.

Provided you always run the client from a shortcut, you can make each client use a different database name. On the shortcut Target field add the following to the end of the command that runs the client exe:

-t "c:/Users/<username>/.CasparCG/Client/mydatabasename.s3db

where mydatabasename.s3db is the file name you want for that client version. Using such user selected database names enables you to run different client versions each targetted at the correct server version, or to target a single client version to access different CasparCG servers.

That should fix your metering issues.

I think you have correctly identified the issues with the files that are not playing - they are not using broadcast standard scan rates. I have tried a couple of MP3 audio files that have poster (still) frames - and these do not output audio. I also see reports such as 45 Hz frame rates. I can play CD tracks that are WAV formats. I’ll try, when I have some spare time, to see if I can get a better handle on MP3 replay issues.

Whilst CasparCG server makes extensive use of ffmpeg, it builds and uses a selected sub-set of the full ffmpeg capabilities. CasparCG was designed for use with standard broadcast frame rates and audio sample rates. The audio is intended to use 48000 sample rate, but with the ability to convert CD 44100 to 48000 sample rates. The server can also do some frame rate conversions, the available conversions varying with the server version. Prime output is assumed to be required via an SDI card such as a decklink or a Bluefish card using embedded audio. CasparCG only uses the basic version of embedded audio where the sample rate is 48000 and this is frequency locked to the video frame rate clock. The screen consumer is good for some applications, but audio and video can lip-sync drift over time.

If your content files are from uncontrolled sources, you will need to add a conformance stage to your workflow. Ideally this will operate as a drop folder monitored by the converter program that places the converted file in one folder, then moving the source file into a done folder. It is possible to use ffmpeg as the core of the conformance processor. I hope other members of the formum can point you at either the ffmpeg command line switches you need to use, or at a open source conformace solution (I’m only an occasional user of ffmpeg because I have another commercial program I can use for conformance operations).

If you want to know more about how CasparCG uses OSC, and how to manage client and server logs you may find my Introduction to CasparCG Graphics system gives you a useful start. This was written for server 2.3 and client 2.2, but the vast majority of the descriptions also apply to server 2.1 and client 2.0.x. The PDF document is available here on Github.

Man, thank you.
I now solved all my problems with this software.
For the MP3 I just run pass them with this command that removes the album cover and it works perfectly.

ffmpeg -i "path/to/your/original_file.mp3" -c:a copy -vn "path/to/your/new_file_audio_only.mp3"

Have a great day,
Daniele