Перекодировать интернет-радио на более низкий битрейт?

Я нашел интернет-радиостанцию, но я хотел бы перекодировать ее в Opus 32kbps, чтобы соответствовать моему безлимитному тарифному плану. Как бы я этого достиг?

Исходное радио использует MP3 @ 160kbps, что превышает мою неограниченную полосу пропускания данных 128kbps.

1 ответ

Решение

Вам нужен общедоступный хост, на котором вы можете запустить Icecast, и хост (возможно, тот же компьютер), на котором можно запустить процесс перекодировки. Принимая во внимание низкую скорость передачи данных, к которой вы стремитесь, среднестатистического жилого соединения будет достаточно, если вы контролируете публичную сторону. IOW, если вы находитесь за CGNAT, и у вас нет IPv6 ни на вашем домашнем соединении, ни на вашем мобильном устройстве.

сервер

  • sudo apt install icecast2
  • редактировать /etc/default/icecast2 сказать ENABLE=true
  • редактировать /etc/icecast2/icecast.xml и меняйте все пароли - не делайте других изменений!
  • systemctl start icecast2.service

кодировщик

  • sudo apt install ffmpeg
  • ffmpeg -re -i http://origin.example.com/stream.mp3 -c:a opus -b:a 32k -application audio -vbr on -content_type application/ogg icecast://source:bar@yourserver.example.org:8000/test.opus

Последний пример является примером использования ffmpeg в качестве транскодера. Я не уверен, насколько он стабилен в наши дни. По крайней мере, вы хотели бы обернуть его в истинный цикл. Другие варианты, такие как liquidsoap или ezstream, могут быть оценены.

Предоставление порта Icecast через CPE/Router выходит за рамки этой области, и в целом "переадресация портов" является хорошо освещенной темой. Очевидно, не применяется, если вы решили запустить его "где-то в облаке".

Другие вопросы по тегам