Welcome!
This community is for professionals and enthusiasts of our products and services.
Share and discuss the best content and new marketing ideas, build your professional profile and become a better marketer together.
Pourquoi nous devrions utiliser le streaming sur IPFS ? Et comment.
Scénario actuel de la diffusion en continu sur Internet
Au cours des dernières années, les applications vidéo, et notamment le streaming vidéo, sont devenues très populaires. De nombreux fournisseurs ont commencé à publier leurs contenus tels que des actualités, des séries et des films sur leurs sites Web dédiés ou ont utilisé à cette fin des services de partage externalisés.
Le streaming vidéo est généralement basé sur HTTP et TCP, et le lecteur vidéo est intégré dans un navigateur web. TCP est actuellement le protocole de transport le plus utilisé sur l'internet, mais il est généralement considéré comme inadapté au streaming multimédia. HTTP et TCP sont des protocoles à usage général et n'ont pas été spécifiquement conçus ou optimisés pour la diffusion de médias en continu.
La bande passante est précieuse. Lorsqu'un grand nombre de personnes demandent des médias sur l'internet, une grande quantité de bande passante circule sur l'internet. Ces connexions sont uni-cast et sont transmises à chaque personne individuellement. S'il y a 500 personnes qui regardent, chaque personne doit obtenir une copie de ce média. Dans ce cas, la bande passante augmente avec le nombre de personnes. Pour 500 personnes, il faut 500 fois plus de bande passante.
Pour résoudre ce problème, des entreprises comme YouTube dépendent des CDN. En gros, elles règlent ce problème en ajoutant beaucoup plus d'ordinateurs et en déplaçant les centres de distribution plus près des utilisateurs de masse.
Pour compliquer les choses, la différence entre la baisse annuelle des prix du stockage (40%) et de la bande passante (26%) est presque double.
Tout cela signifie que nous aurons davantage de personnes, qui diffuseront davantage de données sur des canaux qui ne seront pas aussi rapides. Cela crée une congestion qui, à un moment donné, ne peut être résolue en ajoutant simplement plus de matériel.
Imaginez que vous êtes dans un cours avec 100 personnes et que vous regardez tous la même vidéo. Cette vidéo doit être récupérée dans les nœuds les plus proches de Google, diffusée sur les ordinateurs portables de chaque étudiant et répétée 100 fois. Au lieu que les étudiants, qui possèdent une copie identique de la vidéo, la partagent entre eux, nous propageons de grandes quantités de données, sur de longues distances, plusieurs fois. C'est inefficace, mais c'est ainsi que fonctionne le protocole HTTP et cela crée de gros problèmes de congestion sur la dorsale de l'internet.
Aujourd'hui, l'Internet est un système centralisé qui présente naturellement un point de défaillance unique. Ce point de défaillance peut être utilisé à mauvais escient pour désactiver l'accès au contenu d'un pays entier. En outre, ces services de streaming traditionnels sont sous l'autorité d'une ou de quelques grandes organisations. Ils décident de la qualité du service et des règles de censure, et les utilisateurs doivent s'y conformer sans poser de questions. Il s'agit donc d'un système centralisé de pouvoir et d'autorité.
Qu'est-ce qu'IPFS ?
IPFS ou InterPlanetary File System est un protocole et un réseau open-source conçu pour créer une méthode de stockage et de partage d'hypermédia dans un système de fichiers distribué, adressable par le contenu et de pair à pair. Il vise à rendre le web plus rapide, plus sûr et plus ouvert.
Comment IPFS peut-il nous aider dans le domaine du streaming ?
IPFS est en train de devenir un nouveau sous-système majeur de l'internet. S'il est bien utilisé, il pourrait compléter ou remplacer HTTP.
Dans le streaming IPFS, nous n'avons pas besoin de pousser le contenu vers chaque utilisateur. Tout ce que vous avez à faire, c'est de pousser le contenu vers les passerelles IPFS. Tous ceux qui veulent ce contenu peuvent le récupérer à partir de là. La passerelle IPFS met le contenu en cache localement. Donc plus il y a de passerelles, plus il y a de sources de contenu.
L'IPFS assure la persistance du stockage de ces contenus multimédia diffusés en direct, de sorte que si quelqu'un manque la diffusion en direct, il peut toujours revenir pour en trouver une copie sauvegardée. Le réseau supprime automatiquement les doublons et suit l'historique des versions. Avec notre interface, nous permettons également aux utilisateurs de programmer le contenu pour le streaming en direct et la diffusion. Les utilisateurs peuvent enregistrer le média et automatiser le système pour diffuser ce média à l'heure donnée pendant la durée spécifiée.
IPFS aide à résoudre la congestion et la censure. Au lieu des emplacements, les adresses IPFS pointent directement vers les ressources et il s'assure que ces données proviennent des sources les plus proches.
Cela signifie que si une salle de classe remplie d'élèves devait regarder la même vidéo, ils la récupéreraient les uns chez les autres au lieu d'un emplacement central. Ainsi, la diffusion en continu d'une vidéo 4k ne nécessite pas de mémoire tampon.
1. Obtenir le contenu
WebRTC fournit aux navigateurs web et aux applications mobiles une communication en temps réel via des interfaces de programmation d'applications simples. Avec WebRTC, nous transférons le contenu de la webcam au serveur du nœud sous forme de WebM avec le codec VP9 toutes les 5 secondes.
2. Conversion en HLS
Une fois que nous recevons le morceau de contenu côté serveur, nous convertissons ce morceau au format HLS à l'aide de FFMPEG. Cela crée un fichier m3u8 et des fichiers ts. Nous ajoutons ces fichiers dans un dossier spécifiquement dédié à cette session de live stream.
3. Ajout des fichiers à IPFS
A chaque mise à jour dans ce dossier dédié, nous devons ajouter / ré-ajouter ce dossier à IPFS et republier l'IPNS. Après chaque mise à jour, le contenu change et donc le hash de ce dossier change. Mais nous n'avons pas besoin de cela, nous avons besoin d'un hash statique qui peut faire référence à ce dossier toujours dynamique de fichiers HLS. Dans ce but, nous utilisons IPNS.
Un nom dans l'IPNS est le hachage d'une clé publique. Il est associé à un enregistrement contenant des informations sur le hachage auquel il est lié et qui est signé par la clé privée correspondante. De nouveaux enregistrements peuvent être signés et publiés à tout moment.
4. Lecture côté client
HTTP Live Streaming (HLS) est l'un des protocoles les plus populaires utilisés aujourd'hui pour la diffusion de vidéos. Au cours des dernières années, HLS est devenu un protocole standard pour la vidéo sur le Web, et ce pour une bonne raison. Le HLS est assez simple à configurer, son utilisation est gratuite et il est pris en charge par un large éventail d'appareils.
N'importe qui sur le réseau peut demander le contenu à l'aide du hachage IPNS et le lire sur le navigateur avec le lecteur HLS. Le lecteur HLS prend le fichier 'master.m3u8' et lit les morceaux dans un ordre défini.
En résumé, avec l'aide d'IPFS, nous voulons réduire la quantité colossale de bande passante utilisée par les technologies de streaming actuelles et traditionnelles et fournir un stockage de contenu persistant, un streaming de meilleure qualité. En outre, nous éviterons de conserver et de transférer un grand nombre de copies de contenu sur Internet et commencerons plutôt à traiter le média par son contenu. Ce système de streaming basé sur IPFS nous permettra également de réduire la censure indésirable du contenu et d'automatiser le processus de streaming chaque fois que nécessaire pour le rendre plus facile pour tous.
REVOtic
La révolution des technologies futuristes
SOURCE: https://medium.com/revotic/streaming-with-ipfs-2145e6df5a4e
TRADUCTION: https://www.deepl.com/translator
EXPERIENCE: https://github.com/tomeshnet/ipfs-live-streaming
ACTIVER nginx rtmp
sudo apt-get install libnginx-mod-rtmp
# GUIDES
https://bartsimons.me/nginx-rtmp-streaming-server-installation-guide/
https://blog.100tb.com/how-to-set-up-an-rtmp-server-on-ubuntu-linux-using-nginx
https://obsproject.com/forum/resources/how-to-set-up-your-own-private-rtmp-server-using-nginx.50/
https://www.hostwinds.com/guide/live-streaming-from-a-vps-with-nginx-rtmp/
CONFIG
https://github.com/arut/nginx-rtmp-module/wiki/Directives
https://github.com/arut/nginx-rtmp-module/wiki/Directives#hls_variant
Pour tester le streaming de votre webcam, installez Astroport/KODI sur votre machine puis utilisez
~/.zen/astrXbian/zen/stream/process-stream.sh
Le premier Stream de ma Webcam sur l'IPNS "star_1" (niveau de confiance 1 étoile) s'est bien déroulé (sans le son encore)...
Pour la démo, l'url de mon stream webcam (station onelove) il se publie là
https://aries.copylaradio.com/ipns/k51qzi5uqu5dlzfd6phry631wvthrv5c3crdgc2x9vp301dwobgimn785ip8st
faut avoir installé la couche astroport sur son PC (avec VLC) et qu'on soit amis pour capter le flux...
ça se passe ici dans le code
https://git.p2p.legal/axiom-team/astrXbian/src/branch/master/zen/stream
Reste à ajouter un proxy rtmp pour capturer un flux OBS Studio maintenant
Rester informé
Communauté #CopyLaRadio
Outils de question
Statistiques
Posée: 07/04/2021 00:42 |
Vu: 1463 fois |
Dernière mise à jour: 07/04/2021 23:27 |