Canalizar dos FIFO de audio simultáneamente, donde uno puede no tener datos pero tiene prioridad, en una única salida FIFO

Canalizar dos FIFO de audio simultáneamente, donde uno puede no tener datos pero tiene prioridad, en una única salida FIFO

tengo uninstantáneaservidor de audio, que está configurado para tener tres transmisiones de audio (fifos):música,transmisión, yproducción. Mis parlantes reproducen el audio delproduccióntransmitir, y mis reproductores de música canalizan la entrada almúsicaarroyo. Puedo canalizar con éxito la música a la salida para escuchar la música en los parlantes con el comando:cat /tmp/music > /tmp/output

Ahora quiero implementar una función de "anulación" donde la entrada deltransmisiónla corriente provoca laproducciónaen cambioreproducir la (alerta) desde eltransmisión, ignorando temporalmente la transmisión demúsicahasta que termine la transmisión. Sin embargo, la mayoría de las veces/tmp/transmisiónestá vacío y no tiene entrada. Incluso un simple intento de echar un vistazo a los contenidos vía dd bs=1 count=1 if=/tmp/broadcastcuelga el terminal hasta que haya datos disponibles en la emisión. Por lo tanto, mis intentos de hacer cosas comofusionar secuenciasno tiene éxito.

he investigadoffmpegy pulseaudio, pero no puedo determinar si tal "anulación selectiva" es posible. Ffmpeg parece ademástiene errores con la entrada multi-fifo. La solución ideal también "sonaría bien", es decir, tal vez hacer un desvanecimiento de 1/4 de segundo entre las transmisiones a medida que la transmisión toma el control.

editarCorrer Ubuntu Desktop 18.04. ¡Vaya!

información relacionada