2

我尝试使用VlcsharpNAudio播放 24 位 PCM 音频(s24le) 。

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

接下来,我尝试了两个示例视频。一个有 24 位 PCM 音频,另一个有 16 位音频(使用 ffmpeg CLI 从 24 位转换),除此之外,一切都相同。它们播放得很好,但是当我通过调试器看到数据时,vlc的音频播放回调得到的样本数据是一样的。

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

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

4

1 回答 1

0

如果您想强制 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)

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

于 2020-07-06T05:24:57.423 回答