Projet radio "avancé"

Vous avez réalisé ou vous voulez réaliser un truc impensable avec votre Raspberry Pi ? Cet endroit est pour vous...

Modérateur : Francois

ReshibanGaming
Messages : 39
Enregistré le : lun. 7 août 2017 00:04

Projet radio "avancé"

Message par ReshibanGaming » lun. 10 août 2020 14:44

Salut :D
Je vous résume vite fait la situation:

Je désirerais faire une radio un peu "avancée", capable de récupérer un flux audio sur YouTube (sur un de ces lives musique 24h/24h :lol: ) et de le diffuser en temps réel sur ma radio.
(Donc en gros, diffuser un live YouTube sur la radio)

Jusque ici, j'ai créé (à l'aide du tuto ci-dessous) une radio qui tourne sur Rpi4. Le logiciel pi_fm_rds supporte uniquement le .wav, donc une fois les musiques converties, elles sont parfaitement diffusées et captées par ma radio, la base fonctionne donc parfaitement :D
(Le tuto: https://raspberry-pi.fr/creer-votre-eme ... pberry-pi/)


Désormais, l'objectif est donc de pouvoir récupérer le flux du live sur YouTube pour le donner à manger en direct à pi_fm_rds.
J'ai déjà tenté quelque trucs avec youtube-dl, mais tout ce que j'arrive à faire, c'est faire convertir l'audio en .wav uniquement lorsque le téléchargement est terminé.

Si vous avez des idées je suis preneur ;)
Merci beaucoup!
Jeune débutant bien motivé à en apprendre beaucoup et à partager ses connaissances sur nos framboises :lol:

