Como criar uma saída de áudio virtual e rotea-lo na distro baseada no Ubuntu

0

Eu estou no elementaryOS 0.4.1 Loki, que é baseado no Ubuntu 16.04.1.

Eu quero usar o OBS , um gravador de tela, para gravar a jogabilidade junto com os sons que vêm do mesmo videogame. Eu também quero usar um aplicativo de bate-papo por voz em segundo plano durante o jogo, mas não quero que nenhum deles seja gravado pelo OBS.

O OBS não pode ignorar seletivamente o áudio de certos programas, mas pode gravar o som de um dispositivo de entrada especificado.

Euquerocriarumaentradavirtualeusaralistadesaídadopavucontrolparadirecionarmeuaplicativodebate-papoporvozparaessaentrada,paraqueelanãosejaescolhidapeloOBS.Aomesmotempo,queroqueestaentradasejareproduzidaemumaportadesaídadefonedeouvido/linha.

Eu sei que isso pode ser feito no Windows com software como o Virtual Audio Cables, mas não sei como fazer a mesma coisa no Linux.

Eu já tentei fazer algo com o sudo modprobe snd-dummy, mas ele não me deixa direcionar o manequim para uma saída de headphone.

Como devo abordar isso?

    
por RobotUnderscore 06.08.2017 / 02:57

1 resposta

2

Deixe-me repetir: Um único programa ou grupo de programas A (jogo) deve produzir som tanto para o OBS quanto para o fone de ouvido, enquanto outro único programa ou grupo de programas B (bate-papo) só deve emitir som para o fone de ouvido, no nível Pulseaudio. Correto?

Não use snd-dummy , ele funciona no nível da ALSA. Em vez disso, crie um "nulo sink" no nível Pulseaudio:

pacmd load-module module-null-sink sink_name=game_sink sink_properties=device.description=Game-Sink

Use pavucontrol ou, se for possível, a configuração de som do sistema operacional elementar para alternar todas as saídas de som do grupo A para esse coletor. Cada coletor em Pulseaudio vem com uma fonte "monitor" correspondente (você pode ver aqueles no menu OBS que você incluiu), então configure o OBS para gravar em "Monitor of Game Sink".

Ela cuida da gravação apenas do grupo A, mas não a envia para os fones de ouvido. Para isso, você precisa de um loopback da origem do monitor mencionada para o coletor de fone de ouvido:

pacmd load-module module-loopback source="game_sink.monitor" sink="your-headphone-sink"

Você pode descobrir os nomes de todos os sumidouros, incluindo o coletor de fone de ouvido, com

pacmd list-sinks | grep name:

Deixe de fora os colchetes angulares ao usar os nomes como argumentos.

    
por 08.08.2017 / 06:50