Aller au contenu

Bienvenue

Bienvenue sur cette nouvelle Libre-Antenne, qui réunit la Libre-Antenne historique de Radioactu et le forum Radios-fr.com. Dans le forum "Radios", vous trouverez la fusion des forums Radios de la Libre-Antenne et de radios-fr.com. Il est possible qu'il manque quelques jours de messages, nous vous prions de nous en excuser. Nous vous invitons à créer dès maintenant votre compte si ce n'est pas déjà fait, en cliquant sur "S'inscrire" ! Belle nouvelle expérience sur libreantenne.radioactu.com ! La team Radioactu

Messages recommandés

Bonjour à tous,

 

Je teste actuellement la diffusion d'un flux audio vers Icecast avec Liquidsoap.

Je cherche à passer par Liquidsoap pour l'envoi des titres en cours vers Icecast mais également vers TuneIn.

J'utilise Winmedia comme automate de diffusion. Winmedia peut être configuré pour envoyer le titre en cours vers Icecast ou vers une url.

Mais je ne sais pas comment récupérer les infos avec liquidsoap.

 

Utilisez-vous Liquidsoap ? http://savonet.sourceforge.net/

Si oui, avez-vous une solution à mon problème ?

 

Merci d'avance

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour

 

c'est grace a toi que j'avais survoler autre fois airtime donc maintenant liquidsoap ! :mrgreen: 

 

après tu lui envoie juste son ? ou juste une requête de donnée http?

 

 

 

 après pour du son je te conseil de faire un simple harbor 

live = input.harbor("test-harbor",port=8080,password="xxx")

Pour nos apis  sous un liquidsoap on utilises ce morceau la

# Update current metadata# converted in UTF8def update_meta(m) =  m = metadata.export(m)  recode = string.recode(out_enc="UTF-8")  def f(x) =    (recode(fst(x)),recode(snd(x)))  end  meta := list.map(f,m)end# Apply update_metadata# every time we see a new# metadata#### DESSOUS REMPLACE LE S PAR LA DÉFINITION UTILE ####s = on_metadata(update_meta,s)#### DESSUS REMPLACE LE S PAR LA DÉFINITION UTILE ##### Return the json content# of metadef get_meta(~protocol,~data,~headers,uri) =  m = !meta  http_response(    protocol=protocol,    code=200,    headers=[("Content-Type","application/json; charset=utf-8")],    data=json_of(m)  )end# Register get_meta at port 700harbor.http.register(port=7000,method="GET","/getmeta",get_meta
Modifié par starm

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Starm pour ta réponse.

 

J'ai testé en ajoutant la ligne : 

stream = input.harbor("test-harbor",port=8080,password="xxx")

à mon fichier .liq, en modifiant le password par le mot de passe du serveur icecast.

Voici mon fichier radio.liq modifié :

#!/usr/bin/liquidsoapstream = input.alsa(device="plughw:1,0", bufferize=false)stream = input.harbor("test-harbor",port=8080,password="xxx")output.icecast(%mp3(bitrate=320, samplerate=48000),host="xx.xx.xx.xx",port=8000,password="xxxx",mount="liquidsoap.mp3",name="Test Liquidsoap",genre="Music",description="Test Liquidsoap",stream)

Lorsque le lance la commande, ça semble fonctionner, j'obtiens juste une erreur :

strange error flushing buffer ... strange error flushing buffer ... 

Pour mieux comprendre votre système, à partir de quelque source récupérez-vous les metadata ?

Depuis une url local ? une url publique ? depuis votre système d'automate ou depuis Icecast ? 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

re, 

 

quand je regarde ton code il y a un truc que je comprend pas bien 

 

tu définis deux fois "stream"

(celui la est une carte son la plughw:1,0)

 stream = input.alsa(device="plughw:1,0", bufferize=false)

(celui la est une prise de live depuis un logiciel de live comme icecast qui écoute lui même un flux, pour le diffuser ensuite )

stream = input.harbor("test-harbor",port=8080,password="xxx")

 

alors la ligne suivante te permet de injecter du flux comme tu le ferais sur un icecast normal il accepte même les lives internes de la machine debian, ou les lives des animateurs distants.

stream = input.harbor("/mountpoint",port=8080numeroduportpourladiffusionlive,password="mot de passe")

pour ma source des métadata autant que api de sortie et non une entré d'information dans liquidsoap si tu veux faire une entré c'est plus getmeta mais setmeta

 

http://savonet.sourceforge.net/doc-svn/harbor_http.html

#### DESSOUS REMPLACE LE S PAR LA DÉFINITION UTILE ####s = on_metadata(update_meta,s)#### DESSUS REMPLACE LE S PAR LA DÉFINITION UTILE ####donc exemple si ma source est radiofrance alors en exemple radiofrance  = on_metadata(update_meta,radiofrance )
Modifié par starm

Partager ce message


Lien à poster
Partager sur d’autres sites
après tu lui envoie juste son ? ou juste une requête de donnée http?

 

 

Je souhaite envoyer de l'audio et des données (Artiste - Titre)

#### DESSOUS REMPLACE LE S PAR LA DÉFINITION UTILE ####s = on_metadata(update_meta,s)#### DESSUS REMPLACE LE S PAR LA DÉFINITION UTILE ####donc exemple si ma source est radiofrance alors en exempleradiofrance = on_metadata(update_meta,radiofrance )

Et si ma source est une url ?

 

http://maradio.com/%artiste-%titre = on_metadata(update_meta, http://maradio.com/%artiste-%titre) ?

 

Désolé, y'a un truc qui m'échappe :-( 

Partager ce message


Lien à poster
Partager sur d’autres sites

Si ta source est une url

 

regarde la fonction setmeta

 

en bas de page 

 

 

http://savonet.sourc...arbor_http.html  

 

pour ne pas te compliqué trop la tache  injecte ton audio comme un stream normal, comme pour transformer ton liquidsoap lui même en icecast..  les tags seront envoyer dans le stream et l'audio aussi 

stream = input.harbor("test-harbor",port=8080,password="xxx")output.icecast(%mp3(bitrate=320, samplerate=48000),host="xx.xx.xx.xx",port=8000,password="xxxx",mount="liquidsoap.mp3",name="Test Liquidsoap",genre="Music",description="Test Liquidsoap",stream)
Modifié par starm

Partager ce message


Lien à poster
Partager sur d’autres sites

Je viens de voir tes modifications de tes posts.

 

tu définis deux fois "stream"

(celui la est une carte son la plughw:1,0)

 stream = input.alsa(device="plughw:1,0", bufferize=false)

(celui la est une prise de live depuis un logiciel de live comme icecast qui écoute lui même un flux, pour le diffuser ensuite )

stream = input.harbor("test-harbor",port=8080,password="xxx")

 

Oui, en fait, j'ai ajouté la ligne que tu m'avais mentionné à mon script original, d'où les deux "stream"

 

regarde la fonction setmeta

 

Je vais regarder ça, merci

J'attends des nouvelles de Winmedia sur la création d'une url contenant les metadata

pour ensuite l'intégrer à liquidsoap
 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

C'est bon du coté de WinMedia, les infos titres et artuistes sont envoyés vers le site web : http://www.urban-radio.com/titrage/title_winmedia.html

reste maintenant à trouver comment faire pour que Liquidsoap récupère ses infos et les transmette vers Icecast et TuneIn.

 

Si quelqu'un a la solution, je suis preneur ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant


×