Table of Contents
VLS lit sa configuration depuis le fichier
vls.cfg
, qui doit se trouver dans le répertoire
courant ou dans SYSCONF_DIR/videolan/vls
où
SYSCONF_DIR est /usr/local/etc
si vous avez installé VLS à la main, ou /etc
si
vous avez utilisé le package Debian
.
Pour écrire un fichier vls.cfg
, utilisez celui fourni
avec VLS comme point de départ
.
Le fichier de configuration
vls.cfg
est divisé en section, chacune contenant
plusieurs variables
:
BEGIN "Section1" Variable1 = "valeur1" Variable2 = "valeur2" [...] END BEGIN "Section2" Variable1 = "valeur1" Variable3 = "valeur3" [...] END [...]
Tous les noms de section, noms de variable, et valeurs ne sont pas sensibles à la case. Il peut y avoir des sections et sous-sections vides. Les commentaires doivent être placés après un #. Certaines variables ont une valeur par défaut; ce qui signifie que vous pouvez ne pas les déclarer, leur valeur sera alors la valeur par défaut .
Nous allons maintenant détailler toutes les sections
du fichier vls.cfg
:
Cette section contient des paramètres globaux .
LogFile = "name"
Nom du fichier de log de VLS. Si une valeur vide ("") est entrée, aucun log n'est écrit. Le défaut est "vls.log" .
SystemLog = "[disable|enable]"
Log dans le mécanisme de log du système. Actuellement, seul syslogd est supporté: compilez avec ./configure --enable-syslog .
Si VLS est lancé en tant que vlsd, la configuration suivante est requise :
BEGIN "Vls" LogFile = "" SystemLog = "enabled" ScreenLog = "disabled" END
ScreenLog = "[disable|enable]"
Affichage des logs sur la console .
Exemple :
BEGIN "Vls" LogFile = "vls.log" SystemLog = "disable" ScreenLog = "enable" END
Dans cette section, vous pouvez définir des groupes d'utilisateurs et quelles commandes ils sont autorisés à exécuter. Pour chaque groupe, vous devez ajouter une ligne du type :
groupname = "command1|command2|..."
Ceci ajoute le groupe "groupname", dont les utilisateurs peuvent exécuter command1,command2, ... Les commandes disponibles sont: browse, start, suspend, resume, forward, rewind, stop, shutdown, logout .
Exemple :
BEGIN "Groups" monitor = "help|browse|logout" master = "help|browse|start|resume|suspend|forward|rewind|stop|shutdown|logout" END
Cette section contient la liste des utilisateurs autorisés à contrôler VLS via l'interface d'administration. Pour chaque utilisateur, vous devez ajouter une ligne du type :
username = "password:groupname"
Ceci ajoute un utilisateur "username", qui appartient au groupe "groupname", défini dans la section "Groups", et qui peut se logguer avec le mot de passe "password" .
Sous Unix/Linux, le mot de passe doit être encrypté, avec un outil tel que mkpasswd, ou à l'aide de la fonction unix "crypt" .
Sous Windows, le mot de passe doit être en clair .
Exemple pour Unix/Linux :
BEGIN "Users" monitor = "3BcKWoiQn0vi6:monitor" # password is 'monitor' admin = "42BKiCguFAL/c:master" # password is 'Vir4Gv5S' END
Dans cette section, vous pouvez configure l'interface d'administration telnet .
LocalPort = "port"
Définit le port qui sera utilisé pour le serveur telnet. Le port par défaut est "9999" .
Domain = "domain"
Soit "inet4", soit "inet6" (défaut = "inet4"). Si vous voulez utiliser IPv4, mettez "inet4", et pour l'IPv6, mettez "inet6" .
LocalAddress = "IP address"
Définit sur quelle adresse IP le serveur Telnet va écouter les requêtes. L'adresse par défaut est "0.0.0.0" (ou "0::0" avec l'IPv6) .
Exemple :
BEGIN "Telnet" LocalPort = "9999" END
Dans cette section, vous pouvez définir quelles entrées vous désirez utiliser. Pour chaque entrée, ajoutez une ligne du type :
InputName = "Type"
Ceci ajoute une entrée nommée "InputName", de type "Type". Comme expliqué, il existe plusieurs types d'entrées :
"local" pour jouer des fichiers ou des DVDs ,
"video" pour lire depuis une carte d'encodage MPEG ,
"dvb" pour lire depuis une carte DVB ,
"v4l" pour lire depuis un périphérique Video4Linux .
Chaque entrée doit être configurée dans sa propre section (voir la suite) .
Exemple :
BEGIN "Inputs" local1 = "local" pvr = "video" dvb1 = "dvb" tuner = "v4l" END
Pour chaque entrée déclarée dans la section "Inputs", à l'exception des entrées "local", vous devez ajouter une section avec le même nom que l'entrée correspondante. Par exemple, si vous déclarez une entrée "pvr", il doit également y avoir une section "pvr". La syntaxe de ces sections dépend du type de l'entrée correspondante .
Pour configurer une entrée locale, vous n'avez rien à faire, sauf si vous utilisez une stratégie "trickplay" différente :
BEGIN "Local1" ProgramCount = "1" TrickPlay = "normal" END
"Local1" est le nom de l'entrée que vous configurez. "ProgramCount" est le nombre de programmes correspondant à cette entrée". "TrickPLay" est la stratégie trickplay utilisée par l'entrée (le défaut est "normal") .
Pour configurer une entrée vidéo, ajoutez une section dans ce format :
BEGIN "VideoInputName" Device = "device" Type = "type" END
"VideoInputName" est le nom de l'entrée vidéo que vous configurez. "Device" est l'adresse de la carte d'encodage MPEG que vous désirez utiliser (le défaut est "/dev/video"). "Type" est soit "MPEG2-PS", soit "MPEG2-TS", selon la configuration de votre périphérique (le défaut est "MPEG2-PS") .
Exemple pour une carte Hauppauge WinTV-PVR-250 :
BEGIN "pvr" Device = "/dev/video0" Type = "Mpeg2-PS" END
Pour configurer une entrée dvb, ajoutez une section du type suivant :
BEGIN "DvbInputName" DeviceNumber = "devicenumber" SendMethod = "0" END
"DvbInputName" est le nom de l'entrée dvb que
vous configurez. Réglez "SendMethod" à "0" si vous désirez diffuser
le flux DVB complet et à "1" si vous désirez diffuser les flux MPEG
audio et vidéo (le défaut est "0"). "DeviceNumber" est le numéro du
périphérique DVB depuis leequel vous désirez lire (lecture depuis
/dev/ost/dvr<devicenumber>
, le défaut étant
""). Le fichier de configuration de dvb est défini par le périphérique.
Vous pouvez le trouver dans $HOME/.dvbrc
pour
/dev/dvb/adapter0 ou dans $HOME/.dvbrc.X
pour
/dev/dvb/adapterX
.
Exemple :
BEGIN "dvb1" DeviceNumber = "0" TrickPlay = "normal" END
Dans cette section, vous pouvez définir les sorties que vous désirez utiliser. Pour chacune, ajoutez une ligne du type :
ChannelName = "Type"
Ceci ajoute une sortie appelée "ChannelName", de type "Type". Ceci doit être "network" ou "file". Comme les entrées, les sorties doivent être configurées dans leur propre section .
Exemple :
BEGIN "Channels" localhost = "network" client1 = "network" client2 = "network" multicast1 = "network" multicast2 = "network" localfile = "file" END
Pour chaque sortie déclarée dans la section "Channels", vous devez ajouter une section avec le nom correspondant. La syntaxe de cette section dépend du type de la sortie correspondante .
Pour configurer une sortie network, ajoutez une section dans le format suivant :
BEGIN "NetChannelName" Domain = "Domain" Type = "Type" SrcHost = "SourceHost" SrcPort = "SourcePort" DstHost = "DestHost" DstPort = "DestPort" TTL = "ttl" Interface = "Interface" END
"NetChannelName" est le nom de la sortie que vous configurez .
"Domain" est soit "inet4", pour des adresses IPv4, ou "inet6", pour des adresses IPv6 (le défaut est "inet4") .
"Type" est soit, "unicast", "broadcast" ou "multicast" (le défaut est "unicast"), selon ce que vous désirez faire, et votre adresse "DstHost") .
"SourceHost" est l'adresse IP (ou le nom DNS) depuis lequel VLS va envoyer le flux .
"SourcePort" est le port UDP depuis lequel le flux sera envoyé .
"DestHost" est l'adresse IP (ou le nom DNS) vers lequel le flux sera envoyé .
"DestPort" est le port UDP vers lequel le flux sera envoyé (le défaut est "1234") .
"TTL" est une option utile seulement si "Type" est "multicast" (le défaut est "0"). Vous pouvez l'utiliser pour modifier le nombre de routeur que le paquet pourra téléviser .
"Interface" est une option qui ne fonctionne que sous GNU/Linux, pour forcer l'interface réseau de sortie ("eth1", par exemple). Vous devez être root pour utiliser cette option .
"SrcHost" et "SrcPort" sont optionnels (si vous ne les réglez pas, VLS n'attachera pas la socket) .
Pour configurer une sortie file, ajoutez une section dans le format suivant :
BEGIN "FileChannelName" FileName = "file" Append = "append" END
"FileChannelName" est le nom de la sortie file que vous configurez. "file" est le nom du fichier où le flux sera stocké (le défaut est "fileout.ts"). "append" est soit "yes", soit "no", et indique si VLS ajoute le flux à la fin du fichier, ou le réécrire .
Exemple :
BEGIN "localhost" # The client is on the same host as the server DstHost = "localhost" DstPort = "1234" END BEGIN "client1" # unicast towards client1 DstHost = "192.168.1.2" DstPort = "1234" END BEGIN "client2" # unicast towards client2 in IPv6 Domain = "inet6" DstHost = "3ffe:ffff::2:12:42" DstPort = "1234" END BEGIN "multicast1" # multicast streaming Type = "multicast" DstHost = "239.2.12.42" DstPort = "1234" TTL = "2" END BEGIN "multicast2" # multicast streaming in IPv6 Domain = "inet6" Type = "multicast" DstHost = "ff08::1" DstPort = "1234" TTL = "12" END BEGIN "localfile" # file output FileName = "stream.ts" Append = "no" END
Si vous utililsez Windows, vous devez spécifier les valeurs "SrcHost" et "SrcPort". Par exemple :
BEGIN "client1" # The client is on the same host as the server SrcHost = "192.168.1.1" # IP of VLS SrcPort = "1242" # Source port : the value is not important DstHost = "192.168.1.2" # IP of the client DstPort = "1234" END
Comme expliqué précédemment, vous devez définir
les programmes. Chacun est un flux MPEG (un fichier, par exemple).
Pour cela, vous devez ajouter une section "Input" dans votre fichier
vls.cfg
. Chaque section Input doit avoir la syntaxe
suivante
:
BEGIN "Input" FilesPath = "path" ProgramCount = "count" END
"path" est le chemin où vos fichiers MPEG sont situés (par défaut, c'est le répertoire courant). "count" est le nombre de programmes ("0" par défaut) .
Pour chaque programme, vous devez ajouter une section avec la syntaxe suivante :
BEGIN "number" Name = "name" Type = "type" FileName = "file" Device = "device" END
"number" est le numéro de programme: le premier est 1, le second 2, ...
"name" est le nom du programme, que vous utiliserez pour lancer le programme (voir la section suivante) .
"type" peut être "Mpeg1-PS", "Mpeg2-PS", "Mpeg2-TS", ou "DVD". Si votre flux est stocké dans un fichier MPEG (*.mpeg, *.mpg, *.vob, and so on...), il es probablement au format Mpeg1-PS ou Mpeg2-PS .
si type n'est pas "dvd", VLS supposera que votre fichier est stocké dans le fichier "file", dans le répertoire "path" (où "path" est le répertoire défini dans la section "Input") .
dans le cas contraire, la variable "Device" sera utilisée à la place de "FileName". Elle représente l'adresse de votre lecteur de DVD ("/dev/hdc" ou "/dev/cdrom", par exemple). Vous pouvez également jouer un DVD copié sur un disque dur: "device" est alors l'endroit où les fichiers .vob sont stockés ("/mnt/data/VIDEO_TS", par exemple) .
VLS peut diffuser des fichiers MPEG suivant deux critères
le fichier doit être MPEG PS (Program Stream) ou MPEG TS (Transport Stream), qui contiennent la vidéo et l'audio multiplexés. VLS ne peut pas treamer des fichiers MPEG ES (Elementary Stream), càd, un fichier avec seulement l'audio ou la vidéo .
Pour savoir si votre fichier MPEG est du MPEGPS, MPEG TS or MPEG ES, lisez le fichier avec VLC et regardez les messages (regardez dans la fenêtre de messages, ou utilisez la ligne de commande vlc -vvv) .
Si vous voyez :
[00000107] main module debug: using demux module "ts_dvbpsi"
alors, le fichier est du MPEG TS .
Si vous voyez :
[00000109] main module debug: using demux module "ps"
alors, le fichier est du MPEG PS .
Si vous voyez :
[00000109] main module debug: using demux module "es"
alors, le fichier est du MPEG ES, VLS ne peut pas le diffuser .
l'en-tête de séquence de la vidéo doit se répéter périodiquement. Ceci est très fréquent avec le MPEG-2, mais rare avec le MPEG-1. Il n'est pas facile de savoir si l'en-tête de séquence se répète. Les fichiers avec une extension .vob sont normalement des fichiers MPEG-2, et les fichiers avec une extension .mpg ou .mpeg sont généralement MPEG-1 .
Vous pouvez téléchargez ce fichier MPEG-PS diffusable pour vos tests :presentation_short.vob .
Pour pouvoir lire des DVDs, vous devez compiler VLS avec le support des DVD, qui utilise libdvdread et libdvdcss. Vous devez avoir l'accès en lecture et en écriture à votre lecteur de DVD .
Exemple complet :
BEGIN "Input" FilesPath = "/home/videolan/streams" ProgramCount = "4" END BEGIN "1" # MPEG2 stream stored in /home/videolan/streams/Dolby.vob Name = "dolby" FileName = "Dolby.vob" Type = "Mpeg2-PS" END BEGIN "2" # another file Name = "canyon" FileName = "Dolby_Canyon.vob" Type = "Mpeg2-PS" END BEGIN "3" # DVD Name = "dvd" Device = "/dev/cdrom" Type = "Dvd" END BEGIN "4" # DVD stored on a hard disk Name = "matrix" Device = "/mnt/data/matrix/VIDEO_TS" Type = "Dvd" END