Streaming

Transcription

Streaming
Serveur Mul)media Streaming Objec)fs •  Pourquoi du streaming ? –  Diffusion live, à la demande •  Quelques protocoles de streaming –  (hCp), udp (unicast, mul)cast), rtp, rtsp •  Formats vidéo streamable –  Codecs et Encapsuleurs –  Conversion avec ffmpeg et vlc •  Serveur de streaming (diffusion) –  Quick)me Streaming Server –  VLC Contexte •  Medias sur le web •  Diffusion de flux audio/video en direct –  Radio, Télévision, Surveillance •  Diffusion à la demande (VOD) –  En croissance ! DVD : -­‐2% en 2011 VOD : +50% Téléchargement progressif •  U)lise l’infrastructure existante –  Protocole hCp –  Géré par les navigateurs / lecteurs / plugin •  Lent : u)lise TCP qui garan) la récep)on de tous les paquets •  Peu de contrôle : impossible de lire des par)es pas encore téléchargées Architecture « classique » Web Client hCp Web Server Media Player Media Files Téléchargement progressif •  Le client se connecte au serveur pour télécharger le fichier •  Lecture « à la volée », dépendante de la qualité du réseau •  Pas (peu) de moyen de protéger le fichier •  Mécanisme gourmand en bande passante è Adapté pour du streaming à (très) pe)te échelle Solu)ons serveur de streaming •  Webcas)ng, Livecas)ng, WebTV, Net Radio, VOD, Live TV, … à True Streaming •  Diffusion de media « en direct » –  Acquisi)on ; encodage à la volée •  Diffusion de media « pré-­‐enregistré » –  Ré-­‐encodage •  Solu)on logicielle capable d’envoyer des flux de données via un protocole établi. •  Ne prend pas en charge l’encodage è  Ces deux fonc)ons sont déployées sur des machines dédiées (de préférence) Architecture « streaming » Web Client hCp Web Server Encoding Server Media Player Streaming protocol Streaming Server Media Files Protocoles réseaux pour le streaming Rappel TCP et UDP (Couche 4 du modèle OSI : Transport) •  TCP = Transmission Control Protocol –  Transfert fiable par l’établissement d’une session de connexion –  Poten)ellement lent car s’assure du bon transport des paquets –  U)lisé par l’applica)on HTTP •  UDP = User Datagram Protocol –  Non fiable : perte possible de paquets –  Somme de contrôle (checksum) –  U)lisé pour le transfert rapide de pe)ts paquets –  Pour des applica)ons qui peuvent tolérer quelques pertes Diffusion vers plusieurs destinataires
è TCP ou UDP è UDP Mul)cast to group
Mul)cast •  Pas de limita)on sur les groupes •  Taille, localisa)on •  Joindre, quiCer •  L’émeCeur ne connaît pas les des)nataires •  La diffusion est gérée par les routeurs •  Adresses Mul)cast : 224.0.0.1 à 239.255.255.254 224.0.0.1 -­‐ 224.0.0.255 : Réservé pour les routeurs 224.0.1.0 -­‐ 238.255.255.255 : Réservés 224.0.19.0 -­‐ 224.0.19.63 (Walt Disney) 239.0.0.0 -­‐ 239.255.255.255 : Administra)on 239.192.0.0 -­‐ 239.192.63.255 : Organisa)on 239.255.0.0 -­‐ 239.255.255.255 : Privé Real-­‐)me Transport Protocol (RTP) •  U)lisé pour la diffusion de contenu temporel –  Audio/Vidéo conférence (Live streaming) •  U)lise UDP : pas de contrôle de qualité à RTCP à Unicast / Mul)cast •  Ajoute l’informa)on sur le séquencement et la synchronisa)on des paquets Real-­‐)me Transport Control Protocol (RTCP) •  Assure le contrôle (rapport) de récep)on des paquets RTP •  Rapports envoyés périodiquement par le(s) récepteur(s) de paquets RTP •  Es)me le nombre de paquets perdus è L’applica)on qui émet les paquets RTP peut réagir en fonc)on des rapports RTCP Real Time Streaming Protocol (RTSP) •  Permet de commander la diffusions des flux –  PLAY, PAUSE, STOP, … •  Hérite du fonc)onnement de HTTP –  Dialogue Client / Serveur •  U)lise RTP pour le transfert des médias –  RTCP pour le contrôle de qualité •  Supporte le Mul)cast mais peu u)lisé Real Time Streaming Protocol (RTSP) Formats vidéo pour le streaming Conteneur vidéo •  avi , mpg , mov , mp4 , flash sont des conteneurs vidéos –  comporte plusieurs flux audios et/ou vidéos •  Chaque flux et compressé par un encodeur/
décodeur (=codec) –  paramètres •  Pas de correspondance entre les conteneurs et les codecs •  Les conteneurs / codecs ne sont pas tous streamable Les principaux codecs vidéo •  MPEG-­‐1 : Peu de compression, encodage rapide •  MPEG-­‐2 : U)lisé par les DVD, compression coûteuse •  MPEG-­‐4 : Meilleur que MPEG-­‐2 pour des faibles bitrate, le plus courant –  Part 2 : DIVX –  Part 10 : H264 •  WMV : MicrosoI •  RealVideo : Real Networks Les principaux codecs audio •  MPEG-­‐1&2 : Peu de compression, encodage rapide •  MPEG-­‐3 : Très populaire •  MPEG-­‐4 : Plus performant que MP3 – M4A, AAC (iPod) •  OGG : Libre et performant •  WMA, RealAudio, … Les principaux conteneurs audio/vidéo hCp://en.wikipedia.org/wiki/Comparison_of_container_formats Les principaux conteneurs audio/vidéo MPEG PS MPEG-­‐1, MPEG-­‐2, H264 MPEG-­‐1, MPEG-­‐2, MPEG-­‐3, MP4A è Program Stream (DVD) MPEG TS MPEG-­‐1, MPEG-­‐2, DIVX, H264 MPEG-­‐1, MPEG-­‐2, MPEG-­‐3, MP4A è Transport Stream (Streaming) Conteneurs adaptés pour le streaming : à MPEG-­‐4 , MPEG TS , MOV , OGG , ASF , REAL hCp://wiki.videolan.org/Codec Mul) bitrate streaming •  Plusieurs flux disponibles à différents taux de compression •  Le serveur diffuse le flux le plus adapté à l’encombrement / débit du réseau •  Nécessite des rapports RTCP Ou)ls open source pour l’encodage vidéo •  ffmpeg ffmpeg -­‐i video.avi -­‐vcodec mpeg4 -­‐b 800k -­‐acodec mp2 -­‐ab 64k video.mpg •  VLC vlc video.avi -­‐-­‐sout="#transcode{vcodec=h264, vb=800,acodec=mp4a,ab=64}:standard{access=file,mu
x=ts,dst=‘video.mpg’} " Serveurs de streaming Source: wikipedia QuickTime Streaming Server à  Darwin Streaming Server -­‐  Open Source -­‐  Mul) plateforme -­‐  hCp://dss.macosforge.org/ -­‐  Protocoles RTP, RTCP et RSTP -­‐  Support MPEG-­‐1/2/3/4 (MOV) à Suite QuickTime (Player, Pro, Broadcaster) QuickTime Streaming Server •  Diffusion de médias en direct –  Quick)me Broadcaster •  Vidéo à la demande •  Diffusion de playlists à Unicast / Mul)cast QuickTime Streaming Server •  Lancement du serveur > sudo /usr/sbin/QuickTimeStreamingServer •  Interface d’administra)on (web) > /usr/sbin/streamingadminserver.pl •  Configura)on simple avec interface web Lecture via rtsp://IP.DU.SERVEUR:554/video VideoLAN (VLC) •  Client Media Player très populaire -­‐ 
-­‐ 
-­‐ 
-­‐ 
Open Source Mul) plateforme Français ! hCp://www.videolan.org/ •  Conversion de formats –  hCp://wiki.videolan.org/Codec •  Serveur de streaming VideoLAN (VLC) -­‐  Protocoles HTTP, UDP, RTP, RTCP, RSTP -­‐  Codec vidéo : à peu près tout -­‐  Transcodage = encodage « à la volée » -­‐  Interface graphique et Telnet (pour la vod) VideoLAN (VLC) •  VideoLAN Manager (VLM) –  Changer préférence VODrtsp server  IP.DU.SERVER:5554 –  Ac)ver le server vlc avec telnet : vlc –I telnet –d $ telnet localhost 4212 (pwd=admin) > new video vod enabled > setup video input video.mpg à Lecture via vlc rtsp://server:5554/video VideoLAN (VLC) •  Exemple de diffusion avec transcodage à la volée : > new test broadcast enabled loop > setup test input video.avi > setup test output #transcode {vcodec=mp2v, vb=4096, scale=1, acodec=mpga, ab=512}:std{access=udp, mux=ts, dst=212.27.38.253:1234} > control test play •  Lecture depuis 212.27.38.254 > vlc udp://:1234 VOD Webcam > new camera vod > setup camera input "qtcapture://" > setup camera output #transcode{vcodec=mp4v,vb=1024,chroma=Y
UVA} > setup camera enabled FFMPEG •  ffmpeg -­‐i Barbapapa.avi -­‐vcodec mpeg4 -­‐b 9000k -­‐acodec aac -­‐ab 128k -­‐t 2 test.mov •  ffmpeg -­‐i Barbapapa.avi -­‐vcodec mpeg4 -­‐b 9000k -­‐acodec aac -­‐ab 128k -­‐t 2 test.mov -­‐vcodec mpeg4 -­‐b 90k -­‐newvideo 

Documents pareils