Chapter 4.  Utilisation avancée de VLC

Table of Contents

Utilisez la ligne de commande
Utilisation avancée des filtres
L'interface HTTP
Autres interfaces de contôle
Le plugin Mozilla

Utilisez la ligne de commande

Toutes les opérations standard de VLC devraient être disponibles dans l'interface graphique (GUI). Cependant, quelques opérations complexes peuvent être faites seulement à partir de la ligne de commande et il y a des situations dans lesquelles vous n'avez pas besoin d'un GUI ou vous n'en voulez pas. Voilà la description complète de la ligne de la commande de VLC et comment l'utiliser.

Vous devez être tout à fait confortable avec l'utilisation de la ligne de commande pour utiliser ceci.

Note

Les utilisateurs de Windows doivent utiliser la syntaxe --option-name="value" au lieu de --option-name value

Récupérer de l'aide

VLC utilise une structure modulaire. Le noyau contrôle principalement la communication entre les modules. Tout le traitement multimédia est fait par les modules. Il y a des modules d'entrée, des démultiplexeurs, des décodeurs, des modules d'affichage vidéo, ...

Ce chapitre décrira seulement les options générales, c'est à dire les options de noyau. Chaque module ajoute de nouvelles options. Par exemple, le module d'entrée de HTTP ajoutera des options de cache, de proxy, d'authentification...

En utilisant la commande vlc --help,vous obtiendrez les options de base du noyau. vlc --longhelp donnera toutes les options de base (noyau + modules). La commande -- advanced vous donnera les options avançées (pour les utilisateurs avancés). Alors vlc --longhelp --advanced vous donnera toutes les options.

En outre, vous pourriez vouloir obtenir des informations de débugage. Pour ce faire, utilisez -v ou -vv (ceci montrera les messages de moindre sévérité). Si votre console la permet, vous pouvez ajouter --color pour afficher les messages en couleurs.

Lire un flux

les commandes suivantes démarrent VLC et commencent à lire le(s) element(s) sélectionné(s)

Lire un fichier

Démarrez VLC avec :

% vlc mon_fichier

VLC devrait être capable d'identifier le type diu fichier. S'il n'y arrive pas , vous pouvez forcer le démultiplexeur et le décodeur (voir ci-dessous).

Une liste de tous les codecs vidéo et audio que supporte VLC est disponible dans sur la liste des fonctionalités de VLC.

Lire un DVD, un VCD, on un CD audio

Démarrez VLC avec :

Pour un DVD avec menus :

% vlc dvd://[périphérique][@périphérique "brut"][@[titre][:[chapitre][:angle]]]

Dans la plupart des cas vlc dvd:// ou vlc dvd://[périphérique] suffiront. [périphérique] est par exemple /dev/dvd sous GNU/Linux ou D: sur Windows (le chemin complet de votre lecteur de DVDs).

ou (DVD sans menus) :

% vlc dvdsimple://[périphérique][@périphérique "brut"][@[titre][:[chapitre][:angle]]]

ou (VCD):

% vlc vcd://[device][@{E|P|E|T|S}[number]]

ou (Audio CD):

% vlc cdda://[device][@[track]]

Reception d'un flux réseau

Pour recevoir un flux unicast UDP (envoyé par VLS ou par VLC), démarrez VLC avec :

% vlc  udp:[@:server_port]

Si vous utilisez le port de défaut (1234), la commande vlc udp: suffira. Pour plus d'information, regardez dans le Streaming Howto

Pour recevoir un flux multicast UDP (envoyé par VLS ou par VLC), démarrez VLC avec :

% vlc udp:@multicast_address[:server_port]

Pour recevoir un flux SSM (source specific multicast), vous pouvez utiliser :

% vlc udp:server_address@multicast_address[:server_port]

Cela ne marche seulement que sur un OS qui supporte un SSM (Windows XP et les récents noyaux linux)

Pour recevoir un flux HTTP, démarrez VLC avec :

% vlc http://www.example.org/your_file.mpg

Pour recevoir un flux RTSP, démarrez VLC avec:

% vlc rtsp://www.example.org/your_stream

