Revisão rápida do áudio do Linux: Hoje, basicamente todos os drivers de dispositivos fazem parte do ALSA. O ALSA pode ser usado sozinho, mas basicamente todas as distribuições executam o Pulseaudio no topo, o que oferece uma melhor experiência em alguns aspectos. O Pulseaudio inclui uma camada de compatibilidade que permite que aplicativos antigos somente do ALSA usem o Pulseaudio fingindo que é um dispositivo ALSA (chamado pulse
), enquanto o Pulseaudio, por sua vez, usa os drivers de dispositivo do ALSA.
Seu sistema é assim e você tem dois dispositivos de áudio (o dispositivo interno e a câmera).
Então, o que acontece quando você usa --input-slave=alsa://
é que vlc usa a camada de compatibilidade, que acessa o Pulseaudio, que adivinha qual dispositivo você quer e fornece o primeiro dispositivo, que é o dispositivo interno e não a webcam. Assim, nenhum som.
Você pode usar pavucontrol
(ou pacmd
ou pactl
se você não tiver uma GUI) durante a gravação para alterar de onde vlc
grava. Dependendo da sua configuração do Pulseaudio, essa escolha geralmente será lembrada da próxima vez, então você só precisa fazer isso uma vez.
Ou melhor ainda, diga ao vlc para usar o Pulseaudio em primeiro lugar.
Não consegui encontrar rapidamente documentação adequada sobre --input-slave
para vlc, mas os resultados do google sugerem --input-slave=pulse
funciona, e muito provavelmente há alguma sintaxe --input-slave=pulse://pulseaudio_source_name
que realmente permite que você especifique a placa correta (chamada "fonte de som" em Pulseaudio).
Editar
O código-fonte diz que o formato é pulse://SOURCE
, sem especificar detalhes, então eu acho que você pode fazer
pactl list short sources
e, em seguida, especifique algo como pulse://alsa_input.usb-XXX-YYY
com qualquer nome de origem do Pulseaudio. Novamente, você pode usar pavucontrol
para reatribuir a fonte, se necessário.