Cómo habilitar la transmisión de audio en Linux

Imagen destacada de transmisión de audio

La transmisión de audio, o el streaming de audio, permite que el audio reproducido en un dispositivo se escuche en otro. Puede ser audio en vivo, archivos o incluso entrada de micrófono. Muchos de los gigantes tecnológicos tienen su propia versión de la transmisión de audio. Apple tiene AirPlay, y Google tiene Chromecast. Para Linux, tienes la suerte de contar con muchos métodos diferentes de transmisión de audio gracias a ser de código abierto.

Tabla de Contenidos

  • Una Perspectiva Técnica
  • Lo Que Necesitas Para la Transmisión de Audio
  • Cómo Habilitar la Transmisión de Audio
  • Preguntas Frecuentes

También lee: Cómo transmitir audio desde Linux a Chromecast y Google Home

Una Perspectiva Técnica

Aunque diferentes fabricantes utilizan protocolos ligeramente diferentes, casi toda la transmisión de audio utiliza redes de par a par (P2P). El P2P ha ganado bastante reputación por su uso en torrents, pero el método de red no es tan notorio.

En esencia, P2P significa que tanto tu dispositivo como el dispositivo al que estás conectado comparten permisos de datos; ambos pueden recibir y enviar datos a su antojo. Para los propósitos de la transmisión de audio, el emisor convertirá los datos de audio a binario, y el receptor los convertirá de nuevo a datos de audio. La compresión, las tasas de bits y el almacenamiento en búfer también juegan un papel en este proceso, pero son un tema diferente al que estamos tratando.

Lo Que Necesitas Para la Transmisión de Audio

Estas son las principales aplicaciones que estamos utilizando para transmitir audio. Hay otros métodos que implican más instalación, pero estas son las principales que usarás para interactuar con Pulseaudio.

Preferencias de Pulseaudio

Paprefs (preferencias de pulseaudio) es una excelente manera de acceder a todos los módulos de pulseaudio. Para implementar estos módulos, normalmente se requeriría que revisaras documentación y utilizaras la terminal, pero la práctica GUI lo hace mucho más fácil. Instala Paprefs con el siguiente comando:

sudo apt install paprefs

Uno de los problemas con Paprefs es que utiliza el nombre de carpeta predeterminado para Pulseaudio. Cuando intentas activar o instalar módulos a través de él, te lleva a esa carpeta predeterminada. Esta carpeta no existirá si Pulseaudio ha sido actualizado.

Para resolver esto, crea un enlace simbólico que apunte a paprefs a la carpeta correcta, como la de abajo.

La carpeta real es “pulse-15.99.1+dfsg1.” La carpeta del enlace simbólico es “pulse-13.99.” Paprefs la registrará como tal, pero apunta a la carpeta real en lugar de ser una nueva por sí sola. Para crear un enlace simbólico, el comando de terminal es el siguiente:

sudoln-s'/usr/lib/pulse-15.99.1+dfsg1''/usr/lib/pulse-15.99'

También lee: Cómo mejorar el audio de tu PC con PulseEffects en Linux

Control de Volumen de Pulseaudio

Esta aplicación te permite interactuar con los sumideros y monitores de pulseaudio. No solo te ayudará a ver si el audio se está reproduciendo donde deseas, sino que una interfaz visual siempre es útil al trabajar con múltiples sumideros y computadoras.

El siguiente comando de terminal instalará Pavucontrol.

sudo apt install pavucontrol

Cómo Habilitar la Transmisión de Audio

Como con cualquier cosa en Linux, habilitar la transmisión de audio puede variar desde fácil hasta enormemente doloroso. Mis pruebas y metodología se centran en Ubuntu, pero si estás utilizando Arch o cualquier otra distribución, el proceso debería ser similar.

Transmisión de Audio RTP

Usar RTP (Real-time Transport Protocol) es el método más fácil que encontré al probar. Aquí, estamos utilizando Pulseaudio.

  1. Navega a la pestaña Multicast/RTP en Paprefs y marca la casilla “Habilitar receptor Multicast/RTP” y la casilla “Habilitar emisor Multicast/RTP” en ambos dispositivos. Puedes optar por habilitar uno de ellos, pero quiero poder enviar y recibir de ambos dispositivos, así que habilito ambos.

