Web, multimédia et inter-opérabilité


Présentation du projet

On s'intéresse à la diffusion sur le W3 de contenu audio-visuel.

La question posée est la suivante:

Quel choix permet de délivrer du contenu audio-visuel à une audience multi-plateforme (PC, Mac, Unix) avec un logiciel facilement disponible, gratuit ou à faible coût, si possible en open-source?

La diffusion de données audio-visuelles ne fait pas, à proprement parler, partie du web dans la mesure où elles sont prises en charge par des protocoles et des visualisateurs spécifiques. Cependant, le web est souvent leur environnement d'accueil et la plupart des visualisateurs existent en version autonome (helper) ou embarquée (plug-in) permettant l'incrustation dans une page web.

Si l'incrustation graphique apporte peu par rapport à une application externe (elle est même plus risquée du fait qu'elle a lieu dans l'espace mémoire d'un navigateur web), l'intégration des données audio-visuelles à l'espace www avec ses facilités d'accès et de référencement est en revanche un avantage important pour sa diffusion.

Aujourd'hui (janvier 2002), trois solutions représentent la totalité des visualisateurs installés:

Les trois sont capables d'une diffusion multi-plateforme. Malheureusement, elles sont incompatibles entre elles. Un flux Quicktime ne peut pas être lu par RealPlayer, un flux RealPlayer par un MediaPlayer, ni aucune autre des combinaisons.

