我找到了一个互联网广播电台,但我想将其重新编码为 Opus 32kbps,以适应我的无限数据计划。我该如何实现?
源电台使用 MP3 @ 160kbps,超过了我的 128kbps 无限数据带宽。
答案1
您需要一个可以运行 Icecast 的公共可访问主机和一个运行重新编码器过程的主机(可能是同一台机器)。考虑到您想要的低比特率,普通的住宅连接就足够了,如果您可以控制它的公共端。换句话说,如果您位于 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:[email protected]:8000/test.opus
后者只是使用 ffmpeg 作为转码器的示例。我不确定它现在有多稳定。至少你会想把它包装成一个 while true 循环。可以评估其他选项,例如 liquidsoap 或 ezstream。
通过 CPE/路由器公开 Icecast 端口不在本范围之内,而“端口转发”通常是一个广为人知的话题。如果您决定在“云端某处”运行它,则显然不适用。