Captura de pantalla desde 2022 09 28 20 28 02

  1. Puedes elegir crear un sumidero separado o enviar audio directamente desde tus altavoces al otro dispositivo. Un sumidero separado te permitirá controlar el volumen y el formato del audio que estás enviando. Deberías ver la transmisión del monitor de audio del otro dispositivo en la sección de Dispositivos de entrada de Pavucontrol.
  2. Si eres más de terminal, también puedes agregar los siguientes módulos al archivo “default.pa” en “/etc/pulse.” Estos hacen lo mismo que habilitar el receptor y emisor en Paprefs.
load-module module-null-sink sink_name=rtp  
load-module module-rtp-send source=rtp.monitor  
set-default-sink rtp  
load-module module-rtp-recv

Es posible que debas alterar los permisos del archivo default.pa usando chmod si eliges hacerlo manualmente.

También lee: Cómo solucionar el problema de no poder escribir en la terminal en Linux

Transmisión de Audio por Conexión Directa

Agrega las siguientes líneas al archivo “/etc/pulse/default.pa” en ambas computadoras. Estos módulos son para la autenticación entre servidor y cliente.

load-module module-esound-protocol-tcp auth-anonymous=1  
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24

Además, establece el parámetro default-server en el archivo “/etc/pulse/client.conf.” Puede ser la dirección IP o el nombre del host (nombre del PC) del servidor.

Transmisión de Audio de Windows a Linux

Si tienes una computadora con Windows y deseas transmitir a un dispositivo Linux, Pulseaudio no puede transmitir de manera confiable de Linux a Windows o viceversa. Scream es una de las pocas alternativas que te permitirá transmitir audio de Windows a Linux. Ten en cuenta que este método no ha sido probado en Windows 11.

Instalarlo es tan fácil como descargar la aplicación de Windows 10 desde el enlace de Github y el receptor de Linux desde el repositorio. Los siguientes comandos de terminal instalarán el receptor y también están disponibles en el enlace de receptores.

# Redhat, CentOS, etc.  
sudoyum install pulseaudio-libs-devel  
  
# Debian, Ubuntu, etc.  
sudoapt-get install libpulse-dev

Si prefieres no usar Pulseaudio, Jack ofrece un método infalible de transmitir audio de Windows a Linux. Este método implica usar un puente ASIO que conecta JACK a un sumidero de audio en la computadora con Windows.

Instala JACK tanto en tu computadora Linux como en la de Windows. En Windows, puedes descargar e instalar desde el siguiente enlace. Para Linux, necesitarás instalarlo desde tu gestor de paquetes. En mi caso, utilicé apt y el siguiente comando:

sudo apt install jackd

También necesitas tener instalado ASIO Bridge en tu máquina con Windows. Una vez que hayas completado las instalaciones, ejecuta los siguientes comandos desde la línea de comandos de Windows:

regsvr32 32bits\JackRouter.dll  
regsvr32 64bits\JackRouter.dll

En tu máquina Linux, escribe jack_load netmanager en la terminal o configúralo para que se active automáticamente utilizando qjackctl (Cadence y Catia también son excelentes patchbays) usando el mismo comando. Navega a la pestaña de Opciones, marca la casilla “Ejecutar script después del inicio” y agrega el comando.

Captura de pantalla desde 2022 09 30 18 10 28

Los últimos pasos son iniciar JACK NetDriver en tu dispositivo con Windows. Alternativamente, ingresa el jackd -R -d net en la línea de comandos, inicia ASIO Bridge y establece el dispositivo ASIO en JackRouter. Deberías ver el nombre de host de Windows en qjackctl o en el patch bay que elegiste. A veces, este paso requiere que reinicies qjackctl, así que no te preocupes si no funciona la primera vez.

También lee: Cómo transcodificar archivos FLAC con flac2all en Linux

Preguntas Frecuentes

¿Hay alguna aplicación alternativa que pueda usar para transmitir audio en Linux?

Hay muchos servidores multimedia y aplicaciones de transmisión en Linux. Sería imposible explicar y recorrer todas, pero algunas de las más notables son Mkchromecast y Soundwire.

¿Habilitar la transmisión de audio hará que mi PC sea vulnerable a un ciberataque?

Una preocupación al trabajar con cualquier cosa relacionada con la red es la seguridad. Aunque algunos métodos de transmisión de audio pueden dejar tu computadora vulnerable, es poco probable que haya algún peligro real, siempre y cuando trabajes dentro de tu red LAN cerrada.

¿Puedo usar estos métodos para transmitir audio a mi TV?

Desafortunadamente, sin una aplicación externa como VLC o mkchromecast, no puedes enviar audio directamente a tu TV utilizando RTP o una conexión directa. Sin embargo, la mayoría de los televisores inteligentes te permitirán instalar aplicaciones y/o recibir y enviar audio desde otro dispositivo.