Chromium --alsa-output-device 标志不起作用
Chromium --alsa-ouput-device flag not working
我已经创建了一个虚拟的 alsa 环回设备并尝试在 google-chrome 或 chromium-browser 中打开一个 youtube link 并尝试将它的音频输出发送到那个虚拟设备。然后使用 ffmpeg 我试图捕捉音频。但无论我做什么,chrome 或 chromium 总是将音频输出发送到默认的内置扬声器。如果我打开音量控制面板并将播放部分中的应用程序输出更改为环回,那么它就可以工作了。但是我的要求是能够通过告诉 chrome 在哪个设备上发送音频来以编程方式进行。
以下是我尝试实现的命令:
google-chrome --window-position=0,0 --window-size=1920,1080 --alsa-output-device=alsa_output.1.analog-stereo.monitor -kiosk https://www.youtube.com/watch?v=LTbnmiXWs2k
google-chrome --window-position=0,0 --window-size=1920,1080 --alsa-output-device=hw:1,0 -kiosk https://www.youtube.com/watch?v=LTbnmiXWs2k
下面是运行良好的 ffmpeg 命令:
ffmpeg -f pulse -i alsa_output.1.analog-stereo.monitor -ac 1 -ar 16000 test.wav
任何帮助将不胜感激。
我也遇到了同样的问题,因为Google没有提供ALSA输出使用的完整格式,所以你可以按照下面的步骤,
列出插件硬件:
aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
pulse
PulseAudio Sound Server
default:CARD=PCH
HDA Intel PCH, ALC662 rev3 Analog
Default Audio Device
sysdefault:CARD=PCH
HDA Intel PCH, ALC662 rev3 Analog
Default Audio Device
front:CARD=PCH,DEV=0
HDA Intel PCH, ALC662 rev3 Analog
Front speakers
surround21:CARD=PCH,DEV=0
HDA Intel PCH, ALC662 rev3 Analog
2.1 Surround output to Front and Subwoofer speakers
现在 select 列表中的插件硬件并将其名称添加到 --alsa-output-device=
--alsa-output-device='plug:surround21'
因此您的完整命令如下所示,
google-chrome --window-position=0,0 --window-size=1920,1080 --alsa-output-device='plug:surround21' -kiosk https://www.youtube.com/watch?v=LTbnmiXWs2k
我在尝试做同样的事情时遇到了同样的问题。这是实际起作用的:
chrome (...) --alsa-output-device=hw:0,0
ffmpeg -f alsa -ac 2 -i hw:0,1,1 test.wav
这 chrome 使用(卡 0,设备 0)作为输出,循环回(卡 0,设备 1,子流 1)。格式为 --alsa-output-device=hw:card,device
反之亦然:
chrome (...) --alsa-output-device=hw:0,1
ffmpeg -f alsa -ac 2 -i hw:0,0,1 test.wav
无法选择子流(例如 --alsa-output-device=hw:0,1,4)。如果使用 ffmpeg 捕获,则假设子流 1.
我已经创建了一个虚拟的 alsa 环回设备并尝试在 google-chrome 或 chromium-browser 中打开一个 youtube link 并尝试将它的音频输出发送到那个虚拟设备。然后使用 ffmpeg 我试图捕捉音频。但无论我做什么,chrome 或 chromium 总是将音频输出发送到默认的内置扬声器。如果我打开音量控制面板并将播放部分中的应用程序输出更改为环回,那么它就可以工作了。但是我的要求是能够通过告诉 chrome 在哪个设备上发送音频来以编程方式进行。
以下是我尝试实现的命令:
google-chrome --window-position=0,0 --window-size=1920,1080 --alsa-output-device=alsa_output.1.analog-stereo.monitor -kiosk https://www.youtube.com/watch?v=LTbnmiXWs2k
google-chrome --window-position=0,0 --window-size=1920,1080 --alsa-output-device=hw:1,0 -kiosk https://www.youtube.com/watch?v=LTbnmiXWs2k
下面是运行良好的 ffmpeg 命令:
ffmpeg -f pulse -i alsa_output.1.analog-stereo.monitor -ac 1 -ar 16000 test.wav
任何帮助将不胜感激。
我也遇到了同样的问题,因为Google没有提供ALSA输出使用的完整格式,所以你可以按照下面的步骤,
列出插件硬件:
aplay -L null Discard all samples (playback) or generate zero samples (capture) pulse PulseAudio Sound Server default:CARD=PCH HDA Intel PCH, ALC662 rev3 Analog Default Audio Device sysdefault:CARD=PCH HDA Intel PCH, ALC662 rev3 Analog Default Audio Device front:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev3 Analog Front speakers surround21:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev3 Analog 2.1 Surround output to Front and Subwoofer speakers
现在 select 列表中的插件硬件并将其名称添加到 --alsa-output-device=
--alsa-output-device='plug:surround21'
因此您的完整命令如下所示,
google-chrome --window-position=0,0 --window-size=1920,1080 --alsa-output-device='plug:surround21' -kiosk https://www.youtube.com/watch?v=LTbnmiXWs2k
我在尝试做同样的事情时遇到了同样的问题。这是实际起作用的:
chrome (...) --alsa-output-device=hw:0,0
ffmpeg -f alsa -ac 2 -i hw:0,1,1 test.wav
这 chrome 使用(卡 0,设备 0)作为输出,循环回(卡 0,设备 1,子流 1)。格式为 --alsa-output-device=hw:card,device
反之亦然:
chrome (...) --alsa-output-device=hw:0,1
ffmpeg -f alsa -ac 2 -i hw:0,0,1 test.wav
无法选择子流(例如 --alsa-output-device=hw:0,1,4)。如果使用 ffmpeg 捕获,则假设子流 1.