Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Transformer votre Raspberry Pi en Chromecast

Par Félix LABRUHE Publié le 14/06/2018 à 18:41:59 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Introduction

Savez-vous ce qu'est un Chromecast ? C'est un lecteur de flux multimédia, vendu par Google. Ressemblant à s'y méprendre à une clé USB, ce petit appareil vous permet d'envoyer depuis un appareil, du contenu vers lui. Pour illustrer mes propos, on peut très bien l'imaginer connecté à une Télévision ou un écran via sa prise HDMI. Une fois branché vous pouvez streamer certains éléments, désormais, sur votre télévision ( par exemple une vidéo YouTube, ou de la musique, depuis votre téléphone).

Après, cela reste un objet composé d'un écosystème fermé et laissant peu de place à l'imagination. Sans pour autant partir directement dans la paranoïa la plus extrême, il est compréhensible de vouloir contrôler ce qu'il se passe et ce qui est retenu entre votre émetteur de donnée et le receveur.

Pour répondre à ce besoin vous pouvez mettre en place une solution similaire complètement open source. Si cela vous intéresse, commençons. Tout d'abord, voici la liste des prérequis :

  • Un Raspberry Pi avec Raspbian d'installé

  • Une connexion au réseau local, pour le Raspberry Pi et l'appareil émetteur

  • Un câble HDMI

Réalisation

Les commandes qui vont suivre vont être réalisées sur un Raspberry Pi. Elles peuvent être rentré soit dans une invite de commande sur le Raspberry Pi lui même, ou bien à distance en étant connecté en SSH. La première solution va nous permettre d'envoyer du contenu depuis un téléphone Android vers notre Raspberry Pi.Nous allons, dans un premier temps, installer les dépendances dont le programme principal a besoin.

sudo apt-get install libjpeg8-dev
    libpng12-dev

Nous allons maintenant installer OMX image viewer qui permettra de recevoir le flux envoyé. Tout d'abord nous récupérons les fichiers d'installation sur son repos Github via la commande :

git clone https://github.com/HaarigerHarald/omxiv Si une
    erreur apparait, il vous manque surement le paquet contenant la commande
    git sudo apt-get install git

Ensuite, nous nous rendons dans le dossier qui vient d'être créer :

cd omxiv

Il ne nous reste plus qu'à compiler le programme :

make ilclient make -j4

Et de lancer l'installation :

sudo make install

Maintenant, pour éviter que notre Raspberry Pi se balade sur le réseau, nous allons lui assigner une IP fixe.

sudo nano /etc/dhcpd.conf

Et rajoutez ce qui suis à la fin de celui-ci.

À vous de modifier ces informations en fonctions de votre matérielle.

interface eth0 #cela correspond au nom de l'interface que
    vous allez configurer static ip_address=192.168.0.200/24 #a vous de
    choisir l'adresse static de votre choix static routers=192.168.0.1
    #Reference au routeur de votre box internet static
    domain_name_servers=192.168.0.1 # même chose que routeur

Nous en avons désormais terminé avec le Raspberry Pi, maintenant nous allons faire des manipulations sur notre téléphone Android. Nous allons tout simplement installer l'application "Raspicast" disponible sur le play store.

Une fois celle-ci en votre possession, lancez là.

Pour la paramétrer, cliquez sur les trois points en haut à droite. Dans les champs qui vous sont présentés, vous allez indiquez comme hôte l'adresse IP de votre Raspberry Pi et rentrez vos identifiants SSH qui permettront à l'application de communiquer avec le Raspberry Pi.

Maintenant que cela est fait, vous pouvez dés maintenant partagez des images, vidéo en sélectionnant l'élément et en le partageant via Raspicast. Notez que vous pouvez partager aussi des vidéos YouTube depuis votre téléphone vers votre RPI.

Cette technique est loin d'être complète et entièrement fonctionnel, elle peut très vous convenir si vous souhaitez partager du contenu depuis votre téléphone Android. Il existe une autre solution, dont l'utilisation sera plus axée vers une communication PC/Raspberry Pi que Telephone/Raspberry Pi.

Comme dans le cas précédent, nous allons cloner le Github de cette solution, nommée PiCAST.

clone git
    https://github.com/lanceseidman/PiCAST

Ensuite nous nous déplaçons dans le dossier créer :

cd PiCAST

Maintenant nous allons rendre le script d'installation exécutable et le lancer :

chmod +x setup.sh ./setup.sh

Cela risque de prendre beaucoup de temps pour tout mettre en place, mais rien ne vous empêche de laisser tourner le script d'installation durant le temps requis en arrière plan. Une fois l'installation terminée, il ne vous reste plus qu'à rendre exécutable le starter et de l'exécuter :

chmod +x picast_start.sh
    ./picast_start.sh

Il se peut que vous vous retrouviez face à des erreurs. Pour ma part j'ai été confronté à l'erreur suivante :

info:forever processing file: picast.js

Après quelques recherches, je me suis retrouvé à réinstaller quelques dépendances via les commandes :

sudo npm install

si votre serveur ne fonctionne toujours pas en exécutant picast.js, essayez d'éxecuter le programme via la commande suivante, vous pourrez ainsi en savoir d'avantage sur les erreurs rencontrées.

node picast.js

Voici l'erreur à laquelle je me suis retrouvé confronté :

EADDRINUSE :::3000

Ce qui signifie que le port 3000, qui est utilisé par Picast, est déjà en cours d'utilisation par un autre service sur votre Pi.

Pour remédier à cela, il suffit de changer le port d'écoute.

Pour ce faire commencer par ouvrir picast.js via un éditeur de texte quelconque. Vous allez modifier, à la ligne 16, la valeur 3000 qui correspond au port par défaut.

var srv = app.listen(3000, function () {

Libre à vous de le modifier par une valeur de port non utilisé, par exemple modifier 3000 par 9789.

Nous allons maintenant si votre serveur est en marche, via un autre appareil sur votre réseau rendez-vous à l'adresse suivante :

http://IpDeVotrePi:LePortChoisis

Exemple : http://192.168.0.16:15375

Si le message "Welcome to PiCast 3 in the URL, type what you want to do..." vous accueille, félicitations votre serveur est opérationnel.

Vous pourrez dès à présent streamer depuis cette page des vidéos YouTube ou autre.Pour ce faire, rajoutez à l'adresse précédente "/yt-stream/idDeLaVidéo".

Et voilà, vous voilà avec un lecteur de vidéo à distance avec partage via page web.

Conslusion

Voilà donc deux solutions, incomplètes certes, mais fonctionnels. Elles peuvent vous combler suivant vos besoins s’ils sont simples et si vous ne supportez pas les solutions propriétaires. Rien n'empêche de futur développement plus complet, mais en attendant voici une vision d'ensemble des deux solutions les plus populaires.

Si vous souhaitez plus ample informations je vous invite à suivre les liens suivants :

https://github.com/lanceseidman/PiCAST

https://github.com/HaarigerHarald/omxiv

https://play.google.com/store/apps/details?id=at.huber.raspicast&hl=en_US

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels