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/")
audio = mksafe(audio)
# video source (gif, mp4)
background = single("/home/radio/")
# add logo
background = video.add_image(x=1120, y=20, width=153, height=56, file="/home/radio/", 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://"
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/"
Rutube
url = "rtmp://rtmp-1.brz.rutube.ru/live_push/"
VK
url = "rtmp://ovsu.mycdn.me/input/"
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/")
3.3 Spécifiez le chemin d'accès correct pour la diffusion de l'arrière-plan vidéo:
background = single("/home/radio/")
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/", 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.
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 ?
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.
cel@debian:/home/radio $ liquidsoap radio1.liq
Erreur de segmentation
Voilà :/