eu tenho uminstantâneoservidor de áudio, que está configurado para ter três fluxos de áudio (fifos):música,transmissão, esaída. Meus alto-falantes reproduzem o áudio dosaídastream, e meus players de música canalizam a entrada para omúsicafluxo. Posso canalizar a música com sucesso para a saída para ouvi-la nos alto-falantes com o comando:cat /tmp/music > /tmp/output
Agora quero implementar um recurso de "substituição" onde a entrada dotransmissãofluxo causa osaídaparaem vez dereproduzir o (alerta) dotransmissão, ignorando temporariamente o fluxo demúsicaaté a transmissão terminar. Porém, na maioria das vezes/tmp/transmissãoestá vazio e não tem entrada. Mesmo uma simples tentativa de espiar o conteúdo dd bs=1 count=1 if=/tmp/broadcast
trava o terminal até que haja dados disponíveis na transmissão. Portanto, minhas tentativas de fazer coisas comomesclar fluxosnão teve sucesso.
eu olhei paraffmpege pulseaudio, mas não consegue descobrir se tal "substituição seletiva" é possível. Ffmpeg parece aindatem bugs com entrada multi-fifo. A solução ideal também "soaria bem", ou seja, talvez fizesse um fade de 1/4 de segundo entre os streams à medida que a transmissão assumisse o controle.
editarCorrendo Ubuntu Desktop 18.04
. Opa!