pactl Loopback e Sink para mic + VLC com baixa carga de CPU? configurações de latência?

2

Comunidade Hello AskUbuntu!

Eu pesquisei muito Q & amp; A aqui sobre loopbacks e pias, mas eu sou novo no Ubuntu e não consigo fazer as coisas funcionarem da maneira que eu preciso. Parece que eu realmente preciso disso explicado para mim como eu sou uma criança de 5 anos que não conhece a terminologia linux.

Em vez de explicar minhas suposições e talvez confundir as pessoas ou sugerir uma solução inferior, descreverei meu objetivo e o que sei:

  1. Crie uma "linha" de origem / coletor virtual que eu possa selecionar como captura / entrada / gravação de fonte em um programa como Audacity / Teamspeak / Skype / OBS
  2. Envie minha entrada de microfone Blue Yeti USB para essa linha
  3. Envie meu áudio do player de mídia VLC para essa linha
  4. Ainda será capaz de ouvir a música do VLC, para que eu possa ajustar o volume por música

OR

  1. Use um comando pactl ou algo que eu não conheço para canalizar minha saída VLC para o mesmo fluxo de entrada do meu microfone Blue Yeti USB (talvez isso seja possível?) ou adicione a entrada do meu microfone Blue Yeti USB para um fluxo de saída combinado com o VLC
  2. Canaliza o fluxo combinado (seja entrada ou saída) para o Audacity / Teamspeak / Skype / OBS como uma fonte de entrada / gravação / captura

Coisas que já vi no AskUbuntu:

1) Múltiplos loopbacks e sumidouros

pactl load-module module-null-sink sink_name=Virtual1
pactl load-module module-null-sink sink_name=Virtual2
pactl load-module module-loopback sink=Virtual1 
pactl load-module module-loopback sink=Virtual1 
pactl load-module module-loopback sink=Virtual2

Testado?

  • Sim e é parcialmente funcional.

Problemas

  • A carga da minha CPU vai para 90-100% em todos os núcleos do processador e basicamente não consigo fazer nada no meu computador.
  • Além disso, o áudio torna-se robótico / instável e pula períodos de segundos.
  • Além disso, quando uma música termina, todas as minhas configurações para o piping de loopbacks para os sumidouros são redefinidas no pavucontrol.

Esperanças

  • Talvez algo possa ser feito com latency_msec ou outras configurações (talvez buffers ou frequência ou algo assim?) para reduzir a carga da CPU? Quando eu estava fazendo algo com o jackd uma vez usando o plugin dbus para tirar o áudio do pulseaudio, me disseram para aumentar a configuração de quadros / período para 512 para consertar o áudio robótico / instável, e isso funcionou. A latência foi de 24 ms como resultado, mas soou bem para mim e não foi um problema. Também não causou uma alta carga de CPU / diminuiu o meu computador.
  • Talvez também haja uma maneira de transformar o que eu quero em algo de comando para /etc/pulse/default.pa, para que minhas configurações não sejam redefinidas quando uma música terminar.

Nota

  • Eu não preciso que o som do VLC ou meu microfone seja enviado para o programa de gravação / chat quando eu falo. Um atraso é bom, se isso reduzir a carga da CPU.

2) Loopback entre uma fonte e um coletor

pactl load-module module-loopback source=<name_or_index> sink=<name_or_index>

Testado?

  • Não. Eu realmente não entendo isso.

Esperança

  • Talvez isso possa ser usado de alguma forma para cortar alguns intermediários e reduzir a carga da CPU.

Obrigado por qualquer ajuda que você possa fornecer!

    
por JCopse 01.02.2016 / 18:04

1 resposta

1

Eu tenho que trabalhar com o comando que você listou em 2), usando o Arch Linux . O comando que usei foi:

pactl load-module module-loopback source=alsa_input.pci-0000_00_1f.3.analog-stereo sink=alsa_output.pci-0000_00_1f.3.analog-stereo

Eu descobri o nome exato do meu Microfone / entrada e do meu Stereo-Out / sink usando:

pactl list | grep -alsa 

ALSA se você estava imaginando significa "Advanced Linux Sound Architecture" e é o módulo do Kernel (driver) que é carregado para o meu som on-board.

Para carregar este módulo de loopback na inicialização, adicionei uma linha ao meu default.pa (e também configurei meu padrão de origem / padrão-sink):

echo "load-module module-loopback source=alsa_input.pci-0000_00_1f.3.analog-stereo sink=alsa_output.pci-0000_00_1f.3.analog-stereo" >> /etc/pulse/default.pa

Eu usei pavucontrol para verificar se o módulo de loopback estava carregado e funcionando na guia "Reprodução" e tive que ativá-lo novamente.

O Pulseaudio usou cerca de 2% do tempo da CPU (2 threads) enquanto ocioso (nenhum som tocou / tocou) e cerca de 6-8% ao passar o som através do loopback da entrada. Você pode precisar de privilégios de root / sudo para determinados comandos acima.

    
por Celmor 05.03.2016 / 19:10