Перекодировать интернет-радио на более низкий битрейт?
Я нашел интернет-радиостанцию, но я хотел бы перекодировать ее в 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 выходит за рамки этой области, и в целом "переадресация портов" является хорошо освещенной темой. Очевидно, не применяется, если вы решили запустить его "где-то в облаке".