Sélection de modules

VLC essaie toujours de choisir l'interface, les modules d'entrée et sortie les plus appropriés, parmi ceux disponibles dans le système, selon le flux qu'on lui demande de lire. Cependant, vous pouvez forcer l'utilisation d'un module spécifique avec les options suivantes.

  • --intf <module> vous permet de chosir le module d'interface.

  • --extraintf <module> vous permet de choisir les modules d'interface supplémentaires qui seront lancés en plus du module principal. C'est très utile pour les interfaces spéciales de controle, comme le HTTP, le RC (télécommande)...(voir plus loin)

  • --aout <module> Vous permet de choisir le module de sortie audio.

  • --vout <module> Vous permet de choisir le module de sortie vidéo.

  • --memcpy <module> vous permet de choisir un module de copie de mémoire. Vous ne devriez probablement jamais toucher cette option.

Vous pouvez obtenir une liste des modules disponibles en utilisant vlc -l

Flux de sortie / Diffusion

Le système de diffusion de flux permet à vlc de devenir un serveur de diffusion.

Pour plus d'information sur le système de diffusion, veuillez consulter le Streaming Howto.

D'autres options

Options audio

  • --noaudio désactive la sortie audio.

  • --mono Force VLC à traiter diffuser le flux en mono.

  • --volume <integer> règle le volume (entre 0 et 1024)

  • --aout-rate <integer> règle la fréquence audio de sortie (hertz). Par défaut, VLC essayera de la détecter automatiquement.

  • --desync <integer> compense la désynchronisation du son. (Si des flux audio et vidéo ne sont pas synchronisés, utilisez ce réglage pour retarder le flux audio)

  • --audio-filter <string> ajoute des filtres audio à la chaîne de traitement. Les filtres disponibles sont visuels (visualiseur avec l'analyseur et l'oscilloscope de spectre), écouteur (spatialisation virtuelle de l'écouteur) et normalisateurs (normalisateur de volume)

Options vidéo

  • --novideo désactive la sortie vidéo.

  • --greyscale passe la sortie video en niveaux de gris.

  • --fullscreen ( ou -f) met la vidéo en plein écran.

  • --nooverlay désactive l'accélération matérielle pour la sortie vidéo.

  • --width, --height <integer> Règle les dimensions de la fenêtre vidéo. Par défaut, la taille de la fenêtre vidéo sera ajustée aux dimensions de la vidéo.

  • --zoom <float> ajoute un facteur de zoom.

  • --aspect-ratio <mode> force le format d'écran de la source. Les modes sont 4:3, 16:9, ...

  • --spumargin <integer> force la position des sous titres SPU .

  • --filter <string> ajoute des filtres vidéo à la chaîne de traitement. Vous pouvez ajouter plusieurs filtres, séparés par des virgules

  • --sout-transcode-sfilter <string> ajoute le filtre video subpictures (imagettes) à la chaîne de traitement.

Options de la playlist

  • --random lit les fichiers aléatoirement indéfiniment.

  • --loop boucle à la fin de la playlist.

  • --repeat répète l'élément en cours tant qu'un autre flux n'est pas forcé

  • --play-and-stop arrête la playlist après chaque flux lu.

Options d'utilistation du réseau

  • --server-port <integer> règle le port utilisé par le serveur.

  • --iface <string> indique l'interface réseau à utiliser.

  • --iface-addr <string> indique l'addresse IP de votre interface réseau.

  • --mtu <integer> indique le MTU de l'interface réseau.

  • --ipv6 force l'IPv6.

  • --ipv4 force l'IPv4.

Les options d'utilisation du processeur

Vous ne devriez probablement pas avoir à toucher à ces options à moins de savoir ce que vous êtes entrain de faire.

  • --nommx désactive l'utilisation des extensions MMX du processeur.

  • --no3dn désactive l'utilisation des extensions 3D NOW du processeur.

  • --nommxext désactive l'utilisation des extensions MMX Ext du processeur.

  • --nosse désactive l'utilisation des extensions SSE du processeur.

  • --noaltivec désactive l'utilisation des extensions Altivec du processeur.

Options diverses

  • --quiet désactive tous les messages sur la console.

  • --color affiche les messages en couleurs.

  • --search-path <string> indique le chemin de recherche par défaut de l'interface.

  • --plugin-path <string> indique le chemin de recherche des plugin.

  • --no-plugins-cache désactive la mise en cache des plugins (la mise en cache des plugins accélère le démarrage)

  • --dvd <string> indique le dispositif de DVD par défault.

  • --vcd <string> indique le dispositif VCD par défault.

  • --program <;integer> indique le programme (SID) (pour les flux comportant plusieurs programmes, comme ceux des satellites).

  • --audio-type <integer> indique le type audio utilisé par défaut avec des dvds.

  • --audio-channel <integer> indique le canal audio à utiliser par défaut avec des dvds.

  • --spu-channel <integer> indique le canal de sous titres à utiliser par défaut avec des dvds.

  • --version donne la version actuelle de VLC.

  • --module <module> affiche l'aide sur sur le module spécifié. (Raccourcis : -p)

Les options spécifiques des éléments

Il y a plusieurs options liées aux éléments (comme --novideo, --codec, --fullscreen).

Pour ces derniers, vous avez la possibilité d'en faire des règlages spécifiques à l'élément, en utilisant ":" au lieu de "--" et en mettant l'option juste après l'élément concerné

Exemples :

  • % vlc file1.mpg :fullscreen file2.mpg
    

    lira file1.mpg en mode plein écran et file2.mpg au mode par défaut (qui n'est généralement le mode plein écran), tandis que

    % vlc --fullscreen file1.mpg file2.mpg
    

    les lira tous les deux en mode plein écran

  • % vlc --fullscreen file1.mpg :sub-file=file1.srt :no-fullscreen file2.mpg :filter=distort
    

    lira file1.mpg en mode fenêtre (pas plein écran) avec le fichier sous-titres file1.srt et lira file2.mpg avec le filtre de distortion d'image activé en mode plein écran (les options de l'élément spécifique sont prioritaires sur les options générales)

Utilisation avancée des filtres

Les filtres

Ce sont les vieux filtres vidéo de VLC. Ils s'appliquent seulement à l'affichage à écran. Ils ne peuvent donc pas être diffusés.

Filtre de désinterlacement de la vidéo

Nom du module : deinterlace

  • --deinterlace-mode {discard,blend,mean,bob,linear} choisi un mode de desenterlacement.

Filtre d'inversion de la vidéo

Nom du module : invert

Filtres de propriétés d'image

Nom du module : adjust

  • --contrast <float> Contraste de l'image dans l'inteervalle 0-2.

  • --brightness <float> Luminosité de l'image dans l'intervalle 0-2.

  • --hue <integer> Tonalité de l'image dans l'intevalle 0-360

  • --saturation <float> Saturation de l'image dans l'intervalle 0-3.

  • --gamma <float> Gamma de l'image dans l'intervalle 0-10.

Filtre mur vidéo du pare-feu

Nom du module : wall

Ce filtre découpe la sortie en plusieurs fenêtres

  • --wall-cols <integer> Nombre de colonnes.

  • --wall-rows <integer> Nombre de rangées.

  • --wall-active <string> Choisissez les fenêtres que vous voulez afficher. Pour choisir les fenêtres 2 et 4 vous écrivez --wall-active 2,4 . Quand cette option n'est pas indiquée, toutes les fenêtres sont affichées.

Filtre de transformation vidéo

Nom du module : transform

  • --transform-type {90,180,270,hflip,vflip} Choisissez l'angle de rotation ou la symétrie

Filtre de distorsion de la vidéo

Nom du module : distort

Filtre de clonage vidéo

Ce filtre clone la fenetre de sortie vidéo.

Nom du module : clone

  • --clone-count <integer> Nombre de clones.

  • --clone-vout-list <string> Liste de modules de sortie vidéo sépararés par des virgules.

Filtre vidé de rognage

Nom du module : crop

  • --crop-geometry <string> Règle la géométrie de la zone à rogner. Cela se fait avec <largeur> x <hauteur> + <décalage à gauche> + <décalage en haut>.

  • --autocrop Active le rognage automatique des bordures.

Filtre flou de mouvement

Nom du module : motionblur

  • Facteur flou dans la gamme 1-127

Mélange des images vidéo

Nom du module : blend

Filtre de redimensionement de la vidéo

Nom du module : scale

Filtres subpictures (imagettes)

Ces filtres sont les nouveaux filtres de VLC. Ils peuvent être diffusés.

Filtre d'affichage de temps

Nom du module : time

  • --time-format <string> Format du temps. Vous pouvez utiliser les caractères spéciaux suivants %Y = année, %m = mois, %d = jour, %H = heure, %M = minute, %S = seconde.

  • --time-x <integer> X offset en pixels à partir de la gauche.

  • --time-y <integer> Y offset en pixels à partir du haut.

Filtre d'affichage de texte

Nom du module : marq

  • --marq-marquee <string> Texte à afficher.

  • --marq-x <integer> X de décalage en pixels à partir de la gauche.

  • --marq-y <integer> Y de décalage en pixels à partir du haut.

  • --marq-timeout <timeout> Définit, en milisecondes, le temps pendant lequel le texte doit rester affichiché. La valeur par défaut étant 0 (rester pour toujours).

Filtre vidéo d'insertion de logo

Nom du module : logo

Ce filtre peut être utilisé comme un filtre de l'ancien type ou comme un filre subpictures.

  • --logo-file <string> Chemin complet du fichier PNG à utiliser.

  • --logo-x <integer> X de décalage en pixels à partir de la gauche.

  • --logo-y <integer> Y de décalage en pixels à partir du haut.

  • --logo-transparency <integer> Vous pouvez mettre ici la valeur de la transparence du logo (entre 0 pour une transparence complète à 255 pour une opacité complète).

Note

Vous pouvez déplacer le logo en faisant un click gauche sur lui.

L'interface HTTP

VLC est fourni avec un petit serveur HTTP intégré. Il est utilisé pour diffuser le flux en utilisant HTTP, et pour l'interface de commande à distance HTTP.

Pour démarrer VLC avec l'interface HTTP, utilisez :

% vlc -I http [--http-src /directory/ --http-host host:port]

Si vous voulez obtenir en même temps une interface normale et une interface HTTP, utilisez vlc --extraintf http.

L'interface HTTP commencera à écouter sur host:port (<all interfaces>:8080 en cas d'oubli), et reproduira la structure du /répertoire dans http://host:port/ ( vlc_source_path/share/http en cas d'oubli ).

