Webradio server – broadcasts audio source to clients

від

у

Webradio сервер – транслює аудіо-джерело до клієнтів

https://ift.tt/YcRgUVw

Compiles on macOS (Intel / Silicon), Ubuntu and NixOS

Цей проект фінансується через NGI Zero Core, фонд, створений NLnet з фінансовою підтримкою програми Європейської Комісії Next Generation Internet. Дізнайтеся більше на сторінці проекту NLnet.

NLnet foundation logo
NGI Zero Logo

Цей інструмент розроблений для трансляції аудіо у світовий веб, мовлення аудіопотоку з екземпляра tau-radio, супровідного програмного забезпечення.

Моделюваний за зразком програмного забезпечення Icecast, він подає HTML-потік аудіо, який можна використати в аудіо-тезі на будь-якому іншому веб-сайті.

Ви повинні запускати це на віддаленому сервері, наприклад AWS, Digital Ocean або будь-якому VPS із відповідними привілеями.

  • Зверніть увагу, що найменший доступний в Digital Ocean «Droplet» не має достатньо оперативної пам’яті для локальної збірки цього проєкту. Заходом є зібрати під ту архітектуру, наприклад: cargo build --target x86_64-unknown-linux-gnu.

Щоб встановити:

$ cargo install --git https://github.com/tau-org/tau-tower

Перший раз використання інструмента шукає конфігураційний файл у вашій системі. Він шукає його за шляхом

$HOME/.config/tau/tower.toml # на macOS

або

$XDG_CONFIG_HOME/tau/tower.toml # на Linux

Якщо конфігураційного файлу там немає, вам запропонують створити його.

# ім’я користувача та пароль НЕ безпечні, вони лише
# пов’язують служби tauradio та tautower
username = "username" 
password = "emanresu" 

# Встановлює порт прослуховування, на який передається вихідний потік
listen_port = 8000      

# Встановлює порт трансляції, з якого потік буде доступний
broadcast-port = 8001       

# Встановлює HTTP-ендпойнт сервера - http://localhost:8001/tau.ogg
broadcast-endpoint = "tau.ogg"       

# Необов’язкове: 
# Встановлює, які інші сайти можуть повторно транслювати потік
# "*" дозволяє всім, додавання "http://localhost:4000" до списку зайве
cors_allow_list = ["*", "http://localhost:4000"]

Якщо ви хочете тимчасово перезаписати конфігурацію, ви можете передати аргументи.

# Приклад: використовує тимчасові облікові дані та вимикає локальну запис
$ tau-tower \
  --listen-port <listen-port> \
  --broadcast-port <broadcast-port> \
  --cors-allow-list "*"

На Linux (за допомогою apt):

$ sudo apt update
$ sudo apt install build-essential

tau-radio запускається на вашій локальній
машині та захоплює звук з аудіо-пристрою системи. За замовчуванням
є BlackHole 2ch на macOS та pipewire на Linux, але ці значення можна
перевизначити в конфігурації або в аргументах CLI.

Зловлений аудіо потім трансльуется до
tau-tower, який має працювати на
віддаленому сервері. Це серверне застосування надає аудіо-медіа-потік, який може
потребити багато клієнтів, як веб-радіо.

Разом із tau-tower має запуститися інстанс Asciinema
який може використовувати живий аудіо-потік як фоновий для живого потоку терміналу, за допомогою
встановлення URL-ендпойнта трансляції як медіа-джерела в налаштуваннях потоків.

https://example.com:8002/tau.ogg

Для цього потрібно, щоб походження Asciinema було додано до cors_allow_list у tower.toml:

cors_allow_list = ["https://example.com:4000"]

ваш комп’ютер віддалений сервер
(захват аудіо) (оп. tls/ssl) (проксі) (ведучий поток) (оп. хост потоку)
tau-radio -> інтернет -> Caddy -> tau-tower -> Asciinema

Для завершення TLS та налаштування зворотного проксі дивіться Proxy Setup (Caddy).

HI-FI News

через Hacker News https://ift.tt/QMZtEIm

26 червня 2026 р. о 23:22 за місц. часом

June 26, 2026 at 11:22PM