vlc 使用 v4l2 进行视频流式传输,如何从我的 envy24 音频卡流式传输音频?

vlc 使用 v4l2 进行视频流式传输,如何从我的 envy24 音频卡流式传输音频?

我有 VIA Technologies Inc. VT1720/24 [Envy24PT/HT] PCI 多通道音频控制器。我能够使用 v4l2 和视频设备名 /dev/video0 顺利地传输视频。我想要传输的音频连接到我的一个 envy24 输入。无论我尝试选择什么音频设备(/dev/adsp、/dev/audio、/dev/audio1、/dev/dsp、/dev/dsp1),VLC 都无法打开 MRL alsa:///dev/[device_name]。有什么想法吗?

答案1

对我来说,在大多数情况下,hw:x,0 有效(x 号声卡),但它对一张卡不起作用 - 我的 cakewalk ua-1g - 我得到了同样的错误。我不是 100% 确定,但似乎格式是 s16le(16 位小端),所以如果输入与格式不匹配,这可能会归档。在我的情况下,我可能需要 24 位。查看 /proc/asound/cardx/...(如 stream0)或直接查看 /proc/asound/ 以获取有关确切样本格式的一些信息。

答案2

正确的设置是使用我的声卡(24 位有符号小端)的样本格式 S24_3LE(注意 3)。arecord 应该显示要使用的确切样本格式的摘要。在 alsa 用户 ML 上,我读到

Envy 芯片很有趣,它们总是捕获 10 个通道之类的东西,如果你想保存到一个常见的 2 通道文件,你需要将其减少到 2 个。“plughw”可以做到这一点,所以试试看,

arecord -f dat -D plughw:0 测试.wav

由于 plughw 也可以在 vlc 中使用,因此您可以尝试使用 dsp 录制。更改 vlc 中的样本格式需要在 vlc Wiki 或文档中进行一些挖掘,并且可能需要编辑 ~/.vlc/vlcrc。上述格式未在http://wiki.videolan.org/Raw所以 plughw 可能是最好的选择。

答案3

使用 arecord -L 我得到了可以使用的频道列表,但似乎无论我选择什么都听不到声音。我通过编译带有 oss 支持的 vlc 并使用我的 alsa 的 oss 模拟设备 /dev/dsp 解决了这个问题。

相关内容