Chapter 5.  VLM - Diffusions multiples et Vidéo à la demande

Table of Contents

VLM
Exemples

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:

Démarrage de l'interface Telnet - 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.

    • show (nom) - Affiche toutes les informations concernant l'élément spécifié.

    • show media affiche un résumé des statuts des médias.

    • 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é.

    • del (nom) - Supprime l'élément (nom)

    • del all - Supprime tous les éléments

    • del media - Supprime tous les éléments de type média.

    • 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 12 -vvv --color -I telnet --telnet-password videolan --rtsp-host 0.0.0.0:5554

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)