Table des matières

Les serveurs télé

L'infrastructure

Nous avons actuellement un serveur de production pour la tnt :

Nous avons aussi un serveur de test pour le satellite :

Inventaire :

Tout le matériel non utilisé est entreposé dans un carton dans le placard ou en salle serveur

Côté Maisel

Pour le satellite, nous utilisons l'antenne de la Maisel sur le toit du U1. Si le signal n'est plus détecté (Erreur caractérisé par un nombre de processus mumudvb très bas et un débit en sortie d'obiwan très faible), il faut monter sur le toit du U1 en prévenant toujours quelqu'un qui ne montera pas (sans demander l'avis de la MAISEL, non en vrai c'est bien de prévenir les techniciens histoire que s'il y a un problème ils soient au courant) et réorienter l'antenne dans la bonne direction (satellite ASTRA 28.2E). L'inclinaison par rapport au sol doit être à 29°

Utiliser Mumudvb

Nous utilisons mumudvb, mais on doit faire la gestion des chaines à la main : faire des scan et générer les fichiers de confs et le fichier de playlist pour vlc, il pourrait etre intéressant de tester : https://tvheadend.org

Toute la doc est sur http://mumudvb.braice.net. Pour les fichiers de configuration de la version 1.7 : http://mumudvb.braice.net/mumudvb/doc/mumudvb-1.7.1/README_CONF.html

Il y a deux façons d'utiliser la ligne de commande pour lancer mumudvb. Dans tous les cas, il faut un processus de mumudvb par tuner.

Lancer le démon

Cela lance toutes les chaînes paramétrées pour être lancée automatiquement

service mumudvb stop | start | restart

Le paramétrage se fait dans /etc/default/mumudvb par défaut après installation, mais il faut modifier le fichier /etc/init.d/mumudvb pour que le fichier default soit /etc/mumudvb/default/[machine] du git des fichiers de configuration.

Informations sur la carte et ce qu'elle fait

On peut vérifier que les cartes sont bien détéctés/utilisés par mumudvb:

 mumudvb -l 

Lorsque la carte est utilisé:

ERRO:  DVB:  FRONTEND DEVICE: /dev/dvb/adapter0/frontend0 : Device or resource busy

Lorsqu'elle est libre:

 Quand elle est libre:
Info:  DVB:  =========== Card 1 - Tuner 0 ===========
Info:  DVB:   Frontend : Montage Technology DS3000
Info:  DVB:   Satellite (DVB-S) card
Info:  DVB:   Frequency: 950000 kHz to 2150000 kHz
Info:  DVB:   Symbol rate: 1000 k symbols/s to 45000 k symbols/s 

Pour savoir ce que diffuse un tuner (ex: tuner 1), il faut ouvrir /var/run/mumudvb/mumudvb_streamed_adaptater1_tuner0

Lancer un processus avec fichier de configuration

Cela permet de lancer un processus unique de mumudvb. Attention : il faut avoir les droits du groupe vidéo donc lancer en root ou avec un utilisateur du groupe video. Dans ce cas, le processus est lancé par l'utilisateur et non par _mumudvb, l'utilisateur qui fait partie du groupe video

/usr/bin/mumudvb -c path/to/config/file

Les options :

L'option –card n'est valable que dans les versions supérieures à 1.7 et elle annule l'option card=X du fichier de configuration. Pour les versions précédentes, cette option n'est pas implémentée, il est donc nécessaire d'ajouter le card=X dans le fichier de configuration.

Lancer en autoconfiguration

Créez un fichier pour l'autoconfiguration, suivant les cas (satellite ou tnt) puis lancez mumudvb avec (mumudvb -dvc pth/to/file –card X). Si il n'y a pas de problèmes de droits, un fichier de configuration aura été créé dans /var/run/mumudvb. Il peut être repris et adapté comme fichier de configuration.

Si le répertoire /var/run/mumudvb n'existe pas, vous pouvez le créer avec les bons droits ou lancer une fois à vide le script d'init qui le créera pour vous.

Reportez-vous à la documentation de mumudvb pour avoir des informations sur les niveaux d'autoconfiguration et les options possibles.

Pour la TNT :

Il faut créer un fichier avec les lignes suivantes :

freq=XXXXXX
autoconfiguration=2
Pour le satellite :

Il faut créer un fichier avec les lignes suivantes :

freq=XXXXXX
pol=X
srate=XXXXX
autoconfiguration=2

Obtenir les fréquences

Pour la TNT :

Vous pouvez utiliser le paquet w-scan pour trouver l'ensemble des fréquences sur lesquelles on peut recevoir quelque chose :

w_scan -c FR 

Vous pouvez alors voir l'ensemble des fréquences. Il est possible de faire une recherche détaillée. Reportez-vous au site de mumudvb, l'utilisation de w_scan y est détaillée.

Pour le satellite :

Dans l'annuaire des satellites du site kingofsat.net, vous pouvez trouver la position sur laquelle l'antenne est pointée (28.2E actuellement). Sur la page correspondant à la position orbitale, vous avez la liste des ensembles de chaînes incluant fréquence, polarisation et débit.

http://fr.kingofsat.net/freqs.php?&pos=28.2E&standard=All&ordre=freq&filtre=Clear

On peut également scanner les chaînes disponibles avec w_scan sur le satellite 28.2°E:

w_scan -fs -s S28E2 -c FR

Obtenir un fichier de configuration à partir de la fréquence

Il faut lancer un processus avec un fichier de configuration avec autoconfiguration et la fréquence voulue. Un fichier de configuration sera généré dans /var/run/mumudvb si le répertoire a bien été créé. (pour cela, il suffit de lancer le démon)

Générer automatiquement un fichier de configuration pour le pool BBC One

mumudvb -d -c confBBC

avec confBBC:

delivery_system=DVBS2
freq=10773.00
pol=h
srate=22000
multicast_ipv4=1
autoconfiguration=full

Mettre en place un serveur télé

La distribution

Mumudvb a été créé pour Debian ou Ubuntu. Nos cartes PCI dvb-t nova t500 sont supportées sur Debian et sur Ubuntu. Par contre les sticks USB Avertv ont besoin d'un firmware spécial sous Debian, qui est inclus dans le paquet firmware-linux-nonfree de Ubuntu.

Du coup, il est plus facile de mettre en place un serveur télé sous Ubuntu. Actuellement, Anakin est sous Ubuntu server 14.04 LTS et Obiwan sous debian Jessie.

Avec les nouvelles cartes tv remplaçant les sticks, on n'est plus limité à Ubuntu.

Installer les drivers de la carte satellite tbs6985

Il faut d'abord télécharger les drivers sur http://www.tbsdtv.com/download/ . Téléchargez celui pour linux de la TBS6985. L'installation se fait facilement sous ubuntu.

Vous pouvez lire le README qui correspond à la carte (plus ou moins, c'est celui de la 6981).

Il faut donc procéder :

./v4l/..._r3.sh #si votre noyau est 3.x
./v4l/...x86.sh #si votre noyau est 2.6.x en 32 bits
./v4l/...x86_64.sh #si votre noyau est en 64 bits.

Ce qui équivaut à :

mkdir driver_tbs
mv tbs-linux-drivers_v130506.zip driver_tbs/
cd driver_tbs/
unzip tbs-linux-drivers_v130506.zip
cp dvb-fe-cx24116.fw /lib/firmware/
tar -xvjf linux-tbs-drivers.tar.bz2
cd linux-tbs-drivers
./v4l/tbs-x86_64.sh #si vous êtes sur un 64 bits
./v4l/tbs-x86.sh #si vous êtes sur un 32 bits
./v4l/tbs-x86_r3.sh # si vous êtes sur un noyau 3.x
make
make install

Pour Debian, il faut avoir installé de quoi compiler comme build-essential et le paquet linux-headers correspondant à la version retournée par “uname -a”.

Installation

Après avoir installé la distribution de base, il faut installer les paquets suivants :

apt-get install zabbix-agent nmap htop dstat
apt-get install firmware-linux-nonfree v4l-utils w-scan mumudvb

Pour gérer les vlans (diffusion et administration), il faut activer le module 8021q soit ajouter la chaîne “8021q” au fichier /etc/modules puis installer le paquet vlan.

Le réseau

Le serveur

Configuration du réseau (pour ubuntu):

auto ethX
iface ethX inet static
   address 192.168.27.Y
   netmask 255.255.255.0
   gateway 192.168.27.1

iface ethX inet6 static
   address 2001:660:3203:427::YY
   netmask 64
   gateway 2001:660:3203:427::1
   
auto ethX.102
iface ethX.102 inet static
   address 192.168.102.YY
   netmask 255.255.255.0
   dns-nameservers 192.168.102.55 192.168.102.54

à adapter pour l'ipv6

Les flux partent où?

Par défaut, les flux de multicast sont envoyés vers la gateway (et oui, on applique le masque aussi pour les ips de multicast). Mais il est possible de changer ça. Vous avez plusieurs options :

Ainsi vous pourrez choisir l'interface vers laquelle vous diffusez les flux

Le switch

Du coup, configuration du switch :

enable
configuration terminal
  default interface ...
  interface ...
    switchport mode trunk
    switchport trunk native vlan 27
    switchport allowed vlan 27.102
    exit
  exit
write mem

Quelle version pour mumudvb

Il y a deux versions possibles principalement : la 1.6 et la 1.7.1

La version des paquets est la 1.6. Pour installer la 1.7.1, il faut désinstaller la 1.6 ou satisfaire les dépendances si la 1.6 n'était pas installée.

Quelles avantages : la 1.7.1 supporte l'ipv6, a plus d'options disponibles et gère mieux pas mal de chose mais la 1.6 a un mode verbose plus développé, plus clair ^^ Donc si il y a un bug, il est plus facile de le gérer avec la 1.6.

Installer la version 1.7

Attention : si vous n'avez pas d'accès direct à internet (normalement c'est le cas), n'oubliez pas :

export http_proxy="http://192.168.102.61:82/"
echo 'Acquire::http::Proxy="http://192.168.102.61:82/";' > /etc/apt/apt.conf
   

Paquets requis pour la compilation :

apt-get install git devscripts pgpgpg debhelper git-buildpackage

Compilation :

git clone http://git.debian.org/git/pkg-vdr-dvb/dvb/mumudvb.git
cd mumudvb
git-buildpackage -us -uc
cd ..
dpkg -i *.deb # après avoir désinstallé toute version de mumudvb

Après avoir installé

Certaines actions sont nécessaires pour pouvoir lancer en mode daemon : * ajouter l'utilisateur de mumudvb (_mumudvb généralement) au groupe video :

usermod -aG video _mumudvb

* vérifier le script d'init, ex :pour la version 1.7, le stop ne marche, il faut ajouter un killall mumudvb au bout du code du do_stop

Les fichiers de configuration

Les fichiers de configuration sont centralisés sur un dépôt git : conf_mumudvb

Mettre en place les fichiers de configuration

Assurez-vous d'avoir un accès à internet (enfin gitlab est suffisant ^^). Du coup :

export http_proxy="http://192.168.102.61:82/"

Si l'ip du proxy n'a pas changé. Assurez-vous d'avoir aussi les dns.

Placez-vous dans /etc et

git clone http://gitlab.minet.net:3000/mael/conf_mumudvb.git
mv conf_mumudvb mumudvb

Les fichiers de configuration ont été copiés. Il faut maintenant adapter la conf de mumudvb : Dans /etc/init.d/mumudvb, modifier la ligne de default file pour /etc/mumudvb/default/…

Le fichier default

C'est le fichier qui liste les fichiers de configurations à lancer par le /etc/init.d/mumudvb. Il doit être adapté à la configuration physique du serveur (les numéros de tuners doivent correspondre).

Attention à la variable DONTSTARTMUMU, si elle est à true, mumudvb ne démarre pas. Il faut donc la mettre à false.

Débugguer

Limitation du nombre de tuners

Dans une installation de base de v4l, il y a une limitation à 8 tuners. (A partir du neuvième, ils n'apparaissent plus dans /dev/dvb)

Une des chaînes n'émet plus / problème de son

Si une chaîne n'est plus émise en multicast ou si il n'y a plus de son sur une chaîne, c'est certainement parce que les pids ont changé. Pour résoudre le problème, il faut relancer la configuration automatique par mumudvb et récupérer la liste des pids pour la mettre à jour.

C'est notamment le cas avec les chaines HD qui ne fonctionnent plus lorsque les serveurs n'ont pas été redémarrés depuis plusieurs mois. Si vous ne voulez pas vous embêter, n'hésitez pas à les redémarrer physiquement et tout devrait rentrer dans l'ordre.

Les chaînes cryptées s'arrêtent après la fin de l'émission en clair

Si la chaîne cryptée diffuse en clair, s'arrête au retour du cryptage et ne redémarre pas quand la chaîne repasse en clair, c'est parce que mumudvb considère que le signal crypté n'existe pas et donc qu'il ne reçoit rien, il arrête donc d'essayer de streamer. Il faut ajouter dans le fichier de configuration incriminé les deux lignes :

tuning_timeout=0 #ou 9999999999999 pour la 1.6 (erreur avec 0)
timeout_no_diff=0