EzPlayer

EzPlayer est un lecteur audio/vidéo en C++ basé sur DirectX, uniquement destiné à des fins "éducatives" pour les programmeurs fous souhaitant découvrir l'API DirectShow (et plus particulièrement les interfaces IGraphBuilder, IMediaControl, IBasicAudio, IMediaSeeking, IMediaEvent, IVMRWindowlessControl9 et IBaseFilter).

EzPlayer Screenshot

Formats supportés : Audio-Video Interleaved (*.avi) Motion Picture Experts Group (*.mpg, *.mpeg, *.vob) Windows Media Video (*.wmv, *.asf) Apple Quicktime (*.mov) Real Media (*.rmvb) MPEG Audio Layer-3 (*.mp3) Windows Media Audio (*.wma) MIDI (*.mid). Dans les grandes lignes, on peut considérer qu'un fichier audio n'est constitué que d'un seul élément, devant être décodé par un filtre. Une vidéo peut être constituée de plusieurs flux audio et vidéo. Ainsi, pour décoder une vidéo dont le container est l'AVI et dont les codecs sont le Mpeg-1 Layer III (pour l'audio) et le Mpeg-4 (pour la vidéo) il est nécessaire d'obtenir un graphe de décodage.

Graphe DirectShow
Console RTSP

EzPlayer est donc une démonstration de l'utilisation de DirectX9 pour lire des vidéos et des sons avec l'implémentation bonus d'un module RTSP (mais qui ne lit pas les vidéos distantes, faute de filtre approprié à placer dans le graphe et faute de temps). Le protocole RTSP permet de contrôler la distribution de flux multimédias (streaming) sur un réseau IP. C'est un protocole de niveau applicatif prévu pour fonctionner sur des protocoles tels que RTP/RTCP et RSVP. Les flux peuvent provenir soit de clips stockés, soit d'une source temps réel. Il a été testé avec le serveur Darwin, développé par Apple.

Le lecteur possède également quelques fonctions de base permettant d'utiliser des skins (celui fourni par défaut étant inspiré de WinampModern, shame on me). Pour le compiler, il est nécessaire de disposer du SDK DirectX 9, et Borland C++ Builder. A l'origine conçu pour fonctionner avec MS Visual Studio, j'ai du faire quelques hacks du SDK pour que Borland puisse l'apprivoiser. Ces modifications sont contenues dans les sources.

Il restera en version beta et n'est pas recommandé en l'état pour une utilisation courante (préférez Media Player Classic, BSPlayer, ZoomPlayer...). Sous licence GNU/GPL, vous pouvez en faire ce que vous voulez, il n'y aura probablement pas de support ni de modification future de ma part.

9 commentaires pour “EzPlayer”

  1. Cédric dit :

    Impressionant, je vais tester ça :D

  2. e-t172 dit :

    Beau boulot :)

    Mplayer (le dieu des players) utilise (sous windows) directX pour l’image et le son. Par contre, je ne sais pas si il utilise les dernières fonctionnalités de directX 9. Peut-être pourrais-tu jeter un oeil à leur code ?

  3. alvas dit :

    hum, il vient d’où ce clip ? …

  4. dew dit :

    J’ai une réponse en 3 lettres.

  5. mauriz dit :

    Mais…mais…, tu dors jamais ?

  6. dew dit :

    Dormir ? Quel intérêt ?

  7. Urgo dit :

    Chapeau pour ce joli Player!
    Pourquoi préfères-tu Borland C++ Builder à VS ?

  8. Kurt dit :

    Super ! J’ai toujours voulu créer mon propre lecteur multimedia :) (je le ferais un jour ! Je le voudrais minimaliste). Félicitation en tout cas. Quand je me serais mis véritablement au C++, j’étudierais ton lecteur.

  9. malik dit :

    slt moi je sui en stage pour un laboratoir de recherche j aimerai commprendre comment tu réalise la gestion de la vidéo en c++ mon bute lors de se stage etan de réalisé un lecteur capable de lire des film image par image stp pourai tu m aider??? merci d avance

Laisser un commentaire