Chromium --alsa-ouput-device标志不起作用

时间:2017-11-06 13:05:23

标签: google-chrome chromium alsa

我创建了一个虚拟alsa环回设备并尝试在google-chrome或chrome-browser中打开youtube链接,并尝试将其音频输出发送到该虚拟设备。然后使用ffmpeg我试图捕获音频。但无论我做什么,铬或铬总是将音频输出发送到默认的内置扬声器。如果我打开音量控制面板并将播放部分中应用程序的输出更改为环回,则它可以正常工作。但是我要求能够通过告诉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

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

我也遇到了同样的问题,因为Google并未提供用于ALSA输出的完整格式,因此您可以按照以下步骤操作,

  1. 列出插件硬件:

    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
    
  2. 现在从列表中选择您的插件硬件,并将其名称添加到--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

答案 1 :(得分:0)

在尝试执行相同操作时,我遇到了相同的问题。这是实际有效的方法:

chrome (...) --alsa-output-device=hw:0,0
ffmpeg -f alsa -ac 2 -i hw:0,1,1 test.wav 

这具有使用(卡0,设备0)进行输出的chrome,它被循环回到(卡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。