est un projet qui couplé avec Darwin Server de chez ces pédés de Mac OS X permet d'obtenir un serveur de streaming vidéo. Mon but ici est de récupérer le flux de la télévision de ma Freebox V4 sur un ordinateur à l'aide de ma carte PCTV USB 50e. Il existe bien le projet avec VLC/Multiposte de chez Free pour avoir certaines chaines mais pas tous - par exemple TF1 qui n'est plus disponilble -.Je ferais de cet ordinateur un serveur de streaming vidéo de manière à pouvoir ensuite regarder la télé sur mon portable en WIFI grâce à VLC.

En gros voici ce que je souhaite mettre en place,


Principe du streaming pour le flux de la télévision de ma Freebox V4.
La carte Pinnacle PCTV USB2 50e là voici

Carte Pinnacle PCTV USB2 50e

MATERIEL ET BRANCHEMENTS

Je résume rapidement ici ce qu'il faut! On peut trouver tout le schéma complet et détaillé à http://www.eleves.ens.fr/home/meles/informatique/guides/tv/que j'ai adapté à mon matos ici


Le commutateur. Il faut veiller à être sur la postion OUT surtout.
Au niveau des câbles, il nous faut

Câble composite pour la vidéo.

Câble composite pour l'audio.
Au niveau des branchements, il suffira de faire

Connexion pour la freebox et la carte TV.
La carte est ensuite connectée à l'ordi par le port USB. L'entrée audio-composite se branche soit sur le microphone ou le line-in. Passons maintenant à la

RECONNAISSANCE/INSTALLATION DE LA CARTE

J'ai ici pris une version de la Dapper qui n'a pas été mise à jour depuis longtemps! Un petit uname -r me renvoit

root@jenna:~# uname -r
2.6.15-23-386

Hic! Celà ne sera pas suffisant pour reconnaitre ma carte PCTV USB2 automatiquement. Mais que celà ne tienne!

Voici comment faire ! A un moment où j'ai voulu suivre les indications de http://www.marcushellberg.com/pages/projects/digital-tv-in-linux.php mais celà me donnait des numéros de cartes non conformes à la mienne et apparement ce mercurial a récemment été mis à jour . Or sur une de mes bécanes, j'avais encore mon ancien répertoire v4l-dvb qui m'avait permis de l'installer pour ma carte. Donc du coup, pour tout retester, je l'ai mis sur mon site en libre téléchargement à l'adresse http://www.davidgis.fr/download/v4l-dvb-pctvusb250e-20070322.tar.gz

modprobe -r em28xx
apt-get install linux-headers-$(uname -r) mercurial gcc build-essential
cd /usr/src
wget http://www.davidgis.fr/download/v4l-dvb-pctvusb250e-20070322.tar.gz
tar xvzf 4l-dvb-pctvusb250e-20070322.tar.gz
cd v4l-dvb/
make
make install

Si on fait

modprobe em28xx

pour charger notre carte celle-ci ne sera pas encore prise en considération immédiatemment. En effet:

rdavid@jenna:~$ dmesg |grep -i Pinnacle
[4294688.006000] em28xx #0:     card=3 -> Pinnacle PCTV USB 2
[4294688.006000] em28xx #0:     card=9 -> Pinnacle Dazzle DVC 90
[4294688.006000] em28xx #0:     card=18 -> Pinnacle PCTV DVB-T
[4294688.006000] em28xx #0:     card=21 -> Pinnacle Hybrid Pro

Il nous faut ajouter la ligne suivante à notre fichier /etc/modprobe.d/options

echo options em28xx card=3 >> /etc/modprobe.d/options

Et on redémarre la machine!

REGARDER LA TELEVISION

Personnellement, j'ai essayé avec VLC mais je n'ai rien obtenu ! Mais j'ai réussi avec TVTIME et GMPLAYER . Je détaille dans la suite comment procéder.

TVTIME

Avec tvtime, c'est de loin le plus intéressant

sudo apt-get install tvtime
Il faut ensuite configurer tvtime. La suite va dépendre de l'entrée vidéo: S-Vidéo ou Composite. Pour info, l'entrée Composite est celle qui est la plus proche de la diode bleu ;) Ensuite, on lance tvtime depuis un terminal
tvtime
Si l'image est brouillée au début celà n'est pas bien grave. Il faut faire un clic-droit! Dans le menu qui apparaît, il faut choisir "Input Configuration"
Dans le nouveau menu, choisis "Change video source" entre S-Video ou Composite 1
Pour avoir le tuner en PAL, SECAM, il suffit de choisir l'option Television Standard et de redémarrer tvtime comme proposé!
GMPLAYER

Il suffira de taper depuis un terminal

gmplayer tv:// -tv driver=v4l2:device=/dev/video0:outfmt=i420:width=640:height=480:adevice=/dev/dsp1:norm=pal:input=1

Dans le terminal actif , on notera surtout les informations suivantes

Playing tv://.
Selected driver: v4l2
 name: Video 4 Linux 2 input
 author: Martin Olschewski 
 comment: first try, more to come ;-)
