Como posso criar uma placa de som pulseaudio virtual no Linux sem hardware de áudio?

1

Eu tenho um Docker rodando o Alpine Linux. Não há nenhum dispositivo de áudio de hardware.

Eu consegui fazer o pulseaudio funcionar aparentemente bem sob o usuário.

Eu tenho tentado fazer com que o PA funcione como uma placa de som virtual, com a intenção de transmitir o áudio da janela de encaixe usando o ffmpeg. Mas até agora sem sorte. E eu ainda não encontrei exemplos que não envolvam uma máquina que não tenha hardware de áudio.

A minha principal preocupação é obter o VICE (x64, o emulador do Commodore 64) para utilizar corretamente 'pulse' em vez de 'fictício'. Compilei a VICE com '--with-pulse', e 'pulse' realmente aparece no menu de configurações.

Porém, quando eu mudo para 'pulse' ao invés de 'dummy', o x64 reclama que não pode inicializá-lo e então desabilita sua própria saída de som.

pactl e pacmd parece não ter nenhum problema em controlar o servidor pulseaudio.

Eu tentei o seguinte (e também o pipe do módulo)

$ pacmd load-module module-null-sink sink_name=VirtSoundCard sink_properties=device.description=Virtual-Sound-Card

$ pacmd set-default-sink VirtSoundCard

Embora sem sorte até agora. Então espero ouvir de alguém que possa saber como isso pode ser feito, enquanto passo o resto da noite tentando.

O 'default.pa' eu estou usando o atm: link

    
por DhP 14.07.2018 / 00:05

1 resposta

1

O Pulseaudio pode criar vários coletores (o que você chama de "placas de som virtuais", mas coletores são para saída, fontes são para entrada, e eles também são associados a som real hardware).

Veja a lista de módulos que inclui os sumidouros e a sintaxe exemplos. Você tem a escolha entre usar RTP / SDP , ROAP .

Você também pode acessar um servidor pulseaudio no host por meio do procotol nativo; nesse caso, não será necessário executar um servidor pulseaudio no cliente docker.

Até o momento, não houve necessidade de usar ffmpeg . Se você realmente quiser usar ffmpeg , também poderá criar um sumidouro nulo e conecte sua origem do monitor a ffmpeg . Isso se aproximaria da sua idéia de uma "placa de som virtual", mas também é a alternativa menos eficiente.

Por fim, não entendo por que você precisa executar o VICE (um emulador) dentro de uma imagem do docker - como já é um emulador, é possível executá-lo no host; não há perigo de o programa emulado C64 fazer algo ruim.

    
por 14.07.2018 / 17:22