KerLiveEvent
Présentation
KerLiveEvent est un projet pour mettre en place un flux vidéo (sans audio pour le moment) en direct vers un serveur de streaming via un raspberry pi et une connection internet (wifi/ethernet/4G)
Nous utilisons ffmpeg via le flux de raspivid mais d'autres solutions sont possible (avconv, ffmpeg direct, v4L2, cvlc, gstreamer, ...)
Pré-Réquis
Matériel
Raspberry pi B Raspberry camera Une alimentation qui fournit au moins 1A
Logiciel
Raspbian Raspivid / Ffmpeg compilé pour raspbian avec x264 et alsa Un compte sur un site de streaming (on prend ici comme exemple youtube mais dailymotion ou tout autre serveur rtmp)
RaspBerry
Procédure d'installation
- La procédure peut être très longue, plusieurs heures de compilation pour ffmpeg (on ne peut pas utiliser apt-get pour raspbian avec ffmpeg pour le moment).
- Une image disque du résultat sera mis à disposition asap.
- Install de raspbian sur la carte SD (plein de tuto disponible sur le net)
- Puis en ligne de commande sur le raspberry pi (connectez vous via ssh)
sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade sudo rpi-update sudo reboot
Dans raspi-config:
Enable camera Locale FR Hostname au choix Expand filesystem Memory split 128
x264
Installation depuis la source: http://stuff.stevenreid.uk/2015/03/31/install-x264-on-raspbian/
cd git clone git://git.videolan.org/x264 cd x264
For armv6 (rasperry b+):
./configure --extra-cflags="-march=armv6 -mfloat-abi=hard -mfpu=vfp" --enable-static --disable-opencl --disable-asm
For armv7 (rasperry 2):
./configure --extra-cflags="-march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16" --enable-static --disable-opencl --disable-asm
Then
make checkasm ./checkasm make sudo make install
libasound-dev
sudo apt-get install libasound2-dev
lame
source https://www.raspberrypi.org/forums/viewtopic.php?p=411628):wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.tar.gztar xzvf lame-3.99.tar.gzcd lame-3.99
./configure make sudo make install
libfaac
(source https://www.raspberrypi.org/forums/viewtopic.php?p=411628 et correction des erreurs en suivant la correction sur ce lien: https://cloudhsiao.wordpress.com/2015/06/03/streaming-video-with-raspberry-pi-cont/): curl -#LO http://downloads.sourceforge.net/project/faac/faac-src/faac-1.28/faac-1.28.tar.gztar xzvf faac-1.28.tar.gzcd faac-1.28./configure make sudo make install
libvpx
source: http://stuff.stevenreid.uk/2015/03/31/install-x264-on-raspbian/
git clone https://chromium.googlesource.com/webm/libvpx cd libvpx./configure --enable-static --disable-examples --disable-unit-tests make sudo make install
ffmpeg
Pas de panique c'est très long (qq heures): (source: http://stuff.stevenreid.uk/2015/03/31/install-x264-on-raspbian/)
git clone git://source.ffmpeg.org/ffmpeg.git cd ffmpeg./configure --arch=armel --target-os=linux --enable-gpl --enable-libx264 --enable-libvpx --enable-libmp3lame --enable-libfaac --enable-nonfree --enable-avresample --enable-shared --prefix=/usr --enable-version3 --disable-mmx make sudo make install
Après installation si a l'usage vous avez un problème de librairie faire: export LD_LIBRARY_PATH=/usr/local/lib Pour régler le problem de librairie définitivement: modifier le fichier /etc/profile et ajouter la déclaration de cette variable. Et reboot.
C'est finit côté installation.
Ligne de commande pour streamer
Pour le moment on ne stream que de la video, via une ligne de commande principal (fonctionnel en date du 30/09/15) en 360p sur youtube. Des tests en 720p montre que le raspberry pi B+ a un peu de mal, mais un raspberry pi 2 doit suivre facilement.
raspivid -n -ih -o - -t 0 -w 640 -h 360 -fps 25 -b 750000 -g 50 | ffmpeg -re -ar 44100 -ac 1 -acodec pcm_s16le -f s16le -ac 1 -i /dev/zero -thread_queue_size 512 -f h264 -i - -b:v 750k -minrate 750k -maxrate 750k -bufsize 750k -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental -flags global_header -f flv "XXXXXXXX"
Ou XXXXXX est le lien donné par youtube (ou tout autre serveur rtmp) pour le streaming.
Pour avoir ce lien aller sur votre compte youtube => Ma chaine => Gestionnaire de vidéos => Diffusion en direct ==> Vous trouverez en bas le lien (partie config de l'encodeur)
Pour mettre le flux en 720p vous pouvez essayer la commande ci-dessous mais il sera difficile d'atteindre les 25fps. raspivid -n -ih -o - -t 0 -w 1280 -h 720 -fps 25 -b 2000000 -g 50 | ffmpeg -re -ar 44100 -ac 1 -acodec pcm_s16le -f s16le -ac 1 -i /dev/zero -thread_queue_size 512 -f h264 -i - -b:v 750k -minrate 750k -maxrate 750k -bufsize 750k -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental -flags global_header -f flv "XXXXXXXXXXXXXXXX"
Les lignes de commandes ci-dessus sont surement optimisable (je ne suis pas un expert ffmpeg)
4g
Mise en service
- Aller sur [1]
- Se Logger avec l'@mail t****la****** et le mdp habituel T**********
- ajout du device
- FabLabLannion1
- 6 dernier digit de l'IMEI
- 6 dernier digit de l'@Mac
- Brancher la batterie
- Appuyer sur le bouton
- La recharge de la batterie se fait par le port USB
- Pour arrêter, allez sur [2] et tapez poweroff
*Open Source Olimex Board *4G moduleapply for your 4G Kit now *Antenna *Battery *SIM card pre-loaded with data
github du projet [3] [4] [5] Boitier à découper à la laser
SSH sur USB
- ssh 192.168.7.2 Login/pwd to find
info sur blog olimex
lien sur les cartes:
- carte SOM A13 existe 2 version 256 ou 512
- dépots carte fille LTE
- Doc de la carte
- wiki de la carte
la carte SOM dispose de 2 USB qui vont sur GPIO2 et sur la carte LTE, seul 1 port est utilisé.
Le second va sur USB-OTG.
sinon dispose interface LCD & interface SPI et GPIO…