Selected device: Pinnacle PCTV USB 2
 Tuner cap:
 Tuner rxs:
 Capabilites:  video capture  tuner  audio  read/write  streaming
 supported norms: 0 = PAL; 1 = PAL-DK; 2 = PAL-I; 3 = NTSC; 4 = SECAM; 5 = PAL-M;
 inputs: 0 = Television; 1 = Composite1; 2 = S-Video;
 Current input: 1
 Current format: YUYV
v4l2: current audio mode is : MONO
v4l2: ioctl query control failed: Argument invalide
==========================================================================
Opening video decoder: [raw] RAW Uncompressed Video
VDec: vo config request - 640 x 480 (preferred colorspace: Packed YUY2)
VDec: using Packed YUY2 as output csp (no 0)
Movie-Aspect is undefined - no prescaling applied.
VO: [xv] 640x480 => 640x480 Packed YUY2
Selected video codec: [rawyuy2] vfm: raw (RAW YUY2)
==========================================================================
Audio: no sound
Starting playback...
v4l2: 1384 frames successfully processed, 9 frames dropped.

MPEG4IP

On va commencer par quelques paquets.

apt-get install libtool libsdl1.2-dev

On téléchargera la version 1.5.0.1 de mpeg4ip directement sur le site http://mpeg4ip.sourceforge.net.

 tar xvzf mpeg4ip-1.5.0.1.tar.gz
cd mpeg4ip-1.5.0.1
./bootstrap

Si on a l'erreur

Error - we have detected a version of faac that has libmp4v2 support
and no copy of mpeg4ip-config.  This means faac was built with
faad2 and the libraries will be incompatible.
Please reinstall faac without mp4v2 support

Pas de panique!

apt-get source libfaac-dev
cd ..
cd faac-1.24clean/
apt-get install automake autoconf
./boostrap
./configure

qui a un moment nous renverra surtout cette ligne

checking for MP4MetadataDelete in -lmp4v2... no

Ok! On continue

make
make install
ldconfig
maintenant on revient à mpeg4ip
cd ../mpeg4ip-1.5.0.1

On va ajouter quelques paquets supplémentaires. Celà je le fais en fonction de ce qui est demandé sur http://mpeg4ip.sourceforge.net/documentation/index.php#pre

apt-get update
apt-get install liblivemedia-dev liblame-dev libxvidcore4-dev liba52-0.7.4-dev libid3-3.8.3-dev libid3tag0-dev  libmpeg2-4-dev libx264-dev

Pour installer MPEG4IP, il suffira de faire

./bootstrap
make
make install
ldconfig

Darwin Server

Pour avoir le rtsp, il nous faut un serveur pour celà: Darwin Server de chez ces grosses tapettes de Mac OS X. Pour l'obtenir, il suffit de s'inscrire sur le site d'Apple à http://myinfo.apple.com/. On le télécharge ensuite à http://www.opensource.apple.com/projects/streaming/release/DarwinStreamingSrvr5.5.4-Linux.tar.gz. Son installation est des plus rudimentaires

tar xvfz DarwinStreamingSrvr5.5.4-Linux.tar.gz
cd DarwinStreamingSrvr5.5.4-Linux
chmod 777 -R .
./Install

Lors de l'installation, on demandera de fournir un nom d'administrateur et un mot de passe. Faudra pas les perdre! L'installation terminée, on ouvre un navigateur comme FireFox, on se rend à l'adress http://127.0.0.1:1220/. Quelques petites configuration de base seront demandées que je ne détaille pas ici.

N.B: Pour une utilisation ultérieure de Darwin Server, pour redémarrer le service , il suffira de saisir dans un terminal streamingadminserver.pl. Il faut veiller à ce qu'il n'y est pas déjà un serveur apache qui tourne sur le port 80.

TESTS

mp4live + Darwin Server - côté serveur

On s'assure que le serveur de Darwin est bien lancé. On lance maintenant mp4live...Celà aura pour effet de créer les fichiers et répertoires suivants:

root@jenna:~# find .mp4live_*
.mp4live_d
.mp4live_d/Video
.mp4live_d/Video/default
.mp4live_d/Audio
.mp4live_d/Audio/default
.mp4live_d/Text
.mp4live_d/Text/default
.mp4live_d/Streams
.mp4live_d/Streams/default
.mp4live_rc

Dans l'interface de configuration de mp4live, sur la figure suivante, j'ai mis ce qui est important de changer:

  • le répertoire pour le fichier .sdp est /usr/local/movies/. C'est bien sûr le répertoire par défaut de Darwin Server où l'on dépose les fichiers que l'on souhaite streamer;
  • les paramètres Composite1 pour la vidéo et pour le son sont accessibles et adaptable en accédant au menu déroulant "Change Source".
N.B: Pour de plus amples renseignements, on peut se référer à http://mpeg4ip.sourceforge.net/documentation/index.php#dss

Modificiations nécessaires à apporter à mp4live pour le coupler à Darwin Server.
VLC pour regarder la télé - côté client

Pour regarder la télé depuis VLC selon le protocole RTSP, il me suffira de saisir:

vlc rtsp://192.168.0.5/default.sdp