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