我正在尝试通过 pulseaudio 和 VLC 创建 HTTP 音频流:
cvlc -vvv pulse://alsa_output.pci-0000_00_05.0.analog-stereo.monitor --sout '#transcode{acodec=vorbis,ab=128,channels=2}:standard{access=http,dst=0.0.0.0:8888/audio.ogg}'
这很好用,但是我不想在主机上播放音频。我可以通过设置零接收器来停止正在播放的音频,但我无法让 VLC 流式传输此零接收器。
例如,如果我设置一个名为 fake 的空接收器并运行以下命令:
cvlc -vvv pulse://fake --sout '#transcode{acodec=vorbis,ab=128,channels=2}:standard{access=http,dst=0.0.0.0:8888/audio.ogg}'
我得到:
[0x7f03184cc1d8] pulsesrc demux error: cannot connect record stream: No such entity
[0x7f03184cc1d8] main demux debug: no access_demux modules matched
[0x7f0314003f58] main input debug: creating access 'pulse' location='fake', path='(null)'
[0x7f03184cc1d8] main access debug: looking for access module matching "pulse": 25 candidates
[0x7f03184cc1d8] main access debug: no access modules matched
[0x7f0314003f58] main input error: open of `pulse://fake' failed
[0x7f0314003f58] main input error: Your input can't be opened
[0x7f0314003f58] main input error: VLC is unable to open the MRL 'pulse://fake'. Check the log for details.
有什么方法可以实现这个目的吗?
答案1
伪造的是你的零接收器(音频目的地)
假监控是假的监听器(监听源)
你想使用假监控作为来源。
cvlc -vvv pulse://fake.monitor --sout '#transcode{acodec=vorbis,ab=128,channels=2}:standard{access=http,dst=0.0.0.0:8888/audio.ogg}'