KerLiveEvent

De Kernel Fablab Lannion
Boitier 4G

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

4gKit

   *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:

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…

Dimensions du Kit

4GKitIoT+-+hands-on11.jpg

Biblio