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

Transcription

Transmission d`un signal sur un réseau (streaming)
Transmission d’un signal sur un réseau (streaming)
TP 2 : Diffusion à l’aide de VideoLAN Client (VLC)
IUT d’Arles – LP ATC/CA – 2010-2011
Objectifs : Apprendre à utiliser VLC media player, logiciel de lecture audio-vidéo et de diffusion en temps que serveur.
Savoir utiliser les différents protocoles RTMP, RTP/RTCP, RTSP, MMS, HTTP... Être capable de diffuser du contenu en
unicast ou multicast. Savoir régler la mémoire tampon lors de la lecture de flux avec un lecteur multimédia.
1 Introduction
VideoLAN est une solution complète pour la lecture et la diffusion de vidéo MPEG sur des réseaux à
haut débit.
La solution de diffusion VideoLAN comprend :
• VLS (VideoLAN Server) : 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 (VideoLAN Client) : qui peut être utilisé comme un serveur pour diffuser des fichiers
MPEG-1, MPEG-2 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 :
Le logiciel VLC utilisé pour lire les fichiers audio-vidéo est VLC media player. VLC media player
tourne sur de nombreux systèmes d'exploitation : Linux, Windows, Mac OS X, BeOS, *BSD, Solaris,
Familiar Linux, Yopy/Linupy et QNX.
Transmission d’un signal sur un réseau (streaming) – TP 2
Il peut lire :
• des fichiers MPEG-1, MPEG-2 et MPEG-4 / DivX depuis un disque dur, un lecteur de CDROM...
• 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.
• …
VLC media player peut aussi être utilisé en temps que serveur pour diffuser, en IPv4 ou IPv6 :
• des fichiers MPEG-1, MPEG-2 et MPEG-4 / DivX ;
• des DVDs ;
• depuis une carte d'encodage MPEG.
Vers :
• une machine (c'est à 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.
! Attention !
Ce TP a été écrit en utilisant VLC Media Player v1.1.7 : il se peut donc que les
menus ou commandes soient légèrement différents avec une version ultérieure.
Avec les versions antérieures, la plupart des menus étaient différents et moins
complets : pensez donc à mettre à jour votre version de VLC Media Player.
2 Diffusion avec l’interface de VLC Media Player
2.1 Description des commandes de l’interface de VLC Media Player
Pour diffuser une vidéo, il est possible d’utiliser deux commandes de l’interface graphique, toutes
deux menant aux mêmes réglages. Pour cela, ouvrez le menu « Média », et sélectionnez soit :
- « Ouvrir un fichier… » : permet d’ouvrir un fichier audio et/ou vidéo pour le lire ;
- « Ouvrir un fichier en mode avancé… » : permet d’ouvrir un fichier audio et/ou vidéo pour le lire,
mais avec des options supplémentaires ;
- « Ouvrir un flux réseau… » : permet
d’ouvrir un flux réseau ou web (au
format de streaming) ;
- « Ouvrir un
périphérique de
capture… » : permet d’ouvrir un
périphérique de capture audio et/ou
vidéo, pour l’enregistrement ou la
diffusion ;
- « Convertir
/
Enregistrer… » :
permet de convertir le fichier audio
et/ou vidéo pour en changer le ou les
codecs utilisés ;
- « Diffusion… » : permet de diffuser
le contenu audio et/ou vidéo sur le
réseau ou le web via un protocole
adapté au streaming.
Une fenêtre s’ouvre (cf. ci-contre).
2
Transmission d’un signal sur un réseau (streaming) – TP 2
Vous pouvez avec cette fenêtre choisir le média à lire, convertir ou même diffuser. Une fois choisi,
vous pouvez choisir le mode « Lire », « Convertir » ou « Diffuser » sur le bouton à gauche du bouton
« Annuler » (une petite flèche permet de changer ce mode à la volée ».
2.1.1 Mode « Lire »
Ce mode permet directement d’afficher le contenu de la vidéo dans la fenêtre de VLC Media Player.
2.1.2 Mode « Convertir »
Une nouvelle fenêtre « Convertir » (cf. cicontre) permet à l’utilisateur de définir les
nouveaux codecs de compression audio et/ou
vidéo (manuellement ou à l’aide d’un profil
prédéfini), avant de sauvegarder le contenu
audio et/ou vidéo dans un nouveau fichier dont
la destination est définie dans « Fichier de
destination ». L’utilisateur a la possibilité
d’afficher le flux de sortie pendant la
conversion.
2.1.3 Mode « Diffuser »
Une nouvelle fenêtre « Flux de sortie » s’ouvre, en trois parties, accessibles au travers des onglets
« source », « destinations » et « options ».
L’onglet « source » donne les détails concernant le fichier ou flux audio et/ou vidéo source.
L’onglet « destinations » permet d’une part de sélectionner le nouveau mode de diffusion, en
sélectionnant le protocole adéquat. Il est aussi possible d’afficher localement la vidéo pendant la
diffusion. En plus de la diffusion, il est aussi possible d’activer le transcodage, qui permet de spécifier
les nouveaux codecs audio et vidéo, et l'échantillonnage vers lesquels vous souhaitez convertir votre
entrée
Enfin, l’onglet « options » permet de spécifier si tous les flux élémentaire seront diffuser ou non. De
plus, il est possible de modifier diverses options :
3
Transmission d’un signal sur un réseau (streaming) – TP 2
-
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.
- 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.
Enfin, vous pouvez voir dans la partie « Paramètres généraux du flux de sortie » l’ensemble des
réglages en ligne de commande correspondant à toutes les options sélectionnées. Cette ligne de
commande sera utile lorsque nous réaliserons la diffusion en ligne de commande.
2.2 Exercice
Q1. Utilisez l’interface graphique de VLC Media Player pour diffuser un flux audio-vidéo à partir
d’un des postes, et en le visualisant sur le second poste. Modifiez les méthodes de diffusion et
analysez l’influence sur les performances de diffusion.
3 Diffusion en ligne de commande
3.1 Structure d’une ligne de commande pour la diffusion
Flux de sortie est le nom d'une fonctionnalité de VLC media player 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'augmenter les possibilités.
Voici la liste des modules actuellement disponibles :
- udp, http, rtsp, file… 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.
- transcode 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 une 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 module duplicate, ceci vous permet de visualiser le flux durant le traitement.
3.1.1 Syntaxe général d’une ligne de commande
Chacun de ces modules de sortie peut accepter des options. Voici la syntaxe générale que vous devez
employer sur le fichier ou le flux audio-vidéo, noté input_stream, qui est traité (ex :
« c:/temp/film.avi ») :
% vlc input_stream –-sout=
#module1{option1=parameter1,option2=parameter2}
:module2{option1=parameter3,option2=parameter4}
:...
Vous pouvez aussi utiliser la syntaxe suivante :
4
Transmission d’un signal sur un réseau (streaming) – TP 2
% vlc input_stream
--sout-module1-option1=parameter1
--sout-module1-option2=parameter2
--sout-module2-option1=parameter3
--sout-module2-option2=parameter4 ...
Vous pouvez aussi combiner les deux syntaxes.
3.1.2 Lecture
Vous pouvez afficher le flux d’entrée grâce au module « standard » :
% vlc input_stream –-sout=
#display
Vous pouvez aussi rajouter une annonce SAP (« Name of Stream »)
% vlc input_stream –-sout=
#display{sap, name="Name of Stream"}
3.1.3 Transcodage
Vous pouvez transcoder le flux d’entrée, c’est-à-dire modifier les codecs audio et/vidéo utilisés :
% vlc input_stream –-sout=
#transcode{vcodec=h264, acodec=mp4a, vb=800, ab=128, deinterlace}
Vous pouvez aussi rajouter une annonce SAP (« Name of Stream »)
% vlc input_stream –-sout=
#transcode{vcodec=h264, acodec=mp4a, vb=800, ab=128, deinterlace, sap,
name="Name of Stream"}
Pour bien régler les paramètres des codecs, le mieux est d’analyser les différents réglages donnés par
VLC Media Player grâce à l’interface graphique.
3.1.4 Diffusion d’un flux
Vous pouvez diffuser le flux d’entrée vers une adresse multicast avec l'annonce SAP associée :
% vlc input_stream –sout=
#udp{mux=ts, dst=239.255.12.42, sap, name="TestStream"}
3.1.5 Diffusion multiple
Vous pouvez combiner les différentes opérations suivantes pour :
- diffuser le flux avec le protocole http (port 8080) au format flv
- diffuser le flux avec le protocole rtp (port 5544)
- diffuser le flux vers une adresse IP unicast,
- enregistrer le flux dans un fichier mp4,
- et afficher le flux à l’écran.
% vlc input_stream –-sout=
#duplicate{
dst=http{mux=ffmpeg{mux=flv}, dst=:8080/},
dst=rtp{sdp=rtsp://:5544/},
dst=udp{dst=192.0.1.1:1234},
dst=file{dst=c:\\fichier.mp4},
dst=display}
5
Transmission d’un signal sur un réseau (streaming) – TP 2
3.2 Recevoir un flux avec VLC
Pour recevoir les flux avec VLC, vous pouvez remplacer input_stream en fonction du flux entrant :
- Recevoir un flux unicast
% vlc udp:
-
Recevoir un flux multicast (à l’adresse IP 239.255.12.42 par exemple)
% vlc udp:@239.255.12.42
-
Recevoir un flux HTTP/FTP/MMS
% vlc http://exemple/flux.xyz
% vlc ftp://exemple/flux.xyz
% vlc mms://viptvr.yacast.fr/encoderfranceinfo
-
Recevoir un flux RTP disponible par RTSP (à l’adresse rtsp://www.hardradio.com/tonbeme.mov
par exemple)
% vlc rtsp://www.hardradio.com/tonbeme.mov
-
Recevoir un flux décrit par un fichier SDP
% vlc http://serveur.exemple.org/flux.sdp
3.3 Exercice
Q2. Faites l’essai des 3 lignes de commandes précédentes pour transcoder et envoyer un flux vers
une adresse multicast avec l’annonce SAP associée.
Q3. Comment doit-on modifier les lignes de commandes précédentes pour diffuser un flux :
a. Encodé en ASF
b. Avec une annonce SAP qui est la suivante : « Flux audio-vidéo de test »
c. Sans l’afficher à l’écran
d. Sans désentrelacement audio-vidéo
Q4. Faites l’essai des 3 lignes de commandes précédentes pour diffuser un flux à de multiples
utilisateurs.
Q5. Adresses IP multicast et unicast :
- Expliquez pourquoi l’adresse IP multicast est en 239.255.12.xx
- Expliquez pourquoi l’adresse IP unicast est en 192.168.1.xx
Q6. Choix du conteneur
- « mux=ts » : précisez à quel conteneur on fait allusion.
- Quels sont les nouveaux réglages si on veut utiliser un conteneur ASF ou MPJPEG.
Q7. Réglages des codecs
- « vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace » : précisez à quels codecs
et paramètres on fait allusion ici.
Q8. Proposez une commande qui permet d’afficher le flux d’entrée, de le transcoder vers une
adresse IP multicast avec les annonces SAP associées « Flux multicast ».
Q9. Proposez une commande qui permet d’envoyer le flux d’entrée vers une adresse IP multicast,
d’afficher le flux transcodé, et de le transcoder vers une adresse IP unicast.
Q10. Proposez une commande qui permet d’afficher le flux d’entrée, de le transcoder, d’envoyer le
flux transcodé vers une adresse IP unicast et de diffuser le flux transcodé en HTTP au format
WMA.
Q11. En vous regroupant par groupe de 2, exécutez les commandes précédentes : un des deux
étudiant sera le serveur et le second le client.
6
Transmission d’un signal sur un réseau (streaming) – TP 2
4 Diffusion avec VideoLAN Manager
4.1 VideoLAN Manager (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.
Configuration de VLM
La fenêtre de configuration de VLM se trouve dans le
menu « Outils », à la ligne « Configuration de
VLM ».
VLM permet de gérer les différents médias de diffuser d’un flux d’entrée (fichier, flux réseau,
périphérique de capture) vers un flux de sortie (fichier, protocole de diffusion) selon trois modes
différents :
- la diffusion en live ;
- la planification : date et heure de début, avec répétition ;
- la vidéo à la demande (VoD) avec choix du multiplexeur.
Une fois la gestion faite, vous pouvez importer ou exporter la liste du gestionnaire de médias, vers un
fichier de configuration VLM, qui est une liste de ligne de commande. Cette liste aurait pu être créée
et éditée à l’aide d’un éditeur de texte.
Voici quelques exemples de fichiers de configuration VLM, pour :
- Diffusion simple en broadcast
new channel1 broadcast enabled
setup channel1 input http://host.mydomain/movie.mpeg
setup channel1 output #udp{mux=ts, dst=239.255.1.1, sap, name="Channel 1"}
new channel2 broadcast enabled
setup channel2 input udp://@239.255.12.42
setup channel2 output #udp{mux=ts, 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 #udp{mux=ts, 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
4.2 Exercices
Q12. Tapez les 2 fichiers de configuration à l’aide d’un éditeur de texte, puis ouvrez-les avec
VLC Media Player. Pensez à remplacer la vidéo par la vôtre.
Q13. Essayer de réaliser un serveur avec VLC Media Player pour planifier plusieurs flux, faire de la
Vidéo à la Demande, ainsi que du Live. Puis, essayer de lire chacun des flux sur un ordinateur
client.
7

Documents pareils

VideoLAN Streaming - heurtebise.free.fr

VideoLAN Streaming - heurtebise.free.fr 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 p...

Plus en détail

VideoLAN Streaming Howto - Documentation

VideoLAN Streaming Howto - Documentation Pour plus de détails sur le projet, veuillez consulter le site web de VideoLAN (http://www.videolan.org).

Plus en détail