Utilisez un navigateur web pour aller à http://votre_serveur_machine:port. Vous devriez être conduit à la page principale.

VLC est fourni avec un ensemble de dossiers qui devraient être suffisant pour les besoins génériques. Il est également possible d'adapter des pages aux besoins du client. Voir Appendix B, Construire des pages pour l'interface HTTP.

Les pages disponibles sont :

  • /index.html donne accès à la playlist, vous permet d'ajouter ou de supprimer des éléments et de contrôler la lecture.

  • /info.html vous donne les statistiques et les données concernat l'utilistaion du serveur.

  • /admin/. Ce répertoire donne plus de pouvoir et est donc protégé par un login et un mot de passe. Le couple par défaut est admin/admin. Les mots de passe et les utilisateurs peuvent être changés dans le fichier .access dans le répertoire VLC_directory/share/http/admin. (Chaque répertoire peut être protégé, voir Appendix B, Construire des pages pour l'interface HTTP pour plus de détail).

  • /vlm/. Ce répertoire vous permet de contrôler le VideoLAN manager (VLM). Le VLM vous permet de diffuser plusieurs flux d'entrée avec seulement une instance de VLC. Pour plus d'information sur le VLM, veuillez consulter le Streaming Howto.

Autres interfaces de contôle

VLC inclut un certain nombre de prétendues interfaces qui ne sont pas vraiment des interfaces, mais des moyens de commander VLC. Néanmoins, elles sont activées en les plaçant comme interface ou interface supplémentaire, dans Preferences, General/Interface, ou en utilisant -I ou --extraintf sur la ligne de commande.

Raccourcis Clavier

Ce module vous permet de contrôler VLC et de l'exécuter via un raccourcis. Il est toujours activé par défaut. Vous pouvez utiliser des raccourcis dans la fenêtre de sortie vidéo.

Les raccourcis peuvent être 'hackés' par :

% vlc --key-<function> '<code>'

Le code est composé par les touches de modification ((Alt, Shift, Ctrl, Meta, Command) séparées par un tiret (-) et terminées par une touche (a...z, +, =, -, ',', +, <, >, `, /, ;, ', \, [, ], *, Left, Right, Up, Down, Space, Enter, F1...F12, Home, End, Menu, Esc, Page Up, Page Down, Tab, Backspace, Mouse Wheel Up and Mouse Wheel Down). Les commandes principales sont disponibles des raccourcis, comme : le plein écran, lecture-pause, jouer rapidement, jouer lentement, élément suivant, élément précédent, arrêter, quitter, augmenter le volume, etc. (utiliser nl'option --longhelp pour la liste complète des fonctions). Par exemple, pour lier le plein écran à Ctrl-f, exécuter :

% vlc --key-fullscreen 'Ctrl-f'

RC et RTCI

Ces deux interfaces vous permettent de contrôler VLC à partir de la commande de shell (à l'aide probablement d'un raccordement à distance ou d'une douille d'Unix).

Démarrer VLC avec -I rc ou --extraintf rc. Quand vous obtenez le message Remote control interface initialized, `h' for help, appuyez sur h et Entrer pour obtenir de l'aide sur ls commandes disponibles.

Pour être en mesure de se connecter à distance à votre VLC en utilisant une 'socket' TCP (telnet-comme raccordement), utilisez --host your_host:port. Puis, en se connectant (en utilisant telnet ou netcat) au centre serveur sur le port donné, vous obtiendrez l'invite de commande.

Pour utiliser une 'socket' UNIX (commande locale, cela ne marche pas pour Windows) utilisez --rc-unix /path/to/socket. Les commandes peuvent être passées en utilisant cet 'socket' UNIX.

L'interface RTCI vous donne plus d'options avancées, comme le controle d'un filtre subpicture d'insertion de texte (Voir la section filtres - Marquee).

Ncurses

Ceci est une interface de texte, utilisant la librairie ncurses.

Démarrez VLC avec -I ncurses ou --extraintf ncurses. Vous allez obtenir donc quelque chose comme ceci :

L'interface ncurses

Appuyez sur h pour avoir la liste de tous les commandes disponibles, ainsi qu'une courte description

Il y a aussi un navigateur de fichier disponible pour l'interface ncurse pour ajouter des éléments de playlist. Appuyer sur 'B' pour l'utiliser.

Le navigateur de fichiers ncurses

Vous pouvez placer le point de départ du navigateur de fichier en lançant VLC avec --browse-dir option :

% vlc -I ncurses --browse-dir /filebrowser/starting/point/

Gestures

Les mouvements fournissent une commande simple de mouvement de la souris. TODO

Le plugin Mozilla

VLC peut aussi être embarqué dans un navigateur web! Pour l'instant, cette fonctionalité n'est disponible que sur Mozilla ou Firefox.

Installez le plugin

GNU/Linux Debian

Vous devriez déjà avoir ces quelques lignes dans votre fichier /etc/apt/sources.list , si vous ètes sous Debian Woody:

          deb http://download.videolan.org/pub/videolan/debian woody mail
     deb-src http://download.videolan.org/pub/videolan/debian woody main

La dernière version des packages de VLC est toujours disponible pour la version unstable de la Debian. Néanmoins, vous devez toujours utiliser apt-get si vous voulez libdvdcss dans sa dernière version :

          deb http://download.videolan.org/pub/videolan/debian sid main
     deb-src http://download.videolan.org/pub/videolan/debian sid main

Installer le package mozilla-plugin-vlc :

# apt-get update
# apt-get install mozilla-plugin-vlc

Windows

Quittez Mozilla ou Firefox

Copiez les 2 fichiers situés dans Répertoire_d_installation_de_VLC\mozilla (habituellement C:\Progam Files\VideoLAN\VLC\mozilla) vers le répertoire des plugins de Mozilla (habituellement C/\Progam Files\Mozilla\plugins ou C:\Program Files\Mozilla\Firefox\plugins).

Redémarrez Mozilla ou Firefox

Pour compiler vous-même les sources

Allez voir la page des développeurs pour plus d'informations sur la façon de faire ceci.

Utiliser le plugin

Si vous cliquez sur un lien vers une vidéo supportée par le plugin VLC (pour obtenir la liste des formats supportés, allez voir about:plugins) ou une page contenant une vidéo, le plugin devrait ouvrir et lire la vidéo.

Construire des pages HTML utilisant le plugin

En plus d'inclure des vidéos sur vos pages, vous pouvez construire des pages qui utilisent les fonctionalités avancées du plugin, grâce à des fonctions Javascript pour contrôler la lecture ou récupérer des informations du plugin.

Le plugin VLC supporte les fonctions suivantes :

  • play() : Démarre la lecture d'un média avec le plugin.

  • pause() : Met la lecture en pause

  • stop() : Stoppe la lecture

  • fullscreen() : Bascule la vidéo en plein écran

  • set_volume(vol) : Définit le volume. vol doit étre un entier entre 0 et 200.

  • get_volume() : Renvoie le volume actuel.

  • mute() : Coupe le son

  • set_int_variable(var_name, value) :

  • set_bool_variable(var_name, value) :

  • set_str_variable(var_name, value) :

  • get_int_variable(var_name) :

  • get_bool_variable(var_name) :

  • get_str_variable(var_name) :

  • clear_playlist() : Vide la playlist.

  • add_item(mrl>) : Ajoute à la playlist un élément dont l'adresse est donnée par Media Resource Locator.

  • next()

  • previous()

  • isplaying() : renvoie vrai si si le plugin lit quelque chose.

  • get_lenght() : Renvoie la longueur du média en secondes

  • get_position() : Renvoie la position du curseur de lecture en secondes.

  • get_time() : Renvoie la position du curseur de lecture en secondes.

  • seek(seconds,is_relative) : Si is_relative est vrai, déplace le curseur de lecture par rapport à la position actuelle, sinon, à partir du début du média. La longueur du déplacement est spécifiée en secondes.

Ci-après quelques exemples de pages HTML utilisant le plugin Mozilla.

Exemple 1

Dans cet exemple, le plugin va lire un flux HTTP à l'intérieur même de la page. Si l'utilisateur lit en plein écran, il doit taper f pour revenir en vue normale.

<html>
<head><title>Demo of VLC mozilla plugin</title></head>

<body>

<h1>Demo of VLC mozilla plugin - Example 1</h1>

<embed type="application/x-vlc-plugin"
         name="video1"
         autoplay="no" loop="yes" width="400" height="300"
         target="http://server.example.org/video1.vob" />
<br />
  <a href="javascript:;" onclick='document.video1.play()'>Play video1</a>
  <a href="javascript:;" onclick='document.video1.pause()'>Pause video1</a>
  <a href="javascript:;" onclick='document.video1.stop()'>Stop video1</a>
  <a href="javascript:;" onclick='document.video1.fullscreen()'>Fullscreen</a>

</body>
</html>

Exemples :

Dans cet exemple, le plugin va lire un flux UDP multicast dans une fenêtre dédiée.

<html>
<head><title>Demo of VLC mozilla plugin</title></head>

<body>

<h1>Demo of VLC mozilla plugin - Example 2</h1>

<embed type="application/x-vlc-plugin"
         name="video2"
         autoplay="no" loop="no" hidden="yes"
         target="udp:@239.255.12.42" />
<br />
  <a href="javascript:;" onclick='document.video2.play()'>Play video2</a>
  <a href="javascript:;" onclick='document.video2.stop()'>Stop video2</a>
  <a href="javascript:;" onclick='document.video2.fullscreen()'>Fullscreen</a>

</body>
</html>