web-dev-qa-db-fra.com

Réencodage de la radio Internet à un débit binaire inférieur?

J'ai trouvé une station de radio Internet, mais je voudrais la ré-encoder en Opus 32kbps pour l'adapter à mon forfait de données illimité. Comment pourrais-je y parvenir?

La radio source utilise MP3 @ 160 kbps, ce qui est supérieur à ma bande passante de données illimitée de 128 kbps.

1
dat tutbrus

Vous avez besoin d'un hôte accessible au public sur lequel vous pouvez exécuter Icecast et d'un hôte (éventuellement la même machine) pour exécuter le processus de réencodage. Étant donné le faible débit binaire que vous visez, une connexion résidentielle moyenne suffirait, si vous en contrôliez le côté public. IOW si vous êtes derrière un CGNAT et que vous n'avez IPv6 ni sur votre connexion à domicile ni sur votre appareil mobile.

serveur

  • Sudo apt install icecast2
  • éditer /etc/default/icecast2 dire ENABLE=true
  • éditer /etc/icecast2/icecast.xml et changez tous mots de passe - ne faites pas d'autres changements!
  • systemctl start icecast2.service

encodeur

  • 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

Ce dernier n'est qu'un exemple utilisant ffmpeg comme transcodeur. Je ne sais pas à quel point c'est stable de nos jours. À tout le moins, vous voudriez l'envelopper dans une vraie boucle de temps. D'autres options comme liquidsoap ou ezstream pourraient être évaluées.

L'exposition du port Icecast via un CPE/routeur est en dehors de cette portée et la "redirection de port" est un sujet bien couvert en général. Évidemment, cela ne s'applique pas si vous décidez de l'exécuter "quelque part dans le cloud".

2
TBR