Cette absence d'inter-opérabilité peut s'expliquer par la multiplicité des solutions pour combiner trois couches:
 - l'algorithme de compression/décompression (codec)
 - le protocole de transport des données (et des informations de contrôle dans le cas de l'unicast);
 - le media packaging ou format du media sur ce protocole (payload format).

Au niveau du protocole de transport, on peut distinguer:

Au niveau de la compression des données:

Codecs supportés
  RealPlayer MediaPlayer QuickTime
RealG2 oui non non
Microsoft Video non oui non
VDOLive non oui non
ClearVideo non oui non
TrueMotion non oui non
Sorenson non non oui
Intel Indeo non oui oui
Cinepak non oui oui
MJPEG non oui oui
MPEG-4 non oui oui
H.261 oui non oui
H.263 non oui oui
Protocoles supportés
  RealPlayer MediaPlayerQuickTime
pna:, pnm: oui non non
mms: non oui non
rtp:, rtsp: oui ? oui

Comme le montre la matrice de compatibilité ci-dessus, il est possible de trouver un codec universel. Cette situation n'est pas surprenante car les codecs sont les produits de recherches soit de sociétés tierces (Intel, VDO, Sorenson) qui licencient aux constructeurs de plate-formes multi-média, soit d'organismes normalisateurs (H.261/263, MPEG).

Malheureusement, le choix de protocoles et de formats différents, même s'il existe là-aussi des normes, rend toute compatibilité illusoire. Il ne fait aucun doute que des intêrets commerciaux vont dans ce sens et que les solutions propriétaires sont des armes dans la bataille pour la domination des media.

À cet égard, Real Systems a une volonté très claire de marginaliser ses produits gratuits en rendant leur accès sur le web laborieux. Microsoft a rendu l'intégration de Quicktime plus complexe à partir d'Explorer 5.5 (arrêt du support des plug-ins). Seul Apple, avec QuickTime, suit une stratégie affirmée d'ouverture.


Disponibilité côté client (player)

Chacun des trois lecteurs existent pour Mac et PC. Quoique supportant une liste de formats qui peuvent différer de leurs homologues Mac et Windows (ceci peut être pris en compte lors du choix du mode de compression et de transport) des lecteurs existent pour Unix/Linux. En voici quelques-uns:
Xine http://xine.sourceforge.net/
MPlayer http://www.mplayerhq.hu/homepage/
XAnim http://xanim.va.pubnix.com/home.html
XMovie http://heroines.sourceforge.net/xmovie.php3
QuickTime for Linux http://heroines.sourceforge.net/quicktime.php3
Real Player for Linux http://scopes.real.com/real/player/unix/unix.html (Community players)
http://proforma.real.com/real/player/blackjack.html (Old Real players)
Multimedia4Linux http://www.multimedia4linux.de/

Du point de vue de la disponibilité des logiciels clients, les trois solutions sont également satisfaisantes.


Disponibilité côté serveur (streamer)

Il existe une version gratuite de chacun des trois serveurs (la disponibilité de Real Producer Basic paraît toutefois compromise). QuickTime est celui qui fait preuve de la plus grande ouverture (open-source, standard MPEG-4, standards RTP/RTSP).

  OS supportés gratuit open-source
Windows Media ServerWindows NT oui non
RealServer Windows
Macintosh
Linux
Solaris
oui
(version bridée)
non
QuickTime Streaming Server Mac OS/X
Linux
Solaris
Windows NT
Windows 2000
oui oui
(Darwin)

Nous choisissons QuickTime pour nos essais car le serveur est open-source.


Choix d'un codec

Rédaction en cours
http://www-mobile.ecs.soton.ac.uk/peter/publications/iccs96-abstract.html
http://www-mobile.ecs.soton.ac.uk/peter/h261/h261.html
http://www-mobile.ecs.soton.ac.uk/peter/h263/h263.html


Webographie

[1] Getting started with streaming media:
http://industryclick.com/magazinearticle.asp?releaseid=6772&magazinearticleid=112144&siteid=15&magazineid=158

[2]Webmonkey, Media Player Update:
http://hotwired.lycos.com/webmonkey/99/24/index4a.html

[3] Network World Fusion Research:
http://www.nwfusion.com/research/streaming.html

[4] Streaming Media Land:
http://streamingmedialand.com/technology.html

[5] Cross-platform data compression:
http://www.dogma.net/DataCompression/Video.shtml

[6] Choosing a Streaming Video Technology:
http://www.dvwebvideo.com/2000/0500/waggoner0500.html

[7] AVI Overview, by John F. McGowan, Ph.D.:
http://www.jmcgowan.com/avi.html


Normes

Les protocoles RTP et RTSP sont définis par les RFC suivantes:
rfc1889 - RTP: A Transport Protocol for Real-Time Applications.
rfc2326 - Real Time Streaming Protocol (RTSP).

La RFC 889 est complétée par les suivantes qui spécifient le format des données pour chaque type de codec:
rfc2029 - RTP Payload Format of Sun's CellB Video Encoding.
rfc2032 - RTP Payload Format for H.261 Video Streams.
rfc2035 - RTP Payload Format for JPEG-compressed Video.
rfc2038 - RTP Payload Format for MPEG1/MPEG2 Video.
rfc2190 - RTP Payload Format for H.263 Video Streams.
rfc2198 - RTP Payload for Redundant Audio Data.
rfc2250 - RTP Payload Format for MPEG1/MPEG2 Video.
rfc2343 - RTP Payload Format for Bundled MPEG.
rfc2429 - RTP Payload Format for the 1998 Version of ITU-T Rec. H.263 Video
rfc2431 - RTP Payload Format for BT.656 Video Encoding.
rfc2435 - RTP Payload Format for JPEG-compressed Video.
rfc2658 - RTP Payload Format for PureVoice(tm) Audio.
rfc2793 - RTP Payload for Text Conversation.
rfc2833 - RTP Payload for DTMF Digits, Telephony Tones and Telephony
rfc2862 - RTP Payload Format for Real-Time Pointers.
rfc3016 - RTP Payload Format for MPEG-4 Audio/Visual Streams.
rfc3047 - RTP Payload Format for ITU-T Recommendation G.722.1.
rfc3119 - A More Loss-Tolerant RTP Payload Format for MP3 Audio.
rfc3189 - RTP Payload Format for DV (IEC 61834) Video.
rfc3190 - RTP Payload Format for 12-bit DAT Audio and 20- and 24-bit Linear

Enfin, le format utilisé par QuickTime est décrit dans le document suivant:
Dispatch 26 - QuickTime Generic RTP Payload Format


[Index] [Ecrire à l'auteur]