Image

(Dernier changement: 06.11.2024)

Debian 12 Linux Radio stream (rtmp) (Opam, gd, ffmpeg, Liquidsoap)

Dans ce guide, nous allons créer notre propre radio Internet et commencer à la diffuser sur Youtube ou Rutube (RTMP), ajouter une animation de fond et préparer une playlist. Dans ce guide, nous installons en tant que root, si vous en avez un normal, utilisez la commande sudo.

Vous pouvez commander un serveur prêt à l'emploi avec cette configuration sur le formulaire de commande du serveur VPS.


Questions les plus fréquemment posées:

  • Nous voulons que toutes les données soient avec nous. Pouvez-vous faire tout ce réglage sur nos équipements ?

    Oui, vous pouvez commander l'installation et le paramétrage de cette configuration sur votre équipement en utilisant le lien.


Un fragment du résultat de cette configuration :



1. Installez les packages nécessaires:

apt update
apt upgrade
apt-get install libfreetype6-dev
apt-get install opam
opam init

eval $(opam env)

opam switch create cs3110-2022fa ocaml-base-compiler.4.14.0

eval $(opam env)

opam depext gd ffmpeg liquidsoap
opam install gd ffmpeg liquidsoap

eval $(opam env)

2. Créer des dossiers pour la musique, la vidéo de fond:

mkdir /home/radio
mkdir /home/radio/music

3. Créons un fichier de configuration pour la station de radio elle-même:

nano /home/radio/radio1.liq

# permission to run the script from the root user
settings.init.allow_root.set(true)

# metadata functions
song_author = ref('')
def apply_song(m) =
song_author := m["artist"]
end

song_title = ref('')
def apply_song2(m) =
song_title := m["title"]
end

def get_track_name_text()
"$(artist) - $(title)" % [
("artist", song_author()),
("title", song_title())
]
end

# audio source
audio = playlist(reload_mode="watch", "/home/radio/music")
audio = mksafe(audio)

# video source (gif, mp4)
background = single("/home/radio/background.gif")

# add logo
background = video.add_image(x=1120, y=20, width=153, height=56, file="/home/radio/logo.png", background)

# calling metadata
audio.on_track(apply_song)
audio.on_track(apply_song2)

# drawtext
background = video.add_text(color=0xFFFFFF, font="/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", speed=0, x=50, y=50, size=26,
get_track_name_text,
background)

# mixing sources
radio = mux_video(video=background, audio)

#rtmp+codec
url = "rtmp://Adresse et clé de la plateforme de streaming via le protocole RTMP"
enc = %ffmpeg(format="flv",
%video(codec="libx264", width=1280, height=720, pixel_format="yuv420p",
b="750k", maxrate="750k", minrate="750k", bufsize="1500k", profile="Main", preset="veryfast", framerate=30, g=60),
%audio(codec="aac", samplerate=44100, b="128k"))

# output
output.url(fallible=true, url=url, enc, radio)

3.1 Spécifiez la variable URL en fonction du service sur lequel vous diffuserez:

Youtube

url = "rtmp://a.rtmp.youtube.com/live2/Clé générée par Youtube"
Rutube

url = "rtmp://rtmp-1.brz.rutube.ru/live_push/Clé générée par Rutube"
VK

url = "rtmp://ovsu.mycdn.me/input/Clé générée par VK"

3.2 Vérifiez dans le fichier de configuration que le chemin est correct en tant que dossier de musique et placez-y vos fichiers musicaux, l'option reload_mode="watch" indique que dès qu'un nouveau fichier apparaît dans le dossier, il sera immédiatement ajouté à la file d'attente de lecture .

audio = playlist(reload_mode="watch", "/home/radio/music")

3.3 Spécifiez le chemin d'accès correct pour la diffusion de l'arrière-plan vidéo:

background = single("/home/radio/background.gif")

Il peut s'agir d'une image png statique, d'une image jpg ou d'une animation vidéo gif, mp4. Le fichier d'animation d'arrière-plan est bouclé.

3.4 Spécifiez le chemin correct pour le fichier du logo de votre chaîne:

background = video.add_image(x=1120, y=20, width=153, height=56, file="/home/radio/logo.png", background)

Modifiez la taille et la position selon vos besoins.

4. Démarrage de la radio et opération de vérification:

cd /home/radio
liquidsoap radio1.liq

Le journal de traitement apparaîtra et s'il n'y a pas d'erreurs, la traduction est réussie, allez sur la page où vous l'avez créée et vérifiez le travail.

4.1 Création et démarrage automatique d'un service:

cd /home
apt install git
git clone https://github.com/savonet/liquidsoap-daemon.git
cd /home/liquidsoap-daemon
./daemonize-liquidsoap.sh /home/radio/radio1.liq

4.2 Equipes:

Lancement

systemctl start radio1-liquidsoap

Arrêt

systemctl stop radio1-liquidsoap

Statut

systemctl status radio1-liquidsoap

Notre radio est prête, vous pouvez voir ce qui s'est passé dans l'exemple vidéo avant de commencer la configuration. Ce protocole est pris en charge par un grand nombre de services populaires.




Céline
11.05.2024 19:40
Bonjour,

Je pensais que liquidsoap était accessible avec une interface graphique, ce qui n'a pas l'air d'être le cas ? Du coup, l'automation de la radio doit-être hyper fastidieux si on doit passer par un fichier à chaque fois ? Comment diffuser sur Yt le flux de notre propre webradio ?
Synay Support
11.05.2024 19:55
Bonjour.
Le didacticiel suppose que toute la configuration du service se trouve dans la console, à l'aide de fichiers de configuration sans interface graphique.

De ce fait, vous pouvez diffuser de l'audio-vidéo sur YouTube. Les paramètres de service de base sont décrits au paragraphe 3.
Céline
11.05.2024 20:11
Merci pour votre retour rapide; J'ai bien crée le fichier de config, mais lorsque je lance la commande du paragraphe 4 j'ai un message d'erreur :
cel@debian:/home/radio $ liquidsoap radio1.liq
Erreur de segmentation

Voilà :/
Synay Support
11.05.2024 20:16
Il est difficile d'en dire la raison, mais nous avons effectué l'installation et la configuration depuis l'utilisateur root.