(Et équipé d'un RPi3 & RPi4)

maxty01
Modérateur
Messages : 752
Enregistré le : dim. 16 nov. 2014 20:53
Localisation : Charleroi - Belgique

Re: Projet radio "avancé"

Message par maxty01 » lun. 10 août 2020 15:49

Bonjour ReshibanGaming,

Je ne pense pas que cette demande soit initialement bien placée dans le forum.
En effet, je ne retrouve pas de "problème" ou de "malfonction" dans la demande.

Au contraire, cela semble être une demande sur un projet plus avancé que la moyenne, bien que certains diront que celui est impossible.

C'est pour ces raisons que je déplace ta demande dans la section « Utilisateurs avancés » qui me semble plus adaptée.
«Vous avez réalisé ou vous voulez réaliser un truc impensable avec votre Raspberry Pi ? Cet endroit est pour vous... »

Bonne journée,
Il n'y a pas de question stupide, il n'y a que des imbéciles qui ne posent pas de question !
RaspBerry Pi : 1 x B+ Raspbian 1 x RPI2 MiniBian
Mieux me connaître ? Regarder mon LinkedIn

ReshibanGaming
Messages : 39
Enregistré le : lun. 7 août 2017 00:04

Re: Projet radio "avancé"

Message par ReshibanGaming » lun. 10 août 2020 15:59

Bonjour,

Oui en effet j'hésitais à placer ma demande dans "En panne ?" ou dans "Téléphonie et télécommunication", finalement c'est "Utilisateurs avancés" qui est le plus adapté donc

Merci d'avoir pris le temps de rectifier ça :)
Jeune débutant bien motivé à en apprendre beaucoup et à partager ses connaissances sur nos framboises :lol:

(Et équipé d'un RPi3 & RPi4)

dyox
Raspinaute
Messages : 821
Enregistré le : dim. 28 déc. 2014 15:28
Localisation : Le long de la côte, au dessus du pays des bigoudennes, aïe

Re: Projet radio "avancé"

Message par dyox » lun. 10 août 2020 21:57

Bonsoir,

Donc si j'ai bien compris, l'intérêt est d'émettre sur une fréquence le son wav d'une vidéo Youtube ?

Ce genre là ne fonctionne pas ?
youtube-dl ...| ffmpeg -i video.mp4 -vn audio.wav... (on ne garde que l'audio et on le convertit en wav) | sudo ./pi_fm_rds -audio -
ou
youtube-dl --extract-audio --audio-format wav --audio-quality 0 https://www.youtube.com/watch?v=wf4YT-vsq_4 | | sudo ./pi_fm_rds -audio - (un truc du genre)


En temps normal, quelles sont les ressources utilisés ?

Je ne sais les I/O sur le support, p-ê mettre le répertoire de travail en ram avec un tmps ?

C'est fait avec quelle Pi ?

SOURCES
https://itsfoss.com/ffmpeg/
https://www.blog-libre.org/2019/05/08/y ... eux-sites/

ReshibanGaming
Messages : 39
Enregistré le : lun. 7 août 2017 00:04

Re: Projet radio "avancé"

Message par ReshibanGaming » mar. 11 août 2020 22:56

dyox a écrit : Bonsoir,

Donc si j'ai bien compris, l'intérêt est d'émettre sur une fréquence le son wav d'une vidéo Youtube ?

Bonsoir,

En fait c'est presque ça, mais avec une difficulté supplémentaire :p
Ici, l'intérêt n'est pas de diffuser une vidéo YouTube, mais un live YouTube sur une fréquence.


dyox a écrit : Ce genre là ne fonctionne pas ?
youtube-dl ...| ffmpeg -i video.mp4 -vn audio.wav... (on ne garde que l'audio et on le convertit en wav) | sudo ./pi_fm_rds -audio -
ou
youtube-dl --extract-audio --audio-format wav --audio-quality 0 https://www.youtube.com/watch?v=wf4YT-vsq_4 | | sudo ./pi_fm_rds -audio - (un truc du genre)

Malheureusement non,
J'ai bien tenté ce type de commandes combinées (yt-dl + pi_fm_rds), mais youtube-dl ne suit pas et crash à son ouverture.

Les conditions du style --extract-audio --audio-format wav ne servent (du moins utilisées seules) qu'une fois le téléchargement terminé, le logiciel demande alors à ffmpeg d'en extraire l'audio, mais à ce que je sache, ça ne marche donc pas durant le téléchargement :/

J'ai également tenté de lancer youtube-dl dans un 1er shell, puis lancer ffmpeg dans un 2ème shell, pour convertir le .mp4 en .wav en temps réel, mais ffmpeg (avec une commande classique du moins) n'y parvient pas et retourne une erreur:

Code : Tout sélectionner

root@raspberrypi:/home/pi/Music/anime_radio# ffmpeg -i "日文、動漫音樂電台 _ Anime Music➨24_7-oJ5tiq4DBNY.mp4" -vn audio.wav

...

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x10381c0] moov atom not found
日文、動漫音樂電台 _ Anime Music➨24_7-oJ5tiq4DBNY.mp4: Invalid data found when processing input

dyox a écrit : En temps normal, quelles sont les ressources utilisés ?

En temps normal:
Pour télécharger sur YouTube, j'utilise youtube-dl
Pour convertir en .wav, j'utilise ffmpeg
Pour diffuser sur la radio, l'utilise pi_fm_rds

(j'espère avoir correctement répondu à la question :roll: )


dyox a écrit : Je ne sais les I/O sur le support, p-ê mettre le répertoire de travail en ram avec un tmps ?

Je ne suis pas sûr de tout comprendre là :lol:


dyox a écrit : C'est fait avec quelle Pi ?

Actuellement, j'utilise un Raspberry Pi 4, plutôt puissant :)
Pour ce qui est de sa RAM, c'est un modèle 8GB


------------------------------------------------------------------------------------------------------------------->


J'ai eu une idée:
On pourrait télécharger fragment par fragment (de manière automatique) chaque partie du live dans des .mp4 séparés, et les convertir automatiquement en .wav etc... ce qui permettrait d'obtenir chaque fragment du live dans des fichiers .wav séparés.
À partir de là, on pourrait stopper et relancer la radio pour charger chaque fragment en .wav automatiquement, au fur et à mesure.


Ce n'est qu'une idée, et pas la seule, mais à développer donc.
Merci :D
Jeune débutant bien motivé à en apprendre beaucoup et à partager ses connaissances sur nos framboises :lol:

(Et équipé d'un RPi3 & RPi4)

dyox
Raspinaute
Messages : 821
Enregistré le : dim. 28 déc. 2014 15:28
Localisation : Le long de la côte, au dessus du pays des bigoudennes, aïe

Re: Projet radio "avancé"

Message par dyox » mar. 11 août 2020 23:31

Bonsoir,
En temps normal:
Pour télécharger sur YouTube, j'utilise youtube-dl
Pour convertir en .wav, j'utilise ffmpeg
Pour diffuser sur la radio, l'utilise pi_fm_rds

(j'espère avoir correctement répondu à la question :roll: )
Pas du tout ! ;) Je voulais savoir le %proc et mémoire utilisée
Je ne sais les I/O sur le support, p-ê mettre le répertoire de travail en ram avec un tmps ?

Je ne suis pas sûr de tout comprendre là :lol:
Je ne sais pas comment se comporte un live mais je dirai comme du streaming : du data de copier en /tmp ou en temp du navigateur, à confirmer. Et donc je pensais que mettre ça en ram serait plus rapide et "protègerait" le support des écritures (I/O) inutiles. Je pensais encore à l'enchaînement de commande mais cela ne fonctionne pas en live, seulement sur un fichier.

Pour mon info, 5min de live représente combien de Mo ?
Effectivement, en fragmentant des sessions de 5mins, on décale le live de seulement 5min. Le délai du 1er enregistrement. Et avec 8Go de ram, on peut faire en sorte que tout ça se fasse en ram.

dyox
Raspinaute
Messages : 821
Enregistré le : dim. 28 déc. 2014 15:28
Localisation : Le long de la côte, au dessus du pays des bigoudennes, aïe

Re: Projet radio "avancé"

Message par dyox » mar. 11 août 2020 23:49

ALors pour info, si je m'appuis sur la doc, Pi-FM-RDS dépend de libsndfile, qui lit aussi du FLAC et Ogg/Vorbis. Pas de pot, youtube ne fait que du m4a...

ReshibanGaming
Messages : 39
Enregistré le : lun. 7 août 2017 00:04

Re: Projet radio "avancé"

Message par ReshibanGaming » mer. 12 août 2020 05:00

Je refais mon commentaire, Windaube qui se met à jour tout seul pendant que j'écris :cry:
Pas du tout ! ;) Je voulais savoir le %proc et mémoire utilisée
Ah d'accord!
Je te mets tout dans les images en-dessous alors :p
(les 2 prises à des moments différents, l'une avec nom de proc réduit, l'autre avec nom de proc développé ;) )

1ère:
Image

2ème:
Image

Je ne sais pas comment se comporte un live mais je dirai comme du streaming : du data de copier en /tmp ou en temp du navigateur, à confirmer. Et donc je pensais que mettre ça en ram serait plus rapide et "protègerait" le support des écritures (I/O) inutiles. Je pensais encore à l'enchaînement de commande mais cela ne fonctionne pas en live, seulement sur un fichier.
Lors du téléchargement d'un live (et même de vidéos normales il me semble) il télécharge fragment par fragment si je ne me trompe pas, fragments qu'il additionne au même fichier .mp4 au fur et à mesure qu'il télécharge.
Par contre, j'ai cherché mais sans succès le répertoire où il stock ces fameux fragments. Il y a une option --keep-fragments qui est censée conserver ces fragments, mais j'ai beau l'avoir testée plusieurs fois et cherché dans plein de répertoires comme /tmp, je ne trouve pas ces fichiers fragments !

Aperçu d'un téléchargement de live:
https://ibb.co/tBCN8WW

Pour mon info, 5min de live représente combien de Mo ?
Effectivement, en fragmentant des sessions de 5mins, on décale le live de seulement 5min. Le délai du 1er enregistrement. Et avec 8Go de ram, on peut faire en sorte que tout ça se fasse en ram.
J'ai laissé télécharger 5 minutes pile, converti en formats audios, ça m'a donné:
-Un .mp4 de 77.0Mo
-Un .wav de 56.8Mo
-Un .flac de 64.3Mo

J'étais très surpris du résultat, car le .flac est sensé compresser (sans perte comme tu le sais :D ), et il est pourtant + lourd que le .wav o_o

(En tout cas tu as l'air d'avoir une petite idée de comment on pourrait procéder avec la RAM, je dois avouer que c'est rassurant :lol: )

ALors pour info, si je m'appuis sur la doc, Pi-FM-RDS dépend de libsndfile, qui lit aussi du FLAC et Ogg/Vorbis. Pas de pot, youtube ne fait que du m4a...
Ah effectivement, j'ai testé et le .flac est bien supporté !
Mais oui malheureusement ils ne font que du .m4a
Je me demande si changer de lib pour supporter le .m4a serait possible, mais autant rester simple pour que n'importe qui puisse appliquer ce topic, et étant donné que de toutes façons youtube-dl semble obligé de récupérer audio + vidéo (.mp4) sur les lives, un support .m4a ne serait pas forcément utile.


En tout cas merci de ton aide ça fait plaisir, on a déjà pas mal de pistes ! :D
Jeune débutant bien motivé à en apprendre beaucoup et à partager ses connaissances sur nos framboises :lol:

(Et équipé d'un RPi3 & RPi4)

dyox
Raspinaute
Messages : 821
Enregistré le : dim. 28 déc. 2014 15:28
Localisation : Le long de la côte, au dessus du pays des bigoudennes, aïe

Re: Projet radio "avancé"

Message par dyox » mer. 12 août 2020 07:52

Bonjour,
Ah effectivement, j'ai testé et le .flac est bien supporté !
Hier il était tard j'ai oublié mon raisonnement. A suivre l'évolution de la librairie.
Donc https://github.com/ChristopheJacquet/PiFmRds qui te dit qu'il utilise libsndfile et http://www.mega-nerd.com/libsndfile qui te dit tout.

Oui avec 8Go de ram tu peux tout balancé en ram et ça consomme rien en %proc
Par contre, j'ai cherché mais sans succès le répertoire où il stock ces fameux fragments
J'ai donné des répertoires à surveiller ( /tmp ou en temp du navigateur), quitte à laisser grossir le téléchargement pour avoir une fourchette de Mo (on connait la taille de 5min). A partir de là, on peut rechercher par taille et date.

Pour l'instant, j'ai pas d'autres idées.

destroyedlolo
Raspinaute
Messages : 1458
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Projet radio "avancé"

Message par destroyedlolo » mer. 12 août 2020 16:15

Es-tu obligé de l'émettre comme une radio ?
Sinon, j'utilise 2 solutions qui fonctionnent très bien :
  • Bluetooth
  • PulseAudio : chez moi, ca marche en filaire et ca me permet de mettre une webradio sur mon PI qui n'a pas d'écran et qui se trouve dans la cave lorsque je bricole, le master étant au 1er
Pour les jouer : soit directement firefox, soit VLC pour les webradio.

A+
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Répondre

Retourner vers « Utilisateurs avancés »