Transmettre le flux vidéo de la pi camera vers un PC Windows.

Inspiré de http://zacharybears.com/low-latency-raspberry-pi-video-streaming/

Principe :
- Rediriger le flux video Raspivid vers NetCat sur le raspberry.
- Configurer NetCat pour envoyer le flux vers le PC Windows.
- Configurer NetCat pour Windows afin de receptionner les flux video.
- Envoyer le flux video vers l'application mplayer pour Windows.

Sur le Raspberry :

On considère ici que la camera est activée et fonctionne localement sur le Pi

Installer netcat

sudo apt-get install netcat-traditional

Créer le script stream.sh

sudo nano stream.sh

avec le contenu suivant :

sudo rm fifo.500
sudo mkfifo fifo.500
sudo chmod 777 fifo.500
cat fifo.500 | nc.traditional 192.168.42.10 6001 &
/opt/vc/bin/raspivid -o fifo.500 -t 0 -vf -hf -w 1280 -h 720 -b 5000000

L'adresse IP indiquée ici est celle de la machine Windows, choisir un port disponible, ici 6001.

Modification des droits :

chmod 755 stream.sh


Sur le PC Windows :

Ici une machine Windows 7 x64.
Installer NetCat pour Windows
https://eternallybored.org/misc/netcat/netcat-win32-1.12.zip
Décompresser l'archive dans un dossier.

Installer mplayer pour Windows
https://sourceforge.net/projects/mplayerwin/
Décompresser l'archive dans un dossier.

Créer un fichier stream.cmd suivant dans le dossier NetCat

nc -l -p 6001 | ..\mplayer-svn-37875\mplayer.exe -vo direct3d -fps 31 -cache 1024 -

Adapter le chemin vers le dossier mplayer.

Utilisation :

1/ Sur le PC, exécuter stream.cmd
2/ Sur le Pi, exécuter stream.sh
3/ Après 1 à 2 seconde mplayer ouvre une fenêtre sur le PC avec la vidéo quasi en temps réel (moins d'une seconde de latence).
4/ Ctrl+C sur le Pi pour arrêter le tout.

En cas de problème, la bande passante réseau est peut-être insuffisante, dans ce cas, diminuer la résolution dans le fichier stream.sh (paramètre -w et -h).