VideoLAN Streaming - heurtebise.free.fr

Transcription

VideoLAN Streaming - heurtebise.free.fr
VideoLAN Streaming
CHAPTER 1. DIFFUSIONS, MUXEURS ET CODECS
Introduction
Aperçu
VideoLAN est une solution complète pour la lecture et la diffusion de vidéo par réseau, développée par des
étudiants de l'Ecole Centrale Paris et des développeurs du monde entier, sous licence GNU General Public
License (GPL). VideoLAN est concu pour diffuser des vidéos MPEG sur des réseaux haut débit.
La solution de diffusion VideoLAN comprend :
•
•
VLS (VideoLAN Server), qui peut diffuser des fichiers MPEG-1, MPEG-2 et MPEG-4, des DVDs,
des chaines numériques satellite, des chaines de télévision numérique terrestre et des flux vidéos
réseau en unicast ou multicast.
VLC (à l'origine dénommé VideoLAN Client), qui peut être utilisé comme un serveur pour diffuser
des fichiers MPEG-1, MPEG-é et MPEG-4, des DVDs et des flux vidéo réseau en unicast ou
multicast ; ou comme un client pour recevoir, décoder et afficher des flux MPEG sous de nombreux
systèmes d'exploitation.
Voici une illustration de la solution de diffusion VideoLAN :
Logiciels VideoLAN
VLC media player
VLC tourne sur de nombreux systèmes d'exploitation : Linux, Windows, Mac OS X, BeOS, *BSD, Solaris,
Familiar Linux, Yopy/Linupy et QNX. Il peut lire :
•
•
•
•
des fichiers MPEG-1, MPEG-2 et MPEG-4 / DivX depuis un disque dur, un lecteur de CD-ROM, ...
des DVDs et VCDs
depuis des cartes d'acquisition satellite (DVB-S)
des flux MPEG-1, MPEG-2 et MPEG-4 reçu par le réseau et diffusés par des VLC ou le stream
output de VLC
VLC peut aussi être utilisé en temps que serveur pour diffuser :
•
•
•
des fichiers MPEG-1, MPEG-2 et MPEG-4 / DivX
des DVDs
depuis une carte d'encodage MPEG
vers :
•
•
une machine (c'est a dire une adresse IP) : ceci est appelé unicast
un groupe dynamique de machines que les clients peuvent joindre ou quitter (par exemple une
adresse IP multicast) : ceci est appelé multicast
en IPv4 ou IPv6
Note
VLC ne fonctionne pas sous Mac OS 9.
Muxers et codecs
Qu'est-ce qu'un codec ?
Pour bien comprendre la solution VideoLAN, vous devez comprendre la différence entre un codec et un
conteneur
Un codec est un algorithme de compression utilisé pour réduire la taille d'un flux. Il y a des codecs audio et
des codecs video. MPEG-1, MPEG-2, MPEG-4, Vorbis, DivX, etc. sont des codecs.
Qu'est-ce qu'un conteneur ? (ou muxeur)
Pour commencer, considérez un conteneur comme l'emballage d'un colis. Vous recevez un colis par la poste
et vous pensez "Chouette ! qu'est-ce qu'il y a à l'interieur ?" Vous ne vous souciez pas vraiment de la boite
elle même, vous vous interessez plutot à son contenu. Le problème ? Vous ne pouvez pas voir à l'interieur de
la boite. Que faites vous donc ? Vous prenez une paire de ciseaux et vous l'ouvrez.
Un conteneur se base sur cette idée. Il contient une ou plusieurs flux déjà encodés à l'aide de codecs.
Généralement, il y a un flux vidéo et un flux audio. AVI, Ogg, MOV, ASF, MP4 etc sont des conteneurs.
Les flux contenus peuvent être encodés à l'aide de codecs différents. Dans un monde parfait, vous pourriez
mettre n'importe quel codec dans n'importe quel conteneur. Malheureusement il y a quelques
incompatibilités.
Encoder une vidéo
C'est la première étape lorsque vous créez votre colis.
Vous devez tout d'abbord encoder votre fichier. Ceci veut dire qu'un fichier, que ce soit de l'audio ou de la
vidéo, est compressé sous un autre format qui prend moins de place que le format précédent. Mes codecs
généralement utilisés pour la vidéo sont DivX, MPEG-1, MPEG-2 et MPEG-4. Pour l'audio, il s'aggit de
MP3 ou Vorbis.
Vous devez ensuite mutilplexer. En gros, il s'aggit de prendre les flux séparés et de les grouper dans un seul
fichier.
Lire une vidéo
Maintenant que vous avez un colis, vous allez devoir l'ouvrir avant de pouvoir accéder à son contenu. C'est
exactement ce que VLC va faire. Pour décoder un flux, VLC va tout d'abbord le démuxer. Il lit donc le
conteneur et sépare l'audio, la vidéo et les sous-titres, s'ils existent. Démuxer des fichiers ne baisse pas la
qualité de la vidéo ou de l'audio. Ca ne change pas du tout ces flux de données. Ca ne fait que les
sauvegarder dans des fichiersdifférents, chacun contenant un élément du fichier original. Ensuite, chacun de
ces flux sont passés à des décodeurs qui font les calculs mathématiques permettant de décompresser le flux.
Il y a une particulatrité concernant MPEG :
•
•
MPEG est un codec. Il y a plusieurs versions de ce codec appelées MPEG-1, MPEG-2, MPEG-4 ...
MPEG est aussi un conteneur, parfois appelé MPEG System. Il y a plusieurs types de conteneurs
MPEG : ES, PS et TS.
Par exemple, quand vous lisez une vidéo MPEG sur un DVD, les flux MPEG sont en fait composés
de plusieurs flux (appelés flux élémentaires, ES) : il y a un flux pour la vidéo, un pour l'audio, un
autre pour les soustitres et ainsi de suite. Ces différents flux sont mélangés dans un seul Program
Stream (PS). Ainsi, les fichiers .VOB que vous pouvez trouver sur un DVD sont en fait des fichiers
MPEG-PS. Cependant, ce format PS n'est pas adapté à la diffusion de vidéo sur un réseau ou par
satellite. Un autre format, appelé Transport Stream (TS) a donc été conçu pour diffuser du MPEG sur
de tels dispositifs.
CHAPTER 2. DIFFUSION FACILE
Intro
Le plus facile pour commencer à diffuser avec VLC consiste à utiliser l'une des interfaces graphiques
utilisateur : wxwindows pour Windows et GNU/Linux, l'interface skinnable Windows et GNU/Linux ou
l'interface native MacOS X.
Diffuser en utilisant l'Assistant
L'Assistant de Diffusion/Tanscodage vous guide pas par pas pour diffuser votre média sur un réseau ou le
sauvegarder sur votre disque dur. Cet Assistant fournit des menus simples à utiliser, mais les choix d'options
sont restreints.
Note
L'assistant est seulement disponible depuis l'interface wxWindows.
Démarrer l'assistant
Pour démarrer l'Assistant de diffusion/transcodage, ouvrez le menu "Fichier", et sélectionnez Assistant dans
le menu.
Champs à remplir dans l'assistant
Pour commencer, sélectionnez le type de tâche :
•
•
Diffuser vers un réseau : Choisissez cette option si vous
voulez diffuser un média sur un réseau.
Transcoder/Sauvegarder : Choisissez cette option si vous
souhaitez changer le codec d'un fichier audio et/ou vidéo,
son échantillonnage et/ou sa méthode d'encapsulation.
Sélection de l'entrée
Choisissez un flux (tel qu'un
fichier, un flux réseau, un
disque, un périphérique de
capture, ...) avec le bouton
Choisir, ou un élément existant
de votre liste de lecture, en avec
l'option Elément de la liste.
Extraction partielle : Pour lire
uniquement une partie du flux,
cochez "Activer" et choisissez
un début et une fin (en
secondes). Cette option ne doit
être utilisée que dans le cas de
flux que vous pouvez contrôler,
comme des fichiers, des disques, mais pas des flux réseaux ou des périphériques de capture.
Méthodes de diffusion
Si vous avez choisi l'option Diffuser vers un réseau, vous pouvez
maintenant spécifier la méthode de diffusion. Les méthodes de
diffusion sont :
•
•
•
UDP Unicast : Diffuser vers un unique ordinateur. Entrez
l'adresse IP du client (dans la plage 0.0.0.0 223.255.255.255).
UDP Multicast : Diffuser un flux vers plusieurs utilisateurs en
utilisant le multicast. Entrez l'adresse IP du groupe multicast
(dans la plage 224.0.0.0 - 239.255.255.255).
HTTP : Diffuser en utilisant le protocole HTTP. Si vous
laissez le champ Destination vide, VLC va attendre les
connexions sur toutes les interfaces réseaux du serveur sur le
port 8080. Spécifiez une adresse, un port et un chemin pour
les connexions en utilisant la syntaxe suivante
[ip][:port][/path].
Par
ex.,
192.168.0.1:80
/stream va faire écouter VLC sur l'interface portant l'adresse
IP 192.168.0.1, sur le port TCP 80, dans le fichier virtuel
/stream.
Options de transcodage
Si vous avez choisi l'option Transcoder/Sauvegarder, vous pouvez
spécifier les nouveaux codecs audio et vidéo, et l'échantillonnage
vers lesquels vous souhaitez convertir votre entrée.
Méthode d'encapsulation
Choisissez le format de méthode. La diffusion UDP requière une
encapsulation MPEG TS. La diffusion par HTTP peut-être utilisée
avec les encapsulations MPEG PS, MPEG TS, MPEG 1, OGG,
RAW ou ASF. Sauvegarder un fichier peut être fait en utilisant
n'importe quel format d'encapsulation compatible avec les codecs
choisis.
Options de diffusion
Si vous avez choisi de
Diffuser vers un réseau, vous
pouvez maintenant spécifier
plusieurs options.
•
Time To Live (TTL)
Ceci définit le nombre
de routeurs que votre
flux peut traverser
avant d'être supprimé,
pour l'unicast UDP et
les méthodes d'accès
unicast. Si vous ne
savez pas ce que cela
signifie, vous devriez
laisser la valeur par
défaut.
Note
Pour le multicast UDP, la valeur par défaut du TTL est 1, ce qui signifie que votre flux n'ira pas audelà du premier routeur. Vous voudrez certainement augmenter ce nombre si vous souhaitez que
votre flux multicast soit routé.
•
Annonce SAP Pour annoncer votre flux sur le réseau quand vous utilisez une méthode de diffusion
UDP, en utilisant le protocole SAP, entrez le nom du flux dans le champ de texte et cochez la case
correspondante. Ceci N'EST PAS disponible pour la méthode de diffusion HTTP.
destination du fichier d'enregistrement
si vous avez choisi Tanscoder/Sauvegarder vous pouvez a présent spécifier le fichier dans lequel vous
voulez sauvegarder le flux.
Vous pouvez a présent cliquer sur Terminer pour commencer à diffuser/transcoder la source
Diffusion en mode graphique
Introduction
Une deuxième facon de parametrer une instance
de diffusion avec VLC est d'utiliser le menuFlux
de sortie dans la boite de dialogue Ouvrir... de
l'interface wxWindows (Windows / GNU
Linux), skins (Windows / GNU Linux) et
MacOS X. Les options et méthodes les plus
courantes de diffusion sont accessibles dans ce
menu pour diffuser le media ouvert, cochez
"flux de sortie" dans la boite de dialogue "ouvrir
un fichier/disque/flux reseau/périphérique de
capture"et cliquez sur le bouton "paramètres"
la boite dialogue Flux de sortie
MRL Flux de sortie
Dans l'interface wxWindows, un boite de dialogue affiche le
MRL de flux de sortie (Media Ressource Locator). Elle est
mise a jour quand vous modifiez des options dans le menu
Flux de sortie.
Méthodes de diffusion
•
•
•
Jouer en local: affiche la diffusion à l'écran. Cela
permet d'afficher le flux que vous êtes en train de diffuser.
Les effets de transcodage, etc... peuvent être surveillés en
local avec cette fonction.
• Fichier: Sauvegarder la diffusion dans un fichier.
L'option Dumper le flux brut permet d'enregistrer le flux
d'entrée en même temps qu'il est lu par VLC, sans aucun
traitement.
HTTP: Pour utiliser la méthode de diffusion HTTP. Spécifiez l'adresse IP ainsi que le numéro de port
TCP à écouter
MMSH: Cette méthode d'accès permet de diffuser vers Microsoft Windows Media Player. Spécifiez
l'adresse IP ainsi que le numéro de port TCP à écouter.
Note
Cela fonctionnera seulement avec la méthode d'encapsulation ASF
•
UDP: Diffusez en unicast en donnant une adresse dans la gamme 0.0.0.0 - 223.255.255.255 ou en
multicast en donnant une adresse dans la gamme 224.0.0.0 - 239.255.255.255. Il est aussi possible de
diffuser vers des adresses IPv6.
Note
Cela fonctionnera seulement avec la methode d'encapsulation TS
•
RTP: pour utiliser le "Real-Time Transfer Protocol". Comme avec l'UDP, cela fonctionne avec des
adresses unicast et multicast.
Note
Les méthodes UDP, HTTP, MMSH et RTP necessitent de choisir l'option diffuser sur l'interface MacOS X.
Méthode d'encapsulation
choisissez une méthode d'encapsulation qui corresponde aux methodes d'encodage et d'acces de votre
diffusion, parmi MPEG TS, MPEG PS, MPEG 1, OGG, Raw, ASF,AVI, MP4 et MOV.
Options de transcodage
activez le transcodage video en cochant la case "Codec video". choisisses un codec dans la liste. Vous
pouvez egalement spécifier un debit et une echelle.
activez le transcodage audio en cochant la case "Codec audio". choisisses un codec dans la liste. Vous
pouvez egalement spécifier un debit et le nombre de canaux audio a encoder.
Option diverses
Choisissez la methode d'annonce de diffusion. Vous pouvez utiliser SAP (Service Announce Protocol) ou
SLP (Service Location Protocol). Vous devez alors spécifier un nom de chaine. L'interface MacOS X permet
egalement d'exporter le fichier de description (SDP) d'une session RTP en utilisant le serveur HTTP ou
RTSP de VLC, ou bien un fichier. Cela peut être fait en cochant les cases appropriées. La boite SDP URL
permet de spécifier l'URL ou la destination ou le fichier SDP sera disponible.
CHAPTER 3. UTILISATION AVANCÉE DU FLUX DE SORTIE EN LIGNE DE
COMMANDE
Structure du flux de sortie
Flux de sortie est le nom d'une fonctionnalité de VLC qui permet de diffuser sur le réseau, ou d'enregistrer,
n'importe quel flux lu par VLC au lieu de l'afficher. Différents types de traitements peuvent être appliqués
au flux durant ce procédé (transcodage, redimensionnement, filtres, re-multiplexage...) Le flux de sortie peut
inclure plusieurs modules, chacun d'eux possédant différentes fonctionnalités. Vous pouvez enchaîner les
modules afin d'augmanter les possibilités.
Voici la liste des modules actuellement disponibles :
•
•
•
•
•
•
standard permet d'envoyer le flux via un module de sortie : par exemple, UDP, fichier, HTTP... Vous
voudrez probablement utiliser ce module à la fin de vos chaînes.
trascode est utilisé pour transcoder (décoder et ré-encoder le flux en utilisant un codec et/ou un débit
différent) l'audio et la vidéo du flux d'entrée. Si les modules d'entrée ou de sortie ne permettent pas le
contrôle du débit (réseau, périphériques d'acquisition), ceci est fait "à la volée", en temps réel. Ceci
peut nécessiter un charge importante en CPU, en fonction des paramètres choisis. Les autres flux,
tels que fichiers et disques, sont transcodés aussi rapidement que le permet le système.
duplicate vous permet de créer une seconde chaîne, dans laquelle le flux sera traité d'une manière
indépendante.
display vous permet d'afficher le flux d'entrée, tel que VLC le ferait en temps normal. Utilisé de paire
avec le modules duplicate, ceci vous permet de visualiser le flux durant le traitement.
rtp diffuse sur RTP (un port UDP par flux élémentaire). Ce modules supporte aussi le RTSP.
es vous permet de séparer les flux élémentaires (ES) d'un flux d'entrée. Ceci peut être utilisé afin
d'enregistrer les flux audio et vidéo dans des fichiers séparés, par exemple.
Chacun de ces modules peut accepter des options. Voici la syntaxe que vous devez employer :
% vlc input_stream --sout "#module1{option1=parameter1{parameter-option1},option2=
parameter2}:module2{option1=...,option2=...}:..."
Note
Certaines des options des modules sont requises (option1 dans cet exemple), les autres sont optionnelles. Les
paramètres des options (option-du-paramètre1 dans cet exemple) sont toujours optionnelles. Ces paramètres
d'options sont souvent des réglages très avancés. Si vous ne comprenez pas leur description, vous n'en avez
sûrement pas besoin.
Vous pouvez aussi utiliser la syntaxe suivante :
% vlc flux_d'entrée --sout-module1-option1=...
module2-option1=... --sout-module2-option2=... ...
--sout-module1-option2=...
Par exemple, pour transcoder un flux et le diffuser, utilisez :
% vlc flux_d'entrée --sout '#transcode{options}:standard{options}'
--sout-
Description des modules
standard (alias std)
Ce module enregistre le flux dans un fichier ou le diffuse sur le réseau, après l'avoir multiplexé.
Les options disponibles sont :
access=
Ces options permmettent de sélectionner le medium utilisé pour enregistrer ou diffuser le flux. Cette option
est obligatoirement requise. Les choix possibles sont :
•
file : enregistre le flux dans un fichier.
Utilisez l'option append pour ajouter le flux à un fichier existant au lieu de le remplacer.
•
udp : diffuse vers une adresse UPD unicast ou multicast.
Les options sont : caching=<durée en ms> pour définir le temps pendant lequel VLC devrait garder
les données en tampon avant de les envoyer, ttl=<ttl> pour définir le ttl des paquets UDP envoyés,
group=<nombre de paquets> pour envoyer les paquets par rafales plutôt que un par un,
late=<durée en ms> pour éliminer les paquets qui arrivent trop en retard à cette étape de la chaîne,
raw si vous ne voulez pas attendre que le MTU soit rempli avant d'envoyer les paquets.
•
http : diffuse par HTTP.
Elément les options sont : user=<nom d'utilisateur> pour activer l'authentification basique par
HTTP et définir l'utilisateur, ^wd=<mot de passe> pour définir le mot de passe mime=<type mime>
pour définir le type MIME retourné par le serveru.
•
https : diffuse par HTTP, en utilisant une connexion sécurisée SSL
Les options sont les même que pour http, plus : cert=<chemin ver le certificat> pour définir le
certificat à utiliser, key=<chemin vers la clef> pour définir la clef à utiliser ca=<chemin vers le
certificat> pour définir le certificat CA à utiliser dans le SSL, crl=<chemin vers le certificat> pour
définir le certificat de révocation à utiliser dans la connection SSL.
•
mmsh : diffuse en utilisant le protocol Microsoft MMS. Ce protocole est utilisé comme méthode de
transport par la plupart des logiciels Microsoft. Notez que seule une petite partie du protocole MMS
est supportée (MMS encapsulé dans du HTTP).
Les options sont les même que pour le module HTTP.
•
rtp : diffuse par RTP. Notez que c'est un module assez vieux. Il ne permet pas le RTSP et peux
uniquement être utilisé pour diffuser des flux TS. Veuillez regarder le module de sortie rtp pour un
support complet du RTP.
Les options sont les mêmes que pour pour l'udp.
mux=
Cette option vous permet de choisir la méthode d'encapsulation utilisée dans le flux. Cette option est
obligatoire.
Les options disponibles sont :
•
ts : le muxer MPEG2/TS. C'est le muxer standard utilisé pour diffuser du MPEG 2. Ce muxer peut
être utilisé avec n'importe quelle méthode d'accès. Les codecs supportés sont MPEG 1/2/4, MJPEG,
H263, H264, I263, WMV 1/2 et theora pour la vidéo, l'audio MPEG, AAC et a52 pour le flux audio.
Les options sont : pid-video=<pid> pour choisir le PID de la piste vidéo, pid-audio=<pid> pour
choisir le PID de la piste audio, pid-spu=<pid> pour choisir le PID de la piste de sous-titres, pidpmt=<pid> pour choisir le PID de la PMT (Program Map Table), tsid=<id> pour choisir l'ID du
flux TS, shaping=<delai de formation en ms > pour choisir l'intervalle minimum durant lequel le
ébit du flux doit rester constant, pour les flux à débit variable, use-key-frames utiliser les images I
comme limites de délai de formation, pcr=<intervalle PCR en ms> permet de choisir à quel
intervalle le PCR (Program Clock References) doit êtreenvoyé, dts-delay=<delai en ms> permet de
retarder le PTS (Presentation Time Stamps) du DTS (Decoding Time Stamp) du delai indiqué, cryptaudio permet d'activer le chiffrement de la piste audio en utilisant l'algorithme CSA, csa-ck=<clef
sous forme d'un mot de 16 caractères> permet de choisir la clef à utiliser pour le chiffrement CSA.
•
ps : le muxer MPEG2/PS. C'est le muxer standard pour fichiers MPEG 2 (.mpg). Il peut être utilisé
pour les méthodes de sortie file et http. Les codecs supportés sont MPEG 1/2 et MJPEG pour la
vidéo, l'audio MPEG et a52 pour les flux audio.
La seule option disponible est dst-delay=<delai en ms> . Elle permet de contrôler le délai entre le
PTS (Presentation Time Stamps) et le DTS (Decoding Time Stamp).
•
mpeg1 : le muxer MPEG1. Ce muxer devrait être utilisé à la place du ps pour les flux vidéos MPEG
1, pour les méthodes de sortie file ou http. Les codecs supportés sont le MPEG 1 et l'audio MPEG.
Les options sont les même que pour le muxer PS.
•
ogg : le muxer ogg. C'est le muxer du projet Xiph. Il peut être utilisé avec les méthodes de sortie file
et http. Les codecs supportés sont MEPG 1/2/4, MJPEG, WMV 1/2 et Theora pour la vidéo et
vorbix, flac, speex, a52 et l'audio MPEG pour l'audio.
Il n'y a pas d'option pour ce muxer.
•
asf : le muxer ASF de Microsoft. C'est le muxer standard utilisé pour la diffusion par les logiciels
Microsoft. Il est aussi utilisé comme conteneur pour les fichiers WMA audio. Ce muxer peut être
utilisé par les méthodes de sortie file et http. Les codecs supportés sont MPEG 4, MJPEG, WMV 1/2
pour la vidéo, l'audio MPEG et a52 pour les flux audio.
Le options disponibles sont : title=<titre>, autor=<auteur>, copyright=<message de copyright>,
comment=<commentaires>, rating=<rating> allow you to set what will be displayed in the
according field of the stream comments.
•
asfh : c'est une version spécial du muxer ASF, qui peut être utilisée pour la diffusion MMSH.
MMSH est la seule méthode de sortie supportée. Les codecs supportés sont les même que pour ASF.
Les options sont les mêmes que pour ASF.
•
avi : le muxer AVI de Microsoft. C'est un format d'encapsulation très répendu pour les fichiers
MPEG 4. La seule méthode de sortie est file. Les codecs supportés sont MPEG 1/2/4, H263, H264 et
I263 pour la vidéo, l'audio MPEG et a52 pour les flux audio.
Il n'y a pas d'option pour ce muxer.
•
mpjpeg : le muxer MJPEG. Ce format d'encapsulation est largement utilisé dans les caméras de télésurveillance avec un serveur web. Ces flux sont généralement incrustés dans des pages web et
visualisée par les navigateurs Internet standrad, puisqu' ils ne sont autre qu'un succession d'images
JPEG. La seule méthode de sortie supportée est http. Le seul codec est MJPEG. On ne peut pas y
mettre de piste audio.
Aucune option n'est disponible pour ce muxer.
dst=
Cette option permet de donner les informations sur l'emplacement où le flux doit être enregistré ou envoyé.
Here is the meaning of the dst option depending on the parameter used for the access option.
•
•
•
If the file output method is used, dst is the complete path where the file should be saved.
If the udp or rtp output method is used, dst is the unicast or multicast destination address and,
optionally, UDP port, in the form address:port.
If the http, https or mmsh output method is chosen, dst is the address, port and path of the local
network interface on which the server should listen for requests. If no address is given, VLC will
listen on all the network interfaces. These information have to be supplied using the
address:port/path syntax.
sap
Utilisez cette option si vous souhaitez que VLC envoie des annonces SAP (Session Announcement
Protocol). SAP est un protocole de découverte de services, qui utilise une adresse multicast spécifique pour
envoyer une liste des flux disponibles sur un serveur.
Note
Cette option peut être activé dans la méthode de sortie udp .
group=
Cette option permet de renseigner le nom d'un éventuel groupe de flux. Un client sous VLC pourra utiliser
de cham pour classer les flux.
Note
Cette option utilise une extension privée du protocole SAP. VLC sera le seul client capable de lire ce champ.
Cette option peut uniquement être utilisée lorsque l'option sap est activée.
sap-ipv6
Utilisez cette option si vous voulez que les annonces SAP soient envoyées en utilisant le protocole IPv6 au
lieu de IPv4.
Note
Cette option peut uniquement être utilisée lorsque l'option sap est activée.
slp
SLP signifie Service Location Protocol. C'est une alternative au SAP pour annoncer des sessions. Utilisez
cette option si vous souhaitez utiliser le SLP.
name=
Utilisez cette option pour préciser le nom du flux à envoyer dans les annonces SAP et SLP.
Note
Cette option peut uniquement être utilisée lorsque les options sap ou slp sont activées.
display
Ce module est utilisé pour afficher le flux. C'est particulièrement utile dans une chaine duplicate, pour
surveiller le flux en train d'être enregistré ou diffusé.
les options disponibles sont :
novideo
Vous pouvez utiliser cette option pour désactiver la vidéo dans le flux à l'affichage.
noaudio
Vous pouvez utiliser cette option pour désactiver le son dans le flux à l'affichage.
delay=
Vous pouvez utiliser cette option pour introduire un delai dans l'affichage du flux. Le délai est en ms.
rtp
Ce module peut être utilisé pour envoyer un flux en utilisant le protocole RTP (Real Time Protocol) (voir
RFC 3550).
Note
Même s'il est possible d'utiliser le RTSP dans ce module, vous ne pourrez pas faire de la Vidéo à la
Demande. Veuillez vous reporter à la description du module VLC pour cela.
Les différentes options disponibes sont :
dst=
Cette option vous permet de donner l'adresse UDP de destination. Cela peut être l'adresse d'un hote ou d'un
group multicast. Cette option doit être renseignée, à moins que l'option sdp=rtsp:// le soit (voir plus bas).
Dans le dernier cas, le flux sera envoyé à l'hôte faisant la requête RTSP.
port=
Cette option permet de régler le port UDP utilisé pour envoyer le premier flux élémentaire. Ce port doit être
fourni. Les autres flux seront en utilisant les ports impairs juste au dessus.
port-video=
Cette option vous permet de définir le port UDP utilisé pour envoyer le premier flux élémentaire vidéo. Ce
port doit être impair.
port-audio=
Cette option vous permet de définir le port UDP utilisé pour envoyer le premier flux élémentaire audio. Ce
port doit être impair.
sdp=
Cette option vous permet de choisir la manière dont le fichier SDP (Session Description Protocol)
correspondant au flux doit être disponible.
Le options sont :
•
•
file://<chemin vers le fichier>, pour exporter le contenu SDP en tant que fichier local.
http://<interface locale IP:port/chemin>, pour rendre le fichier disponible en utilisant le serveur
HTTP intégré au VLC.
Note
L'argument interface locale IP est facultatif. S'il n'est pas fourni, VLC écoutera sur toutes les
interfaces disponibles.
•
rtsp://<interface locale IP:port/chemin>, pour rendre le fichier SDP disponible en utilisant le
protocole RTSP (voir RFC 2326).
Note
L'argument interface locale IP est facultatif. S'il n'est pas fourni, VLC écoutera sur toutes les
interfaces disponibles.
•
sap, pour exporter le contenu SDP en utilisant le SAP (Session Announcement Protocol, voir RFC
2974).
ttl=
Cette option peut être utilisée pour fixer le TTL (Time to Live) des paquets UDP envoyés.
mux=
Cette option vous permet de définir la méthode d'encapsulation pour envoyer le flux. Voir les options de
mux= du module standard pour une description des méthodes disponibles. Seuls ts et raw (pas
d'encapsulation) sont des valeurs possibles pour les flux RTP. La valeur par défaut est RAW.
name=
Cette option peut être utilisée pour donner un nom qui sera affiché au client affichant le flux.
description=
Cette option peut être utilisée pour donner une description supplémentaire du flux.
url=
Cette option permet de donner l'adresse d'un site web contenant des informations supplémentaires sur le
flux.
email=
Cette option permet de donner une adresse e-mail de contact
es
Le module es peut être utilisé pour séparer les différents flux élémentaires du flux principal, et enregistrer
chacun d'eux dans un fichier différent ou les envoyer vers d'autres destinations.
Les paramètres disponibles sont :
access-video=
Utilisez cette option pour donner le média utilisé pour enregistrer ou envoyer les flux élémentaires vidéo.
Les valeurs possibles sont les même que celles de l'option access du module standard (voir après).
access-audio=
Utiliser cette option pour régler le media choisi pour enregistrer ou envoyer le flux élémentaire audio. Les
valeurs possibles et les options sont les mêmes que celles de l'option access du module standard (voir
précédemment).
access=
Cette option peut être utilisée à la place des 2 options access-video et access-audio, quand elles partagent le
même réglage.
mux-video=
Utiliser cette option pour régler la méthode d'encapsulation choisie pour le flux élémentaire video. Les
valeurs possibles et les options sont les mêmes que celles de l'option mux du module standard (voir
précédemment).
mux-audio=
Utiliser cette option pour régler la méthode d'encapsulation choisie pour le flux élémentaire audio. Les
valeurs possibles et les options sont les mêmes que celles de l'option mux du module standard (voir
précédemment).
mux=
Cette option peut être utilisée à la place des 2 options mux-video et mux-audio, quand elles partagent le
même réglage.
dst-video=
Utiliser cette option pour régler le lieu dans lequel sera sauvé, envoyé ou rendu accessible le flux
élémentaire vidéo. La signification exacte de cette option dépend de la valeur de l'option access-video et est
la même que l'option url du module standard (voir précédemment).
Note
Si vous utilisez la chaine de caractère %d dans le champ d'adresse (url), VLC la remplacera par le numéro de
la piste audio ou vidéo en question. La chaine %c sera remplacée par le nom (FOURCC) du codec de la
piste.
dst-audio=
Utiliser cette option pour régler le lieu dans lequel sera sauvé, envoyé ou rendu accessible le flux
élémentaire audio. La signification exacte de cette option dépend de la valeur de l'option access-audio et est
la même que l'option url du module standard (voir précédemment).
Note
Si vous utilisez la chaine de caractère %d dans le champ d'adresse (url), VLC la remplacera par le numéro de
la piste audio ou vidéo en question. La chaine %c sera remplacée par le nom (FOURCC) du codec de la
piste.
dst=
Cette option peut être utilisée àla place d'àla fois dst-video et dst-audio, quand elles partagent les mêmes
réglages.
transcoder
Vous pouvez utiliser ce module pour transcoder un flux, c'est-à-dire changer ses codecs ou ses débits
d'encodage. Quelques ajustements supplémentaires peuvent être réalisés pendant cette phase, comme
changer la taille, désentrelacer, rééchantillonner, etc.
Note
Selon le débit original du flux et les options choisies, transcoder peut être une tache très intensive pour le
processeur. En conséquence, la diffusion du flux transcodé en temps réel peut mener àdes pertes de frame ou
une mauvaise image dans certains cas, quand il manque des ressources.
Les options disponibles sont :
vcodec=
Cette option permet de choisir le codec des pistes vidéos dans lequel le flux d'entrée doit être transcodé.
vb=
Cette option permet de régler le débit flux video transcodé en kbit/s
venc=
Ceci permet de régler l'encodeur àutiliser pour encoder les vidéos. Les options disponibles sont :
•
ffmpeg : c'est le module d'encodage libavcodec. Il contient un grand nombre de codecs différents
Les options sont : keyint=>nombre de frames< permet de régler le nombre maximal de frames entre
2 frames clé, hurry-up permet à l'encodeur de diminuer la qualité du flux si le processeur ne peut
soutenir le taux d'encodage, interlace permet d'améliorer la qualité de l'encodage d'une vidéo
entrelacée, noise-reduction=<facteur de réduction du bruit> active un algorithme de réduction du
bruit (réduira le débit demandé au coût des détails dans l'image), vt=<tolérance du débit en kbit/s>
permet de régler la tolérance du débit de la vidéo de sortie, bframes=<nombre de frames> règle le
nombre de B frames entre 2 frames clé, qmin=<quantizer> permet de régler l'échelle minimale des
quantizers,
qmax=<quantizer>
permet
de
régler
l'échelle
maximale
des
quantizers,qscale=<quantizer> permet de régler une échelle fixe de quantizers pour des encodages
VBR, i-quant-factor=<facteur de quantization> permet de régler le facteur de quantization des I
frames par rapport aux P frames, hq=<quality> permet de régler le niveau de qualité pour l'encodage
des vecteurs de mouvement (les arguments sont simple, rd ou bits, par défaut simple),
strict=<niveau de conformité> permet de forcer un niveau strict de conformité (les valeurs possibles
sont -1, 0, 1, par défaut 0), strict-rc active un algorithme de contrôle à taux strict, rc-buffersize=<taille du buffer en bits> permet de choisir la taille du buffer utilisé pour le contrôle du taux
(une valeur élevée correspond à un contrôle plus efficace), rc-buffer-aggressivity=<nombre
représentant l'aggressivité> permet de régler l'aggressivité du taux de contrôle du buffer, pre-me
permet d'activer l'estimation pre motion, mpeg4-matrix active l'utilisation de la matrice de
quantification MPEG4 avec les flux MPEG2, améliorant la qualité tout en gardant la compatibilité
avec les décodeurs MPEG2, trellis active la quantization trellis (meilleure qualité, mais traitement
plus lent).
•
theora : l'encodeur theora Xiph.org. Ce module est utilisé pour produire des flux theora. Theora est
un codec vidéo sans brevet et sans royalties.
La seule option disponible est quality=<niveau de qualité>. Cette option permet de créer un flux
VBR, remplaçant le réglage vb, le nieau de qualité doit être un entier entre 1 et 10. Le meilleur étant
le plus élevé.
•
x264. x264 est un encodeur h264 libre et open-source. h264 (ou MPEG4-AVC) est un codec viddéo
relativement récent de haute qualité.
Les options sont : keyint=<nombre deframes> permet de régler le nombre maximal de frames entre
2 frames clé, idrint=<nombre de frames>permet de fixer le nombre maximal de frames entre 2
frames IDR, bframes=<nombre de frames> permet de régler le nombre de B frames entre une frame
I et une frame P, qp=<paramètre des quantizers>permet de fixer une valeur fixe des quantizers
(entre 1 et 51),qp-max=<paramètre des quantizers> permet de donner la valeur maximale des
quantizers, qp-min=<paramètre des quantizers> permet de régler la valeur minimale des quantizers,
cabac active l'algorithme CABAC (Context-Adaptative Binary Arithmetic Coding) (plus lent mais
améliore la qualité), loopfilter active le filtre loop, analyse active le mode analyze,
frameref=<nombre de frames> permet de régler le nombre de frames utilisées comme prédicateurs,
scenecut=<sensibilité> permet de contrôler avec quelle agressivité l'encodeur doit insérer des Iframe externes au changement de scène.
fps=
Cette option permet de régler le framerate d'une vidéo transcodée, en images par seconde, réduire le
framerate d'une vidéo peut aider à diminuer son débit.
deinterlace
Cette option permet d'activer le désentrelacement de vidéos entrelacées avant d'encoder.
croptop=
Cette option permet de découper la partie supérieure de la vidéo pendant le transcodage. L'argument est le
nombre de dont la vidéo doit être coupée.
cropbottom=
Cette option permet de couper la partie basse de la source vidéo. L'argument est la coordonnée Y de la
première ligne coupée.
cropleft=
Cette option permet de couper la partie gauche de la source vidéo. L'argument est le nombre de colonnes
dont la vidéo doit être coupée.
cropright=
Cette option permet de couper la partie droite de la source vidéo. L'argument est la coordonnée X de la
première colonne coupée.
scale=
Cette option permet de donner le ratio dans lequel doit être redimensionnée la vidéo pendant le transcodage.
Cette option peut être particulièrement utile pour aider à réduire le débit d'un flux.
width=
Cette option permet de donner la largeur de la vidéo transcodée en pixels.
height
Cette option permet de donner la hauteur de la vidéo transcodée en pixels.
acodec=
Cette option permet de spécifier le codec dans lequel la piste audio doit être transcodée.
ab=
Cette option permet de fixer le débit du flux audio transcodé en kbit/s.
aenc=
Ceci permet de choisir l'encodeur à utiliser pour encoder le flux audio. Les options disponibles sont :
•
•
ffmpeg : c'est le module d'encodage libavcodec. Il contient un grand nombre de codecs différents (la
liste peut être trouvée sur la page des fonctionnalités de diffusion.
vorbis. Ce module utilise l'encodeur vorbis du projet Xiph.org. Vorbis est un codec audio libre, open,
sans-licence.
Les options sont : qualité=<niveau de qualité> permet d'utiliser VBR (débit variable) pour encoder
à la place de CBR (débit constant) par défaut, et de fixer le niveau de qualité (entre 1 et 10, le plus
haut est le meilleur), max-bitrate=<débit en kbit/s> permet de fixer le débit maximum, pour un
encodage vbr, min-bitrate=<débit en kbit/s> permet de fixer le débit minimum, pour un encodage
vbr, cbr permet de forcer un encodage cbr.
•
speex. Ce module utilise l'encodeur speex du projet Xiph.org. Speex est un codec audio, performant
pour de très faibles débits (autour de 10kbit/s) et particulièrement pour la vidéo conférence.
samplerate=
Cette option permet de fixer le taux d'échantillonnage du flux audio transcodé en Hz. Diminuer le taux
d'échantillonnage est une manière de réduire le débit du flux audio.
channels=
Cette option permet de fixer le nombre de canaux du flux audio résultant. Cette option est utile pour les
codecs qui ne supportent pas plus de 2 canaux, ou pour réduire le débit d'un flux audio.
scodec=
Cette option permet de définir le format dans lequel les pistes de sous-titres du flux d'entrée devraient être
converties.
La liste des codecs disponibles peut être trouvée sur la page des options de diffusion.
senc=
Cela permet de choisir l'encodeur à utiliser pour encoder les sous-titres.
Le seul encodeur de sous-titres disponible à l'heure actuelle est dvbsub.
soverlay
Cette option permet d'incruster les sous-titres directement sur la vidéo pendant le transcodage. Ne pas
confondre cette option avec senc/scodec qui transcode les sous-titres et en fait un flux.
sfilter=
Cette option permet d'afficher des images générées par un subpicture filter (ie un logo, une phrase, ...) au
dessus de la vidéo.
La liste des subpicture filters disponibles peut être trouvée sur la page des options de diffusion. Les options
de ces modules peuvent être trouvées en utilisant la ligne de commande suivante :
% vlc -p --advanced <nom_du_module>
threads=
Cette option permet de fixer le nombre de threads qui doivent être utilisés pour encoder les flux. Augmenter
ce nombre jusqu'au nombre de processeurs sur l'ordinateur , (ou au double sur les processeurs Intel P4 HT)
devrait améliorer les performances de transcodage.
audio-sync
Quand cette option est activée, VLC abandonnera/dupliquera certaines frames vidéo pour synchroniser la
piste vidéo avec la piste audio.
duplicate
Ce module peut être utilisé pour dupliquer le flux, et ainsi procéder à travers différentes chaines.
Les options disponibles sont :
dst=
Cette option permet de fixer la chaine à travers laquelle le flux dupliqué doit être traité.
Note
Plusieurs options dst= doivent être utilisées dans le bloc duplicate pour vraiment dupliquer le flux.
N'importe lequel des modules de sortie décrits précédemment peut être utilisé comme paramètre de cette
option.
select=
Cette option peut être utilisée pour dupliquer seulement unflux élémentaire d'un flux complet.
Plusieurs critères peuvent être donnés en les séparant par une virgule.
Pour les critères qui nécessitent un paramètre, tel que es et program, vous pouvez aussi spécifier une bande,
en utilisant la syntaxe critère=num_début-num_fin.
Les paramètres disponibles sont :
•
•
•
•
•
•
•
•
•
•
program= : duplique seulement les flux élémentaires appartenant au programme sélectionné (ou
SID). Cette option fonctionne seulement avec les flux MPEG2/TS.
program= : ne duplique pas les flux élémentaires appartenant au programme sélectionné (ou SID).
Cette option fonctionne seulement avec les flux MPEG2/TS.
program= : duplique seulement les flux élémentaires avec l'id sélectionnée.
program= : ne duplique pas les flux élémentaires avec l'id sélectionnée.
program= : duplique seulement la vidéo des flux élémentaires.
program= : ne duplique pas la vidéo des flux élémentaires.
program= : duplique seulement l'audio des flux élémentaires.
noaudio : ne pas dupliquer les flux élémentaires audio.
spu : dupliquer uniquement les flux élémentaires de sous titres.
nospu : ne pas dupliquer les flux élémentaires de sous titres.
Exemple :
#duplicate{dst=std{...},select="program=100-200,novideo"}
Cette chaine de type duplicate ne renvera que les flux élémetaires non vidéo appartenant aux programmes
dont le PID est compris entre 100 et 200.
Divers
Voici quelques options globales supplémentaires :
--sout-all, --no-sout-all
Activer la diffusion de tous les ES (désactivé par défaut). Par défaut, VLC ne diffusera qu'un ES audio et un
ES vidéo (les premiers). Si vous activez sout-all, tous les ES (audio, vidéo et sous titres) seront diffusés.
--sout-keep, --no-sout-keep
Garder le sout ouver (désactivé par défaut) : utilise la même instance du sout à travers les divers éléments de
playlist (si possible).
--no-sout-audio
Cette option permet de désactiver l'audio dans les flux émis.
--no-sout-video
Cette option permet de désactiver la vidéo dans les flux émis.
Syntaxe simplifiée
Le module de flux de sortie permet aussi d'utiliser une syntaxe simplifiée qui ne peut utilisée que lorsque
que l'on utilise les options principales du module standard :
% vlc input_stream --sout access/mux:url
où access, mux et url sont utilisés comme les options du module standard.
Exemples
Pour bien comprendre la syntaxe complex du flux de sortie de VLC vous devriez regarder les exemples de la
section suivante.
CHAPTER 4. EXEMPLES D'UTILISATION AVANCÉE DE DIFFUSION AVEC
VLC (TRANSCODAGE, DIFFUSION MULTIPLE, ETC...)
Transcodage
Transcoder le flux d'entrée et l'envoier vers une adresse multicast avec l'annonce SAP associée:
%
vlc
-vvv
input_stream
'#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:
standard{access=udp,mux=ts,dst=239.255.12.42,sap,name="TestStream"}'
--sout
Afficher le flux d'entrée, le transcoder et l'envoyer vers une adresse multicast avec l'annonce SAP associée:
% vlc -vvv input_stream --sout '#duplicate{dst=display,dst=
"transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:
standard{access=udp,mux=ts,dst=239.255.12.42,sap,name="TestStream"}"}'
Transcoder, afficher le flux transcodé et l'envoyer vers une adresse multicast avec l'annonce SAP associée:
%
vlc
-vvv
input_stream
--sout
'#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:
duplicate{dst=display,dst=standard{access=udp,mux=ts,dst=239.255.12.42,sap,name="TestSt
ream"}}'
Diffusion multiple
Envoyer le flux vers une adresses IP multicast et une adresse IP unicast:
% vlc -vvv input_stream --sout '#duplicate{dst=
standard{access=udp,mux=ts,dst=239.255.12.42,sap,name="TestStream"},
dst=standard{access=udp,mux=ts,dst=192.168.1.2}}'
Afficher le flux et l'envoyer vers deux adresses IP unicast:
% vlc -vvv input_stream --sout '#duplicate{dst=display,dst=
standard{access=udp,mux=ts,dst=192.168.1.12},
dst=standard{access=udp,mux=ts,dst=192.168.1.42}}'
Envoyer des parties d'un flux d'entrée multiple:
% vlc -vvv multiple_program_input_stream
--sout
'#duplicate{dst=standard{access=udp,mux=ts,dst=239.255.12.42},select="program=12345",
dst=standard{access=udp,mux=ts,dst=239.255.12.43}, select="video,program=1234-2345"}'
Cette commande envoie le programme du flux d'entrée dont le numéro est 12345 vers l'adresses
239.255.12.42 et tous les programmes dont le numeros est compris entre 1234 et 2345 vers l'adresse
239.255.12.43.
Transcodage et diffusion multiple
Transcoder le flux d'entrée, afficher le flux transcodé et l'envoyer vers une adresse IP multicast avec
l'annonce SAP associée et une adresse IP unicast:
% vlc -vvv input_stream --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,
deinterlace}:duplicate{dst=display,dst=standard{access=udp,mux=ts,dst=239.255.12.42,
sap,name="TestStream"},dst=standard{access=udp,mux=ts,dst=192.168.1.2}}'
Afficher le flux d'entrée, le transcoder et l'envoyer vers deux adresses IP unicast:
% vlc -vvv input_stream --sout '#duplicate{dst=display,
dst="transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:
duplicate{dst=standard{access=udp,mux=ts,dst=192.168.1.2},
dst=standard{access=udp,mux=ts,dst=192.168.1.12}"}'
Envoyer le flux d'entrée vers une adresses IP multiicast, et le flux trancodée vers une autre adresse IP
multicast avec les annonces SAP associées:
% vlc -vvv input_stream --sout '#duplicate{dst=
standard{access=udp,mux=ts,dst=239.255.1.2,sap,name="OriginalStream"},
dst="transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:
standard{access=udp,mux=ts,dst=239.255.1.3,sap,name="TranscodedStream"}"}'
Diffusion HTTP
Diffuser en HTTP:
•
•
•
•
Sur le serveur, lancer
%
vlc
-vvv
input_stream
'#standard{access=http,mux=ogg,dst=server.example.org:8080}'
--sout
sur le(s) client(s), lancer:
% vlc http://server.example.org:8080
Transcoder et diffuser en HTTP:
% vlc -vvv input_stream --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:
standard{access=http,mux=ogg,dst=server.example.org:8080}'
Par exemple, si vous voulez diffuser un CD audio en Ogg/Vorbis par HTTP:
% vlc -vvv cdda:/dev/cdrom --sout '#transcode{acodec=vorb,ab=128}:
standard{access=http,mux=ogg,dst=server.example.org:8080}'
Diffusion RTP
Diffuser en RTP
•
•
•
•
Sur le serveur, lancer
%
vlc
-vvv
input_stream
--sout
'#rtp{dst=192.168.0.12,port=1234,sdp=rtsp://server.example.org:8080/test.sdp}'
sur le(s) client(s), lancer:
% vlc rtsp://server.example.org:8080/test.sdp
Note
You can remplace the rtsp URL by a http one, a file path (prefixed with file://) or sap:// to export the sdp file
using one of these methods instead of rtsp.
RTSP
Voir VLM - Diffusions multiples et Vidéo à la demande
diffusion MMS / MMSH vers Windows Media Player
%
vlc
-vvv
input_stream
--sout
'#transcode{vcodec=DIV3,vb=256,scale=1,acodec=mp3,ab=32,channels=2}:std{access=mmsh,mux
=asfh,dst=:8080}'
VLC media player peut s'y connecter en utilisant l'URL suivante mmsh://server_ip_address:8080 .
Windows Media Player peut s'y connecter en utilisant l'URL suivante: mms://server_ip_address:8080 .
Utiliser le module es
Separer l'audio et la video en deux fichiers PS:
% vlc -vvv input_stream --sout
'#es{access=file,mux=ps,url_audio=audio-%c.%m,url_video=video-%c.%m}'
Extraire la piste audio du flux d'entrée en un fichier TS
% vlc -vvv
%c.%m}'
input_stream
--sout
'#es{access_audio=file,mux_audio=ts,url_audio=audio-
Diffuser en unicast la piste audio sur un port et la piste video sur un autre port:
•
•
•
•
•
du coté serveur:
% vlc -vvv input_stream --sout
'#es{access=rtp,mux=ts,url_audio=192.168.1.2:1212,url_video=192.168.1.2:1213}'
côté client: pour recevoir le son:
% vlc udp:@:1212
pour recevoir la vidéo:
% vlc udp:@:1213
Emettre la vidéo en multicast et enregistrer le son dans un fichier:
%
vlc
-vvv
input_stream
--sout
'#es{access-video=udp,mux-video=ts,dstvideo=239.255.12.42,
access-audio=file,mux-audio=ps,dst-audio=audio-%c.%m}'
Note
Vous pouvez également combiner le module es avec d'autres modules pour créer des solutions encore plus
complexes.
CHAPTER 5. VLM - DIFFUSIONS MULTIPLES ET VIDÉO À LA DEMANDE
VLM
VideoLAN Manager est un petit outil de gestion de médias conçu pour contrôler plusieurs flux avec une
seule instance de VLC. Cela permet de la diffusion multiple et la vidéo à la demande (VoD). Cet outil ayant
été récemment ajouté, il n'est possible de le contrôler que par les interfaces Telnet et HTTP.
Interfaces
Interface Telnet
Vous pouvez démarrer l'interface Telnet comme toute autre interface en utilisant la ligne de commande :
% vlc --intf telnet
% vlc --extraintf telnet
L'interface Telnet peut aussi être démarrée depuis l'interface wxWindows:
Le port par défaut est 4212. Le mot-de-passe par défaut est "admin". Ils peuvent être modifiées en utilisant
les options de la ligne de commande --telnet-port <integer> et --telnet-password <string> respectivement.
Ils peuvent aussi être changés depuis le panneau de configuration des Préférences de l'interface wxWindows,
dans la section Modules->interface-> telnet (cochez la case Options avancées).
Interface HTTP
Le démarrage de l'interface HTTP est détaillé dans le Play-with-VLC Howto.
Pour accéder à la rubrique VLM de l'interface HTTP, utilisez l'URL qui suit: http://hôte:port/vlm.html
(http://host:port/vlm/ pour VLC 0.8.4 et les versions antérieures).
Eléments de VLM
Médias
Un média (media) est constitué par une list d'entrée (les flux audio et vidéo que vous voulez diffuser), une
sortie (où et comment vous voulez les diffusez) et quelques options.
Il y a deux types de médias:
•
•
vod: Un média VoD est normalement utilisé pour la Vidéo à la Demande. Il sera démarré
uniquement si un client VoD demande le média.
broadcast: Un média broadcast est très similaire à un programme ou une chaîne de TV. Il est
démarré, arrêté ou mis en pause par l'administrateur et peut être répété plusieurs fois. Le client n'a
aucun contrôle sur un média de ce type.
Programmes
Un programme (schedule en anglais) est un script avec une date. Quand la date du programme est atteinte, le
script est démarré. Plusieurs options sont disponibles, telles que la période ou le nombre de répétitions.
Syntaxe de la ligne de commande
Lignes de commande
•
•
•
•
•
•
•
•
help : Affiche la liste exhaustive des commandes
new (nom) vod|broadcast|schedule [propriétés] : Crée un nouvel élément de type vod, broadcast
ou schedule. Les noms des éléments doivent être uniques. Les noms "media" et "schedule" sont
interdits. Vous pouvez spécifier des propriétés dans cette ligne de commande, ou, plus tard, avec la
commande setup.
setup (nom) (propriété) : Définit une propriété d'un élément (cf. Propriétés des médias).
show [(nom)|media|schedule] : Affiche le statut et la configuration de l'élément.
o show (nom) - Affiche toutes les informations concernant l'élément spécifié.
o show media affiche un résumé des statuts des médias.
o show schedule affiche un résumé de l'état des programmes.
del (name)|all|media|schedule : Supprime un élément ou un groupe d'éléments. Si l'élément n'était
pas à l'arrêt, il est interrompu avant d'être supprimé.
o del (nom) - Supprime l'élément (nom)
o del all - Supprime tous les éléments
o del media - Supprime tous les éléments de type média.
o del schedule - Supprime tous les éléments de type programme
control (nom) [nom_instance] (command) : Modifie l'état de l'instance (nom_instance) du média
(nom). Si (nom_instance) n'est pas précisé, la commande de contrôle affecte l'instance par défaut (cf
Commandes de contrôle pour les commandes de contrôle disponibles).
save (fichier_config) : Sauvegarde les configurations de tous les médias et programmes dans le
fichier de configuration spécifié. Le chemin d'accès du fichier est relatif au répertoire dans lequel
VLC a été démarré. Si le fichier existe, il sera écrasé. Notez que les états, tels que en lecture, en
pause ou à l'arrêt, ne sont pas sauvegardés. Voir Fichiers de configuration pour plus d'informations.
load (fichier_config) : Charge une fichier de configuration. Le chemin d'accès au fichier est relatif
au répertoire depuis lequel VLC a été démarré. Voir Fichiers de configuration pour plus
d'informations.
Propriétés des médias
Note
A l'exception de la propriété "append", toutes les propriétés peuvent suivies par une autre.
•
•
input (nom_entrée) : Ajoute une entrée à la fin de la liste des entrée du média.
output (nom_sortie) : Définit la sortie du média. La syntaxe est la mêle que celle de l'option
":sout=..." de VLC, toutefois, vous n'avez pas besoin d'indiquer ":sout=...". Voir Utilisation avancée
du flux de sortie en ligne de commande pour plus d'informations concernant les flux de sortie (sout).
Note
Vous n'avez pas besoin de préciser une sortie pour les éléments vod.
•
•
•
option (option_name)[=value] : Adds the (option_name) to the media option list. The syntax is
equivalent to the ":(option)=..." option , but you do not have to put the ":" string. Options are global:
they are applied to all inputs of the media.
enabled|disabled : Active (enabled) or désactive (disabled) le média. Si un média est désactivé, il ne
peut pas être diffusé, mis en pause, ni démarré par un programme (schedule), ni joué en tant que
VoD.
loop|unloop (broadcast uniquement) : Si un média avec l'option "loop" option reçoit la commande
"play" (lecture), il sera automatiquement redémarré, et rejouera sa liste d'entrées depuis le début une
fois que la fin de la liste d'entrées est atteinte.
Note
loop|unloop est uniquement utilisée pour les médias de type broadcast.
•
mux (nom_mux) : Cette option ne devrait être employée que si vous voulez envoyer les flux
élémentaires avec une encapsulation, au lieu de les envoyer sous forme brute. (nom_mux) devrait
être spécifié sous forme d'un identifiant de 4 caractères tel que mp2t pour MPEG TS ou mp2p pour
MPEG PS (cf Diffusions, muxeurs et codecs).
Note
La propriété mux est uniquement utilisée pour les médias de type vod.
Propriétés des programmes
•
•
enabled|disabled : Un programme désactivé ne sera jamais démarré.
append (command_until_rest_of_the_line) : Add a command to the command line lit. The
command line can be every command VLM can understand.
Note
The rest of the line will be considered as part of the command line. You cannot put another option
after the append one.
•
•
•
date (année)/(moi)/(jour)-(heure):(minute):(seconde)|now : Spécifie la première date à laquelle le
programme devrait être démarré. Vous pouvez spécifier une date en utilisant le format
(année)/(moi)/(jour)-(heure):(minute):(seconde) (par exemple: 2004/11/16-00:43:12) ou en
utilsant le mot-clef now. Si now est indiqué, le programme sera démarré dès que possible (c-à-d. dès
qu'il est activé avec enabled) et la date courante sera utilisée comme première date du programme.
period (année_soit_12_mois)/(mois_soit_30_jours)/(jours)-(heures):(minutes):(sec ondes) :
Définit la période temporelle pendant laquelle un programme doit attendre avant d'être démarré à
nouveau (Les mois sont égaux à 30 jours, les années à 12 mois). Si une période est indiquée sans la
propriété repeat, le programme sera redémarré indéfiniment.
repeat (nombre_de_répétitions) : Spécifie combien de fois une programme doit être redémarré. Par
exemple, si le programme a la propriété repeat 11, il sera démarré 12 fois.
Commandes de contrôle
•
•
•
•
play : Stat a broadcast media. The media begins to launch the first item of the input list, then
launches the next one and so on. (like a play list)
pause : Met le média de type broadcast en pause.
stop : Arrête le média de type broadcast.
seek (pourcentage) : Se déplace dans l'élément en cours de lecture dans la liste des entrées.
Fichiers de configuration
Un fichier de configuration VLM est une liste de lignes de commande : une ligne correspond à une ligne de
commande.
Pour créer un fichier de configuration, il suffit d'éditer un fichier texte et de saisir la liste des commandes
VLM. Méfiez-vous des appels récursifs: si vous incluez une commande load (fichier) dans un fichier de
configuration, vous pouvez aboutir à une inclusion récursive du même fichier, ce qui devrait faire crasher
VLC.
Depuis la version 0.8.2, toute ligne dont le premier caractère hors espace est un dièse # est considérée
comme un commentaire, et donc ignorée.
Exemples
Cette section inclut plusieurs petits fichiers de configuration VLM.
Diffusion multiple
Diffusion simple en broadcast
new channel1 broadcast enabled
setup channel1 input http://host.mydomain/movie.mpeg
setup channel1 output #standard{mux=ts,access=udp,dst=239.255.1.1,sap,name="Channel 1"}
new channel2 broadcast enabled
setup channel2 input udp://@239.255.12.42
setup channel2 output #standard{mux=ts,access=udp,dst=239.255.1.2,sap,name="Channel 2"}
control channel1 play
control channel2 play
Diffusion planifiée en broadcast
new my_media broadcast enabled
setup my_media input my_video.mpeg input my_other_movie.mpeg
setup my_media output #standard{mux=ts,access=udp,dst=239.255.1.1,sap,name="My Media"}
new my_sched schedule enabled
setup my_sched date 2012/12/12-12:12:12
setup my_sched append control my_media play
Video à la demande
Exemple simple
D'abord, démarrer VLC
% vlc --ttl
0.0.0.0:5554
12
-vvv
--color
-I
telnet
--telnet-password
videolan
--rtsp-host
où :
•
•
•
•
•
12 est la valeur du TTL (Time To Live) de vos paquets IP (ce qui signifie que le flux peut traverser
11 routeurs maximum).
telnet démarre l'interface Telnet de VLC.
videolan est le mot-de-passe pour se connecter à l'interface Telnet.
0.0.0.0 est l'adresse de l'hôte.
5554 est le port sur lequel vous diffusez.
Ensuite, vous vous connecter à l'interface Telnet de VLC et créer l'objet vod
new Test vod enabled
setup Test input ma_video.mpg
Vous pouvez accéder au flux avec:
% vlc rtsp://serveur:5554/Test
où :
•
serveur est l'adresse du serveur de diffusion (IP ou DNS)
CHAPTER 6. RECEVOIR ET ENREGISTRER UN FLUX
Recevoir un flux avec VLC
Recevoir un flux unicast
% vlc -vvv udp:
Recevoir un flux multicast
% vlc -vvv udp:@239.255.12.42
où 239.255.12.42 est l'adresse multicast du flux.
Recevoir un flux HTTP/FTP/MMS
Utilisez l'une de ces lignes de commande :
•
•
•
•
•
•
% vlc -vvv http://exemple/flux.xyz
où http://exemple/flux.xyz est l'adresse HTTP du flux ;
% vlc -vvv ftp://exemple/flux.xyz
où ftp://exemple/flux.xyz est l'adresse FTP du flux ;
% vlc -vvv mms://viptvr.yacast.fr/encoderfranceinfo
où mms://viptvr.yacast.fr/encoderfranceinfo est l'adresse MMS du flux.
Recevoir un flux RTP disponible par RTSP
% vlc -vvv rtsp://www.hardradio.com/tonbeme.mov
où rtsp://www.hardradio.com/tonbeme.mov est l'adresse du flux.
Recevoir un flux décrit par un fichier SDP
% vlc -vvv http://serveur.exemple.org/flux.sdp
Enregistrer un flux avec VLC
VLC peut enregistrer le flux sur le disque. Pour cela, utilisez le "Flux de sortie" de VLC : vous pouvez faire
ceci via l'interface graphique, ou en utilisant cet argument de la ligne de commande :
--sout file/muxer:flux.xyz
où :
•
•
muxer est l'un des formats supportés par le module de flux de sortie de VLC, c'est à dire :
o ogg pour le format OGG,
o ps pour le format MPEG2-PS,
o ts pour le format MPEG2-TS.
et flux.xyz est le nom du fichier sous lequel vous désirez enregistrer le flux, avec la bonne
extension.
Recevoir un flux avec une set-top-box
Certaines set-top-boxes munies d'une carte Ethernet peuvent recevoir des flux MPEG2-TS sur UDP et
supportent le multicast.
Les set-top-boxes connues pour fonctionner avec VLC sont :
•
•
•
•
Pace set top boxes. (Pace Micro DSL 4000)
Aminocom set top boxes. (tous les modèles avec mpeg2)
tuxia / gct-allwell (mpeg4 et mpeg2) sigma designs8174 chipset
i3micro mood200 (mpeg4 et mpeg2)
CHAPTER 7. DIFFUSER UN FICHIER
Diffuser un fichier avec VLC
% vlc -vvv video1.xyz --sout udp:192.168.0.42 --ttl 12
où :
•
•
•
est le fichier que vous voulez diffuser,
192.168.0.42 est soit :
o l'adresse IP de la machine vers laquelle vous voulez émettre en unicast;
o ou le nom DNS de la machine vers laquelle vous vous voulez émettre en unicast;
o ou une adresse IP multicast.
12 est la valeur du TTL (Time To Live) de vos paquets IP (ce qui signifie que le flux peut traverser
11 routeurs maximum).
video1.xyz
Si vous voulez diffuser un fichier en continu, ajoutez l'option --loop.
CHAPTER 8. DIFFUSER UN DVD
Note
Sous Unix/linux, vous devez avoir les droits en écriture au périphérique correspondant à votre lecteur DVD.
Pour cela, vous devriez être dans le groupe disk ou cdrom (vérifiez les permissions dans /dev). Si vous n'y
êtes dedans, ajoutez-vous au groupe :
# adduser votre_login disk_ou_cdrom
et redémarrez votre session.
Diffuser un DVD avec VLC
% vlc -vvv --color dvdsimple:/dev/dvd --sout udp:192.168.0.12 --ttl 12 --sout-all
où :
•
•
•
•
est le nom de votre lecteur DVD (mettez D: sous Windows si D est la lettre de votre
lecteur DVD) ou le répertoire où vous avez copié votre DVD , ,
192.168.0.42 est soit :
o l'adresse IP de la machine vers laquelle vous voulez émettre en unicast;
o ou le nom DNS de la machine vers laquelle vous vous voulez émettre en unicast;
o ou une adresse IP multicast.
12 est la valeur du TTL (Time To Live) de vos paquets IP (ce qui signifie que le flux peut traverser
11 routeurs maximum).
sout-all vous permet de diffuser tous les doublages et les sous-titres
/dev/dvd
Si vous voulez diffuser un DVD en continu, ajoutez l'option --loop.
CHAPTER 9. DIFFUSER UNE CHAINE DVB (SATELLITE OU TNT)
Note
Cela est uniquement possible sous GNU/Linux.
Installer les drivers DVB
Si vous voulez pouvoir diffuser depuis une carte DVB (carte satellite ou TNT), vous devez installer les
drivers DVB.
•
•
if you use a Linux 2.6.x kernel, you just need to select the right modules in your kernel
configuration.
Si vous utilisez un noyau linux 2.4.x, vous devez telecharger la dernière version des drivers DVB
depuis la page DVB drivers download du projet LinuxTV.
The following sections assume that you have a working linux-dvb installation, either from stock kernel 2.6
or from kernel 2.4 with DVB patches. If you have any problem with the linux-dvb drivers, please report the
problem to the maintainers of the drivers, not to us. Thanks.
Diffuser avec VLC
Note
VLS is currently deprecated and hasn't been maintained for years. It is strongly advised to use VLC instead,
which now supports the same features as VLS, and many more. The only advantage of VLS is to support the
dvbrc file syntax, and it requires a bit less CPU horsepower. However, we do not support VLS any longer.
Mettez un fichier .dvbrc contenant les chaines DVB (Staellite ou TNT) que vous désirez diffuser dans votre
repertoire personnel (certains sont fournis dans le tarball libdvb pour chaines satellite.
Lancez VLS avec la ligne de commande suivante :
% vls -vv -d udp:192.168.0.42 dvb:"EUROSPORT" --ttl 12
où :
•
•
•
"EUROSPORT" est la chaine que vous voulez diffuser comme ecrit dans votre fichier ~/.dvbrc ,
192.168.0.42 est l'un ou l'autre :
o l'adresse IP de la machine vers laquelle vous voulez émettre en unicast;
o ou le nom DNS de la machine vers laquelle vous vous voulez émettre en unicast;
o ou une adresse IP multicast.
12 est la valeur du TTL (Time To Live) de vos paquets IP (ce qui signifie que le flux peut traverser
11 routeurs maximum).
Diffuser avec VLC
Note
VLC has many more features than VLS. First you can use the advanced stream output options such as
transcoding and all kinds of output supports. Second VLC can take advantage of the Common Interface
supported by some DVB adapters to descramble one or several services. Currently released versions of VLC
only support the low-level API so some adapters won't work (budget-ci cards work, twinhan doesn't). Some
CAM modules aren't compatible with some DVB cards, check the linux-dvb documentation for more
information. So-called "professional" CAM modules are able to descramble up to twelve services, whereas
customer-oriented modules are often limited to one or two services unless otherwise specified.
VLC must be compiled with --enable-dvb and you need the linux-dvb headers installed in your system. An
example command-line is as follows :
%
vlc -vvv --color --ttl 12 --ts-es-id-pid --programs=8508,8505 dvb: \
--dvb-frequency=11739000 --dvb-srate=27500000 --dvb-voltage=13 \
--sout-standard-access=udp --sout-standard-mux=ts --sout \
'#duplicate{dst=std{dst=address1},select="program=8508",dst=std{dst=address2},select="p
rogram=8505"}'
The example above shows the minimum set of options needed to stream out two services. Here is a list of
frontend options, depending on the frontend type:
•
•
common options
o dvb-adapter : specifies the adapter to use in case you have several adapters in your machine
(by default use adapter 0)
o dvb-device : specifies the name of the DVB device to use (should not be needed with a
standard linux-dvb installation)
o dvb-srate : specifies the symbol rate of the modulated signal, in symbols/s
o dvb-inversion : specifies whether the signal is inverted or not (default is automatic detection)
o dvb-budget-mode : enters a special mode where all PIDs are retrieved by the driver; it should
no longer be necessary as VLC should filter wanted PIDs
satellite frontend (QPSK)
o dvb-frequency : specifies the frequency to tune to in kHz; according to the frequency range,
VLC auto-detects the band to use: S (2.5-2.7 GHz), C-lower (3.4-4.2 GHz), C-higher (4.5-4.8
GHz), Ku (10.7-13.25 GHz) or direct BIS frequency (0.95-2.15 GHz); it is mandatory to
supply the dvb-srate option to satellite frontends
o dvb-voltage : specifies the voltage to apply on the IF; most LNBs behave differently when
supplied with 13 V or 18 V; universal LNBs select vertical polarity with 13 V and horizontal
with 18 V; you can also select 0 V if your LNB has another power supply (default is 13 V)
o dvb-tone : specifies whether to send a 22 kHz pulse tone to the LNB; universal LNBs switch
to high-band when this pulse is sent; by default VLC automatically adopts the correct
behaviour if the frequency supplied is in the Ku band (other bands do not need this)
o dvb-fec : specifies the code-rate to use for Forward Error Correction; type in the first number
of the code-rate, for 2/3 use --dvb-rate=2, etc. (default is 9, meaning automatic detection)
o dvb-high-voltage : enables a special mode of the DVB adapter to compensate for the voltage
loss in very long cables (AFAIK it is present in the API, but no DVB adapter actually
implements it)
o dvb-lnb-lof1, dvb-lnb-lof2, dvb-lnb-slof : specifies the frequencies of the first and second
local oscillators, and the frequency at which the 22 kHz pulse should be activated to enable
the second oscillator; by default VLC uses the values for universal LNBs if the frequency
supplied is in the Ku band (other bands do not need this)
•
•
cable frontend (QAM)
o dvb-frequency : specifies the frequency to tune to in Hz; it is mandatory to supply the dvbsrate option to cable frontends
o dvb-modulation : specifies the modulation of the analog signal; valid values are -1 (QPSK), 0
(automatic QAM, default), 16 (QAM16), 32 (QAM32), 64 (QAM64) 128 (QAM128), 256
(QAM256)
terrestrial frontend (OFDM)
o dvb-frequency : specifies the frequency to tune to in Hz; it is mandatory to supply the dvbbandwidth option, all other parameters are optional
o dvb-bandwidth : specifies the bandwidth of the OFDM channel (6, 7 or 8 MHz depending on
the country)
o dvb-hierarchy : specifies if the OFDM channel uses hierarchic information; allowed values
are -1 (no hierarchy), 0 (automatic, default), 1, 2 and 4
o dvb-code-rate-hp, dvb-code-rate-lp : specifies the code-rate to use for higher and lower
hierarchies respectively (default auto, same syntax as dvb-fec)
o dvb-guard : specifies the guard interval; valid values are 0 (automatic, default), 4 (1/4), 8
(1/8), 16 (1/16) and 32 (1/32)
o dvb-transmission : specifies the transmission mode; valid values are 0 (automatic, default), 2
(2K) and 8 (8K)
We also ought to explain the other non-dvb-specific options of the example command-line:
•
•
•
ts-es-id-pid : this option is necessary if you use the #duplicate stream output filter to split the
multiplex in several outputs; there is no need to use #duplicate neither ts-es-id-pid if you have one
program only
programs, program, sout-all : there are several ways of specifying the services to select (and
optionally descramble):
o programs : used to specify one or serveral programs to select; VLC selects all known
elementary streams of these programs; this is the currently recommended way
o program : used to specify one program to select; it differs from using programs with only one
program in that this option only select the first audio stream, and no subtitle stream; it should
be used if you plan to switch programs and audio with a GUI
o sout-all : tells VLC to select all programs; this is discouraged because of the extra CPU load
needed to demultiplex unwanted programs, and because it is not compatible with CAM
descrambling
The other options are standard stream output options and are described in the other chapters of this
documentation.
CHAPTER 10. DIFFUSER DEPUIS UNE CARTE D'ENCODAGE OU
D'AUTRES PÉRIPHÉRIQUES D'ACQUISITION
Cartes d'encodage matériel
Note
Cela est uniquement possible sous GNU/Linux.
VideoLAN supporte deux type d'encodeur MPEG-2 matériel :
•
•
Hauppauge WinTV-PVR-250 and WinTV-PVR-350,
Visiontech Kfir.
Les Hauppauge WinTV-PVR-250/350 fournissent des résultats bien meilleurs que les Visiontech Kfir (en
plus d'être moins chères).
Diffuser à l'aide d'une carte Hauppauge WinTV-PVR-250/350
Installer les pilotes
Vous allez tout d'abord devoir patcher votre noyau (version 2.4) pour supporter l'API v4l2 (Video 4 Linux
version 2). Le patch est disponible sur le site de Video4Linux HQ. Si vous utilisez un noyau 2.6, vous
n'aurez qu'à inclure le support I2C et le module Video For Linux BT848.
Une fois que votre noyau est pret, installez la version CK (actuellement en développement) des drivers
Linux pour les Hauppauge WinTV-PVR-250/350. Ils sont hébergés sur ivtv ck. Vous aurrez besoin de
patcher votre noyau pour l'utiliser avec un 2.4. Vous pouvez aussi utiliser la version CVS disponible ici :
ivtv.sourceforge.net (cette version n'est plus développée). Vous devez céer le péripérique et charger les
modules. Ceci est détailé dans la documentation fournie avec les drivers.
Diffuser avec VLC
Note
Vous devez ajouter --enable-pvr à votre ./configure pour utiliser cette fonctionnalité.
% vlc -vvv --color pvr:/dev/video0:norm=secam:size=720x576:frequency=576250:
bitrate=3000000:maxbitrate=4000000 --cr-average 1000 --sout udp:192.168.0.42 --ttl 12
où :
•
•
•
•
•
•
•
•
/dev/video0 est le périphérique correspondant a la carte d'encodage,
norm=secam est le nom du standard utilisé par le signal analogique (les valeurs possibles sont pal,
secam et ntsc),
size=720x576 est la taille de la vidéo que vous voulez diffuser,
frequency=567250 est la fréquence en kHz de la chaine que vous voulez diffuser,
bitrate=3000000 est le débit moyen du flux,
maxbitrate=4000000 est le débit maximum du flux,
1000 est une valeur secrète pour contourner un bug de la carte.
192.168.0.42 est soit :
o l'adresse IP de la machine vers laquelle vous souhaitez diffuser en unicast;
o soit le nom DNS de la machine vers laquelle vous souhaitez diffuser en unicast;
o ou une adresse IP multicast.
•
12 est la valeur du TTL (Time To Live) de vos paquets IP (ce qui signifie que le flux peut traverser
11 routeurs maximum).
Diffuser avec la carte Visiontech Kfir
Installer les pilotes
Si vous voulez être capable de diffuser depuis une carte Visiontech Kfir, vous devez installer ses pilotes
Linux. Téléchargez la dernière version de ces pilotes sur la page drivers download page du site web
LinuxTV .
Decompressez le tarball et suivez les instructions ecrites dans le fichier INSTALL pour compiler et installer
les drivers.
Note
Si vous avez un chipset VIA, vous devez désactiver l'USB dans votre BIOS.
Diffuser
% vlc -vvv --color kfir:/dev/video --sout udp:192.168.0.42 --ttl 12
où :
•
•
•
est le nom du péripérique correspondanta la carte Kfir
192.168.0.42 est soit :
o l'adresse IP de la machine vers laquelle vous souhaitez diffuser en unicast;
o soit le nom DNS de la machine vers laquelle vous souhaitez diffuser en unicast;
o ou une adresse IP multicast.
12 est la valeur du TTL (Time To Live) de vos paquets IP (ce qui signifie que le flux peut traverser
11 routeurs maximum).
/dev/video
Cartes et encodage logiciel
Sous GNU/Linux
Installer les drivers Vidéo pour Linux
Si vous voulez diffuser depuis une carte d'acquisition ou une webcam, un driver video4linux est nécessaire.
Vous pouvez trouver plus d'explication sur video4linux et les périphériques supportés ici.
Compilez le bon module pour votre péripérique et chargez le dans votre kernel. Certains modules
video4linux sont disponibles dans les kernels 2.4.x et 2.6.x, le patch est disponible sur le site web du
Video4Linux HQ.
Vous pouvez tester votre péripérique en utilisant un des programmes listé à la section Video: TV and
PVR/DVR de cette page web.
Les modules v4l2 fonctionneront aussi avec VLC.
Diffuser avec VLC
Note
Vous devez ajouter --enable-v4l a votre ./configure pour utiliser cette fonctionnalité.
%
vlc
-vvv
--color
v4l:/dev/video:norm=secam:frequency=543250:size=640x480:channel=0:adev=/dev/dsp:audio=0
--sout '#transcode{vcodec=mp4v,acodec=mpga,vb=3000,ab=256,venc=ffmpeg{keyint=80,hurryup,vt=800000},deinterlace}:std{access=udp,mux=ts,dst=239.255.12.13}' --ttl 12
Note
You can find all transcode options on this page : Utilisation avancée du flux de sortie en ligne de commande
.
où :
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
est le péripérique correspondant à votre carte d'acquisition ou a votre webcam,
norm=secam est le nom du standard utilisé par le signal analogique (les valeurs possibles sont pal,
secam et ntsc),
frequency=543250 est la fréquence de la chaine en kHz (Attention ! pour vlc < 0.6.1, Frequency est
la fréquence de la chaine en MHz multipliée par 16),
size=640x480 est la taille de la vidéo que vous souhaitez (vous pouvez aussi mettre une taille
standard : subqcif (128x96), qsif (160x120), qcif (176x144), sif (320x240), cif (352x288) ou vga
(640x480)),
channel=0 est le numéro du cannal (généralement 0 est pour le tunner, 1 pour l'entrée composite et 2
pour l'entée svideo),
adev=/dev/dsp est le péripérique audio,
audio=1 est le nombre de cannaux audio (généralement 0 est pour mono et 1 pour stéréo),
vcodec=mp4v correspond au format video que vous souhaitez utiliser (mp4v correspond à MPEG-4,
mpgv correspond à MPEG-1, et il y a aussi h263, DIV1, DIV2, DIV3, I420, I422, I444, RV24, YUY2),
acodec=mpga correspond au format audio que vous souhaitez utiliser (mpga correspond au MPEG
audio layer 2, a52 corresponf à A52 i.e. son AC3),
vb=3000 est le débit de la vidéo en Kbit/s
ab=256 est la débit de l'audio en Kbit/s
venc=ffmpeg vous permet de choisir l'encodeur a utiliser avec :
o keyint=80 correspond au nombre maximum d'images entre 2 images clefs
o hurry-up permet a l'encodeur de réduire la qualité du flux si le processeur ne parvient pas a
tenir le rythme lors de l'encodage
o vt=800000 est la tolérance en Kbit/s pour le débit de la vidéo en sortie
deinterlace dit a VLC de désentrelacer à la volée,
192.168.0.42 est soit :
o l'adresse IP de la machine vers laquelle vous voulez émettre en unicast;
o ou le nom DNS de la machine vers laquelle vous vous voulez émettre en unicast;
o ou une adresse IP multicast.
12 est la valeur du TTL (Time To Live) de vos paquets IP (ce qui signifie que le flux peut traverser
11 routeurs maximum).
/dev/video
Diffuser avec Directshow
Note
C'est possible uniquement avec Windows
Installez les pilotes de votre périphérique
Vous devez installer votre périphérique sous Windows avec les pilotes appropriés. Rien d'autre n'est
nécessaire.
Diffuser avec VLC an ligne de commande
% C:\Program Files\VideoLAN\VLC\vlc.exe -vvv -I rc --ttl 12 dshow:// vdev="VGA USB
Camera"
adev="USB
Camera"
size="640x480"
-sout=#std{mux=ts,access=udp,dst=239.255.42.12}
Note
Vous devez préciser le chemin complet vers VLC ou éxecuter la commande depuis le bon répertoire.
•
•
•
•
•
•
•
vvv permet d'activer l'affichage de tous les messages
rc permet d'activer l'interface de controle à distance (console MS/DOS)
12 est la valeur du TTL (Time To Live) de vos paquets IP (ce qui veut dire que le flux pourra
traverser 11 routeurs),
vdev="VGA USB Camera" est le nom du périphérique que DirectShow utilisera (ceci n'est qu'un
exemple),
adev="USB Camera" est le nom du périphérique audio,
size=640x480 est la taille de la vidéo que vous souhaitez (vous pouvez aussi mettre une taille
standard : subqcif (128x96), qsif (160x120), qcif (176x144), sif (320x240), cif (352x288) ou vga
(640x480)),
239.255.42.12 est soit :
o des adresses IP des machines vers lequelles vous voulez difuser en unicast
o ou des adresses DNS des machines vers lequelles vous voulez difuser en unicast
o ou une adresse IP multicast.
CHAPTER 11. DIFFUSION SUR IPV6
Diffusion sur IPv6
Ce chapitre couvre les spécificités de la diffusion sur IPv6. Vous devriez quand même lire les chapitres
précédents si vous n'êtes pas à l'aise avec la diffusion en général.
Prérequis
Votre système d'exploitation doit évidemment savoir gérer l'IPv6. C'est le cas, entre autres, de Windows
XP/2003, Linux 2.6, Mac OS X (à partir de la version 10.2). Windows 2000 et Linux 2.4 sont aussi
supportés, mais leur pile IPv6 n'est pas aussi bonne : aussi nous conseillons de les mettre à jour si vous le
pouvez. L'IPv6 doit être correctement configuré et fonctionner sur votre ordinateur ainsi que sur le réseau.
Sous Linux, le module du noyau ipv6 doit être chargé (ou compilé en dur). Sous Windows, le support de
l'IPv6 peut être installé en exécutant "ipv6 install" à partir de la ligne de commandes, ou par l'intermédiaire
du paneau de configuration du réseau.
Note
Sous Windows 2000, vous devez ajouter à la main une route de multicast IPv6 par défaut, grâce à la
commande suivante :
# ipv6 rtu ff::/8 4
où le dernier nombre (4 dans cet exemple) est le numéro de votre vraie interface IPv6. Pour avoir la liste de
vos interfaces IPv6, exécutez la commande ipv6 if.
Warning
Sous Windows XP SP1, vous pouvez rencontrer des problèmes avec un firewall IPv6 caché. Pour résoudre
le problème, allez dans la liste des services Windows et arrêtez le service de pare-feu IPv6. Vous devriez
envisager d'installer le Service Pack 2 qui fournit un pare-feu intégré IPv4/IPv6, configurable à l'aide de
l'interface graphique.
Warning
Si vous utilisez VMWare sous Linux, vous devrez l'arrêter et décharger les modules noyau de VMWare, car
nous avons constaté qu'ils empêchaient la diffusion IPv6 !
Limitations
Quelques fonctionnalités de VLC media player ne supportent toujours pas l'IPv6. En particulier, il n'est pas
possible d'utiliser le RTSP sur IPv6 à cause de la bibliothèque utilisée, Live.com, quine supporte pas l'IPv6
au moment de la rédaction de ce document.
De plus, veuillez noter que, pour le moment, VLC utilise l'IPv4 par défaut dans la plupart des cas, étant
utilisé par la majorité. Ceci pourrait être modifié afin d'être plus transparent dans les prochaines versions.
Diffuser avec VLC
Avec l'assistant de diffusion (interface graphique)
L'assistant
de
diffusion
accepte
les
adresses IPv6 entre crochets, par exemple :
Si vous spécifiez une adresse locale de lien, vous devrez
sûrement spécifier l'interface réseau à utiliser. Sous Unix, ceci peut être fait de cette façon :
[fe80::211:11ff:fe25:e6b4%eth0] pour utiliser eth0. De même, sous Windows, vous pouvez spécifier
[fe80::211:11ff:fe25:e6b4%1] où 1 est le numéro de l'interface réseau, donné par le système
d'exploitation.
[2002:8ac3:802d:1242:211:11ff:fe25:e6b4].
Si vous diffusez sur HTTP, notez que l'IPv6 est automatiquement utilisé par défaut (afin que les clients en
IPv6 ou IPv4 puissent se connecter).
Si vous voulez spécifier un nom d'hôte DNS, souvenez-vous que VLC résouds les DNS en IPv4 par défaut.
Vous devez soit préciser un nom d'hôte qui ne se résolve qu'en IPv6, soit activer l'option advanced "Forcer
l'utilisation d'IPv6" dans Préférences / Paramètres généraux / Entrée.
En ligne de commande
L'option de ligne de commande --ipv6 force l'utilisation de l'IPv6 par défaut (ie. l'IPv6 sera toujours tentée
avant l'IPv4).
% vlc -vvv video1.xyz --ipv6 --sout udp:[ff08::1] --ttl 12
où :
•
•
•
est le fichier que vous désirez diffuser (vous pouvez par exemple utiliser
dvdsimple:/dev/dvd pour diffuser un DVD, ou n'importe quelle autre configuration d'entrée),
ff08::1 est soit :
o l'adresse IPv6 de la machine vers laquelle vous désirez diffuser en unicast;
o ou l'adresse IPv6 multicast.
12 est la valeur du TTL (Time To Live) de vos paquets IP (ce qui signifie que le flux peut traverser
11 routeurs maximum).
video1.xyz
Note
Sous Unix/Linux, il est possible que vous deviez "protéger" les crochets autour de l'adresse IPv6 :
% vlc -vvv video1.xyz --ipv6 --sout udp:\[ff08::1\] --ttl 12
Note
Il est possible que vous deviez spécifier l'interface réseau de sortie :
% vlc -vvv video1.xyz --ipv6 --sout udp:[ff08::1%eth0] --ttl 12
où eth0 est le nom de l'interface réseau (sous Linux, elles sont nommées ethX, sous Mac OS X, c'est enX, et
X sous Windows, avec X le numéro approprié).
Recevoir un flux en IPv6
Avec l'interface graphique
Cliquez sur Fichier / Ouvrir un flux réseau. Pour recevoir un flux UDP/RTP unicast envoyé à votre
ordinateur, vous devez sélectionner l'option "Forcer l'utilisation d'IPv6" (et probablement ajuster le port
UDP de destination). Pour recevoir un flux UDP multicast, sélectionnez l'option Multidiff. UDP/RTP, et
précisez l'adresse multicast à laquelle s'inscrire, entre crochets. La syntaxe des adresses IPv6 est expliquée
dans la partie Diffusion sur IPv6 de ce chapitre.
En ligne de commande
Comme pour la diffusion, l'option de ligne de commande --ipv6 force l'utilisation de l'IPv6 par défaut (ie.
l'IPv6 sera toujours tentée avant l'IPv4).
% vlc -vvv --ipv6 udp:@[ff08::1]
Note
Sous Unix/Linux, il est possible que vous deviez "protéger" les crochets autour de l'adresse IPv6 :
% vlc -vvv --ipv6 udp:@\[ff08::1\]
Note
Il est possible que vous deviez spécifier l'interface réseau de sortie :
% vlc -vvv video1.xyz --ipv6 --sout udp:[ff08::1%eth0] --ttl 12
où eth0 est le nom de l'interface réseau (sous Linux, elles sont nommées ethX, sous Mac OS X, c'est enX, et
X sous Windows, avec X le numéro approprié).

Documents pareils

Transmission d`un signal sur un réseau (streaming)

Transmission d`un signal sur un réseau (streaming) réseau, ou d'enregistrer, n'importe quel flux lu par VLC au lieu de l'afficher. Différents types de traitements peuvent être appliqués au flux durant ce procédé (transcodage, redimensionnement, fil...

Plus en détail