VLC如何在普通PC上播放24位PCM音频?

How can VLC play 24-bit PCM audio on general PC?

我尝试使用 Vlcsharp and NAudio.

播放 24 位 PCM 音频 (s24le)

我通过调用 libvlc_audio_set_callbacks() 来设置音频播放回调,首先获取原始样本数据。

接下来,我尝试了两个示例视频。一个是24位的PCM音频,一个是16位的(使用ffmpeg CLI从24位转换过来的),除此之外其他都一样。 都玩的不错,但是我用debugger看数据的时候,vlc's audio play callback得到的sample数据是一样的

经过一番研究,我发现如果没有合适的声卡,一般PC是无法播放24位PCM音频的。

如果正确,是否有一些位深度转换(24->16)过程可以播放?那么回调得到的样本数据是一样的吗?

如果你想强制vlc转换格式,你可以在这里设置格式参数: https://code.videolan.org/mfkl/libvlcsharp-samples/-/blob/master/AudioCallbacks/Program.cs#L59

int AudioSetup(ref IntPtr opaque, ref IntPtr format, ref uint rate, ref uint channels)

查看文档 here format 应该是 4 个 ascii 字符的字符串,但我不知道您可以在此处传递的可用格式。