lire les dvd haute définition
Transcription
lire les dvd haute définition
Lire les DVD Haute Définition – Page 1/22 LIRE LES DVD HAUTE DÉFINITION Lire les DVD Haute Définition – Page 2/22 Table des matières Lire la Haute Définition........................................................................................................................3 Ce qui sera utile...............................................................................................................................3 La configuration du PC....................................................................................................................3 Les versions des logiciels utilisés....................................................................................................3 Formats des fichiers........................................................................................................................4 Formats video..................................................................................................................................4 Formats audio..................................................................................................................................4 Utiliser AnyDVD HD.............................................................................................................................4 Utiliser MPC.........................................................................................................................................4 Activer l'option IVTC dans le panneau de contrôle Nvidia..............................................................5 Utiliser Dscaler (+IVTC mod) comme MPEG2 decoder..................................................................6 Lire du VC-1 avec MPC...................................................................................................................6 Une configuration en 1080i, 96Hz...................................................................................................6 Des pistes pour réduire les saccades.............................................................................................6 Exemples.........................................................................................................................................7 Utiliser Zoom Player.............................................................................................................................7 Configurer avec Smart Play..........................................................................................................10 Création du profil associé au decodeur video pour l'AVC.........................................................11 Création du profil associé au décodeur vidéo pour le VC-1......................................................11 Création du profil associé au décodeur audio...........................................................................11 Modification du profil AC3 standard...........................................................................................11 Vérification des paramètres du Source Filter EVO...................................................................12 Utiliser les filtres d'Arcsoft.............................................................................................................12 Exemples.......................................................................................................................................12 L'interface "Customized Media Mode" de Zoom Player....................................................................14 Source Filters spécifiques.............................................................................................................15 Splitters Audio/Video.....................................................................................................................15 Decoders Audio & Video................................................................................................................15 Construire un Graph DVD .................................................................................................................15 Introduction....................................................................................................................................15 Eléments nécessaires...................................................................................................................16 Enregistrements des filtres............................................................................................................16 Une liste des filtres les plus courants............................................................................................16 GraphEdit ..........................................................................................................................................16 GraphEdit vers Zoom Player ............................................................................................................18 Utiliser SmartPlay..............................................................................................................................20 Introduction à Smart Play..............................................................................................................20 Enable Smart Play (Overrides the Windows Decoder / Filter selection).......................................20 Auto-Configure..............................................................................................................................20 Settings & Black List......................................................................................................................20 Source Filters & Splitters...............................................................................................................20 Configuration d'un format de "Source Filters"...............................................................................20 Configuration d'un format de "Audio/Video Splitters"....................................................................21 Audio & Video Decoders...............................................................................................................21 Configuration d'un format de "Audio/Video Decoders".................................................................21 Comprendre le mérite des filtres DirecShow.....................................................................................22 Lire les DVD Haute Définition – Page 3/22 Lire la Haute Définition Document réalisé à partir de : http://www.avsforum.com/avs-vb/showthread.php?t=885764 http://www.avsforum.com/avs-vb/showthread.php?t=892527 Ce document rassemble des pistes pour lire des HD-DVD et Blu-Ray sur PC à l'aide des logiciels Media Player Classic et Zoom Player L'avantage d'utiliser ces logiciels est qu'ils sont ouverts à l'intégration de filtres extérieurs à l'encontre de produits comme WinDVD et PowerDVD qui sont des produits propriétaires fermés On peut alors choisir ses propres décodeurs audio/video et faire du post processing audio/video En contre-partie ce n'est pas une solution Plug & Play, de nombreux essais sont à faire avant de trouver la ou les solutions qui conviennent Dans ce documet j'ai essayé de rassembler un certain nombre de pistes que j'ai glanées au cours de mes lectures sur différents forums : j'en ai essayé certaines, mais pas toutes aussi vous ne trouverez pas dans ce document le choix ultime qui permet de tout lire sans problème A vous de faire vos propres essais, et de poster vos succés afin d'en faire profiter d'autres Remarque : si on se rend compte qu'un filtre est utilisé à la place de celui que l'on veut utiliser on essaiera de le bloquer Ce qui sera utile Installer AnyDVD HD pour pouvoir passer les protections Installer les drivers UDF 2.5 pour lire les galettes à la volée (sous XP) Un puissant CPU au moins un Intel C2D à 3Ghz Eviter l'accélération matérielle des cartes graphiques, faire le décodage par soft, ce qui explique le puissant CPU La configuration du PC – – – – Carte mère : Asus P5B Premium Vista Edition CPU : Intel Core 2 Duo E6600 Mémoire RAM : 2Go Corsair Carte graphique : MSI NX7950GT Les versions des logiciels utilisés – – – – – – – Media Player Classic : MPC Home-Cinema 1.1.0.0 Zoom Player : 6.0 RC1 AnyDVD HD : 6.4.0.0 Cyberlink PowerDVD (pour les filtres) : 7.3.3730 ffdshow : rev1900_20080315_xxx Haali Media Splitter : 1.7.189.11 ou 1.7.401.3 Sonic Cineplayer : 4.3.0 Lire les DVD Haute Définition – Page 4/22 – – – – – CoreAVC : 1.6.5.0 Nero : NVidia PureVideo : Reclock : 1.7.4b ArcSoft : 2.1.6.109 Formats des fichiers – – HD-DVD : .evo Blu-Ray : m2ts Formats video MPEG-2, MPEG-4 AVC (H.264), VC-1 Formats audio LPCM, Dolby Digital (DD), Dolby Digital Plus (DD+), Dolby True HD, MLP, MPEG-1, MPEG-2, DTS-HD Utiliser AnyDVD HD L'utilisation de AnyDVD HD permet de passer les protections. Il permet d'éviter de copier la galette sur le disque dur pour modifier le fichier .XPL : en utilisant la fonctionnalité "Magic File Replacement" AnyDVD HD fait une copie locale de ce fichier au moment de l'insertion du DVD, que l'on peut alors modifier pour éventuellemen by-passer les menus pour ceux qui ont des problèmes avec menus et sous-titres Utiliser MPC A priori il faut installer Windows Media Player 11 (la version runtime suffit, wmfdist11.exe), sinon on ne peut lire les HD-DVD Pour les fichiers .evo (HD-DVD) il y a deux alternatives pour le décodage vidéo : PowerDVD H264/AVC (MPEG-4 AVC) Decoder et WMVideo Decoder DMO (VC-1) Les choix précédés de ** sont des options possibles – Menu Affichage > Options > Filtres externes – Ajouter un filtre : Haali Media Splitter (AR), Merite : 00900000, Préferer sélectionné – Ajouter un filtre : ffdshow Audio Decoder, Merite : 00700000 – Ajouter un filtre : Cyberlink H.264/AVC Decoder, Merite : 00900400 – Ajouter un filtre : Sonic Cinemaster Audio Decoder 4.3.0, Merite : 00805000 – Ajouter un filtre : ffdshow Video Decoder, Merit : 00800000 (pour empêcher ffdshow de prendre la main sur Cyberlink) – Ajouter un filtre : Sonic Cinemaster Video Decoder, Merit : 00700000 (pour empêcher Cinemaster Video de prendre la main sur ffdshow Video) – ** Ajouter un filtre : Cyberlink Video/SP Decoder (PDVD7) : Préferer sélectionné (à essayer avec certains accélérations matérielles sous XP) – ** Ajouter un filtre : NVIDIA Video Decoder : Préfer sélectionné (bloque Cyberlink, à essayer avec certains accélérations matérielles sous XP ou Vista si vous avez NVIDIA PureVideo) – Menu Affichage > Options > Filtres internes Lire les DVD Haute Définition – Page 5/22 On désélectionne tout ce qui est mpeg et matroska de la liste Filtres source On désélectionne tout ce qui est AC3 (DTS et AAC éventuellement) et mpeg de la liste Filtres de transformation Menu Affichage > Options > Lecture > Sortie : on sélectionne le Video Renderer que l'on veut utiliser dans la liste Videos DirectShow (j'utilise VMR9 (sans rendu)) – – – Un bug dans Haali Splitter l'empêche de voir les pistes DTS HD audio Une autre alternative possible est d'utiliser les filtres d'ArcSoft en installant ArcSoft Totalmedia Extreme Menu Affichage > Options > Filtres externes – Ajouter un filtre : ArcSoft MPEG Demux, Préferer sélectionné – Ajouter un filtre : ArcSoft Video Decoder, Préferer sélectionné – Ajouter un filtre : ArcSoft Audio Decoder HD, Préferer sélectionné On bloque tout splitter/demuxer déjà présent dans la liste des filtres externes Pour changer de langue en cours de lecture video on fait un clic-droit sur l'icône de Matroska dans la zone de notification – Pour lire les pistes True HD on peut utiliser Nero Audio Decoder 2 et Nero Splitter fournis par le plugin HD-DVD/Blu-Ray (il semblerait qu'il faille renommer MPC en recode.exe pour qu'on puisse les utiliser) On peut utiliser Reclock comme Renderer Audio On évitera de déselectionner "Activer le filtre de sélection audio" de Options > Filtres internes > Sélecteur audio à cause du mapping incorrecte des canaux par Haali Splitter pour les pistes LPCM d'un Blu-Ray, on perd le canal surround droit, car le connecteur audio sera connecté au DirectSound Renderer qui attend de l'audio PCM dans l'ordre L, R, C, LFE, LS, RS, alors que le LPCM sur un Blu-Ray est dans l'ordre L, R, C, LS, RS, LFE (pour le 5.1). Même ce paramètre activé ne garantit pas un mapping correcte si on a d'abord choisit une piste autre que LPCM et que l'on passe ensuite en LPCM avec Haali. En ajoutant le filtre AC3, mit en tête de liste avec Préferer sélectionné, on peut utilser la matrice des canaux pour corriger le mapping Si vous voulez supprimer les parametres en cours après une désinstallation de MPC, les clés de la base de registre impliquées : HKEY_CURRENT_USER/Software/Gabest HKEY_LOCAL_MACHINE/Software/Gabest HKEY_USERS/S - 1 - 5 - 21/Software/Gabest L'utilitaire WMV Powertoy permet d'activer le support DXVA WMV dans le WMV Decoder, permettant ainsi l'accélération du décodage VC-1 avec WMV9 Decoder (donne de très bons résultats avec les derniers drivers Nvidia, au moins 163.71) Activer l'option IVTC dans le panneau de contrôle Nvidia – – – – – Ouvrir le panneau de contrôle en mode avancé Entrée "Video & Television" : clic sur "Adjust video and color setting" Clic sur l'onglet Enhancement Cocher "Use inverse telecine" et PAL Clic sur Apply Lire les DVD Haute Définition – Page 6/22 Utiliser Dscaler (+IVTC mod) comme MPEG2 decoder Pour lire les Blu-Ray en MPGEG2 l'utilisation de Dscaler (+IVTC mod) semble donner de très bons résultats (testé en 48Hz avec Reclock) On lira avec attention ce post : http://www.avsforum.com/avs-vb/showthread.php?p=11465155#post11465155 – – – – On installe la version normale de Dscaler (ici la 5.0.0.8) On décompresse Dscaler5.IVTC.251206.zip dans le répertoire d'installtion de Dscaler On décompresse DscalerIVTC041105.zip dans le répertoire d'installation de Dscaler On additionne Dscaler comme filtre externe à MPC On peut aussi ajouter du post processing avec ffdshow Lire du VC-1 avec MPC Les Cyberlink HD Decoders ne peuvent pas être utilisés en dehors du lecteur PwoerDVD ultra (excepté le H.264 Decoder) On peut alors utiliser WMV9 Decoder (WMVideo Decoder DMO), Préferer positionné, on bloquera éventuellement Sonic Cinemaster Video Decoder si présent. Avec WMV Powertoy activer le support DXVA WMV : cela soulage le CPU, c'est le GPU qui prend le relai en partie (suivant la carte graphique et la version de driver) Il semblerait que WMV9 Decoder soit plus efficace que PowerDVD pour le VC-1 et avec le render VMR9 donne une qualité d'image équivalente Une configuration en 1080i, 96Hz Pour lire l'AVC – Reclock Audio Renderer – WMR9 Windowless (essayer Renderless) – Sonic Cineplayer Audio Decoder 4.3.0 – CoreAVC Video Decoder Pour lire le VC-1 – Reclock Audio Renderer – VMR9 Windowless (essayer Renderless) – Sonic Cineplayer Audio Decoder 4.3.0 – ffdshow Video Decoder Des pistes pour réduire les saccades – – – – – Utiliser "Queue output samples" dans ffdshow Modifier la base de registre pour permettre 50 frames : clé queueCount dans HKEY_CURRENT_USER\Software\GNU\ffdshow\default Utiliser wmv9 VC-1 Decoder dans la section Codecs de ffdshow Video Decoder Cocher YV12 et décocher "High quality YV12 to RGB conversion" dans la section Output de ffdshow Video Decoder Utiliser VMR9 au lieu de Haali Renderer : Haali Render avec des buffers à 128/128 est bon Lire les DVD Haute Définition – Page 7/22 – – mais pas aussi performant (on cochera alors YUV dans la section Output de ffdshow Video Decoder), ffdshow Queue ne fonctionne pas avec Haali car il a ses propres buffers Utiliser Reclock Avec ffdshow Queue actif et l'OSD actif on peut voir la queue vide quand on perd une frame Exemples – – – – – – – HD-DVD Transformers – Fichier : .evo – Video : MPEG-4 AVC – Audio : HD-DVD 2 Fast 2 Furious – Fichier : .evo (Haali Media Splitter (AR)) – Video : VC1 (WMVideo Decoder DMO) – Audio : DD+ (Sonic Cinemaster Audio Decoder 4.3.0) HD-DVD Rambo First Blood – Fichier : .evo (Haali Media Splitter (AR)) – Video : VC1 (WMVideo Decoder DMO) – Audio : DTS-HD (ffdshow Audio Decoder) Blu-Ray Planet of the Apes – Fichier : .m2ts – Video : MPEG-2 (ffdshow Video Decoder) – Audio : (ffdshow Audio Decoder) Blu-Ray Starship Troopers – Fichier : .m2ts – Video : VC1 (WMVideo Decoder DMO) – Audio : Blu-Ray Pirates of the Caribbean – Fichier : .m2ts – Video : MPEG-4 AVC (Cyberlink H.264/AVC Decoder) – Audio : HD-DVD Band of Brothers – Fichier : – Video : MPEG-4 AVC (Cyberlink H.264/AVC Decoder) – Audio : Utiliser Zoom Player Pour lire les Blu-Ray on installe GraphEdit, Matroska Splitter, FFDshow et NVIDIA PureVideo, on construit le Graph suivant : Lire les DVD Haute Définition – Page 8/22 Pour lire les HD-DVD on installe GraphEdit, Matroska Splitter, Sonic Cineplayer Decoder Pack, on construit le Graph suivant : – – GraphEdit : Graph > Insert Filter – DirectShow Filter : Haali Media Splitter, on sélectionne le fichier .evo ou .m2ts que l'on veut lire, une fenêtre apparaît avec un onglet audio et un onglet video, on ferme la liste des filtres GraphEdit : – right click on the Video tab and "render pin" (you might want to replace the default VMR filter with Video Mixing Renderer 9 for smoother playback) – right click on the Audio tab and "render pin" (you don't have to bother with this if you don't want sound) Un autre Graph pour lire les HD-DVD : Lire les DVD Haute Définition – Page 9/22 Pour éviter la désynchronisation du son il faut verrouiller l'horloge dans l'Audio Render Filter (Default DirecSound Device) Les HD-DVD avec seulement des pistes audio DTS-HD ont un problème que l'on peut résoudre en utilisant les filtres Sonic HD Demuxer + Cinemaster Audio and Video Decoder On peut ajouter le filtre "FFDShow Audio Processor" entre l'Audio Decoder et le Directsound Device (Renderer Audio) afin d'ajouter des possibilités de mixage Pour .evo : Haali splitter + sonic Audio DS, pour lire le film complétement faire une playlist avec les deux fichiers .evo, il y aura une légère pause entre les deux fichiers Intégrer les filtres par l'intermédiaire de Smart Play : clic-droit > Options/Setup > Playback > Smart Play – Onglet Audio & Video Decoders – Audio Decoders – AC3 : Configure – Add Filter : Sonic Audio Decoder Une configuration gratuite (hormis l'achat de Zoom Player) – Splitter : Haali Media Splitter (AR) – Video Decoder : WMVideo Decoder DMO – Audio Decoder : ffdshow Audio Decoder – Video Renderer : VMR9 (renderless) – Audio Renderer : Default DirectSound Device Lire les DVD Haute Définition – Page 10/22 Configuration donnant une bonne fluidité pour les HD-DVD : – Splitter : Haali Media Splitter – Video Decoder : WMVideo Decoder DMO – Audio Decoder : Sonic Cinemaster Audio Decoder – Video Renderer : Haali Video Renderer – Audio Renderer : Default DirectSound Device Le fichier evo.mediagraph correspondant (on est en mode media) # Creation des Filtres LoadFilter({760A8F35-97E7-479D-AAF5-DA9EFF95D751},Haali_Video_Renderer) LoadFilter({79376820-07D0-11CF-A24D-0020AFD79767},Default DirectSound Device) LoadFilter({9F062738-CD84-4F54-A3C4-BD5EB44F416B},Sonic_Cinemaster®_Audio_Decoder) LoadFilter({564FD788-86C9-4444-971E-CC4A243DA150},Haali_Media_Splitter) LoadFilter({B86F6BEE-E7C0-4D03-8D52-5B4430CF6C88},ffdshow_Audio_Processor) # Connect Halli Splitter to decoders // Le premier ConnectPin donne un message d'erreur qui n'a pas d'influence sur la lecture ConnectPin(Haali_Media_Splitter,Video,WMVideo_Decoder,in0) ConnectPin(Haali_Media_Splitter,Audio,Sonic_Cinemaster®_Audi o_Decoder,Audio in) # Audio Pin connectionsConnectPin(Sonic_Cinemaster®_Audio_Decoder,Audio Out,ffdshow_Audio_Processor,In) ConnectPin(ffdshow_Audio_Processor,Out,Default_DirectSound_D evice,Audio Input pin (rendered)) # Video Pin connections ConnectPin(WMVideo_Decoder,out0,Haali_Video_Renderer,Input) On peut aussi essayer avec Sonic HD Demux comme splitter LoadFilter({51B4ABF3-748F-4E3B-A276-C828330E926A},Video_Mixing_Renderer_9) LoadFilter({79376820-07D0-11CF-A24D-0020AFD79767},Default DirectSound Device) LoadFilter({D7D50E8D-DD72-43C2-8587-A0C197D837D2},Sonic_Cinemaster®_Video_Decoder_4.3.0) LoadFilter({9F062738-CD84-4F54-A3C4-BD5EB44F416B},Sonic_Cinemaster®_Audio_Decoder_4.3.0) LoadFilter({250D7B7D-4344-41FD-A284-7299B7765F18},Sonic_HD_Demuxer) # Sonic HD Splitter // Le premier ConnectPin donne un message d'erreur qui n'a pas d'influence sur la lecture ConnectPin(Sonic_HD_Demuxer,Audio Out,Sonic_Cinemaster®_Audio_Decoder_4.3.0,Audio in) ConnectPin(Sonic_HD_Demuxer,Video Out,Sonic_Cinemaster®_Video_Decoder_4.3.0,Video in) # Pin connections ConnectPin(Sonic_Cinemaster®_Video_Decoder_4.3.0,Video Out,Video_Mixing_Renderer_9,VMR Input0) ConnectPin(Sonic_Cinemaster®_Audio_Decoder_4.3.0,Audio Out,Default_DirectSound_Device,Audio Input pin (rendered)) Configurer avec Smart Play On va ici utiliser Smart Play pour configuere Zoom Player pour qu'il puisse lire les HD-DVD et les Blu-Ray Cette configuration a été testée en 1080i et 96Hz Pour décoder l'AVC (la plupart des HD-DVD) – Splitter : Haali Media Splitter Lire les DVD Haute Définition – Page 11/22 – – – – Video Decoder : CoreAVC Video Decoder 1.6.5.0 Audio Decoder : Sonic Cineplayer Audio Decoder 4.3.0 Video Renderer : VMR9 Renderless (essayer Windowless si problème) Audio Renderer : Reclock Audio Renderer Pour décoder VC1 (la plupart des Blu-Ray) – Splitter : Haali Media Splitter – Video Decoder : ffdshow Video Decoder (s'assurer que VC-1 est actif, choisir libavcodec) – Audio Decoder : sonic Cineplayer Audio Decoder 4.3.0 – Video Renderer : VMR9 Renderless (essayer Windowless si problème) – Audio Renderer : Reclock Audio Renderer Zoom Player a besoin de savoir quoi faire avec ces types de video, qui sont décrits par un code filtre (Sub-Type), puis Zoom Player a besoin de les faire correspondre à un Decoder. Pour obtenir ces codes il suffit de jouer un fichier .evo (HD-DVD) ou .m2ts (Blu-Ray) en ayant l'affichage des erreurs actif (Options/Setup > Playback > Smart Play > Settings & Black List > Show Smart Play graph creation errors) Le code pour AVC est : {34363248-0000-0010-8000-00AA00389B71} Le code pour VC-1 est : {31435657-0000-0010-8000-00AA00389B71} Création du profil associé au decodeur video pour l'AVC Options/Setup > Playback > Smart Play : onglet Audio & Video Decoders – Liste Video Decoders – New : on saisit un nom, par exemple "AVC MPEG-4" – Add Filter : on choisit CoreAVC Video Decoder – Accept the following Media Sub-Types : {34363248-0000-0010-8000-00AA00389B71} (FourCC:H264) Création du profil associé au décodeur vidéo pour le VC-1 Options/Setup > Playback > Smart Play : onglet Audio & Video Decoders – Liste Video Decoders – New : on saisit un nom, par exemple "VC1" – Add Filter : on choisit ffdshow Video Decoder – Accept the following Media Sub-Types : {31435657-0000-0010-8000-00AA00389B71} (FourCC:WVC1) Création du profil associé au décodeur audio Options/Setup > Playback > Smart Play : onglet Audio & Video Decoders – Liste Audio Decoders – New : on saisit un nom, par exemple "AC3 HD" – Add Filter : on choisit Sonic Cinemaster Audio Decoder 4.3.0 – Restrict to these File Extensions : EVO, M2TS – Ignore theses File Extensions : AVI, MPG, TS – Accept the following Media Sub-Types : On recopie les Sub-Type de l'AC3 standard Modification du profil AC3 standard Options/Setup > Playback > Smart Play : onglet Audio & Video Decoders – Liste Audio Decoders – On sélectionne AC3 : <Configure> – Profil sélectionné : AC3 Filter – Ignore theses File Extensions : EVO, M2TS Cette modification du profil AC3 exclut les fichiers d'extensions EVO et M2TS Lire les DVD Haute Définition – Page 12/22 Vérification des paramètres du Source Filter EVO Options/Setup > Playback > Smart Play : onglet Source Filters & Splitters – Liste Source Filters – On sélectionne EVO : <Configure> – Profil sélectionné : Haali Media Splitter – Source Filter(s) : Haali Media Splitter – This filter is also a Splitter Filter : il est important de le cocher – Use the following file Extensions : EVO, EVOB Bien que les fichiers .m2ts ne soient directement associés, ils sont reconnus par Haali Media Splitter (à priori ils sont associés dans le Source Filter MPEG2 Transport) On a ici utilisé ffdshow pour VC-1 car le filtre WMV Decoder DMO semble causer des sautes d'images pour certains films (comme Matrix Reloaded) Utiliser les filtres d'Arcsoft Il semblerait que les filtres Arcsoft Audio Decoder HD et Arcsoft Video Decoder travaillent dans GraphEdit si on utilise Arcsoft MPEG Demux au lieu de Haali Media Splitter Exemples Blu-Ray Starship Troopers – Fichier : .m2ts – Video : VC1 (WMVideo Decoder DMO) – Audio : Le Graph utilisé : – Lire les DVD Haute Définition – Page 13/22 Lire les DVD Haute Définition – Page 14/22 L'interface "Customized Media Mode" de Zoom Player Ce texte est basé sur le guide du site Zoom Player : http://www.inmatrix.com/articles/custommedia.shtml Pour lire un fichier audio/video une suite de composants (Filters) sont liés entre eux et forment un Graph. Chaque filtre a une fonctionnalité propre. Un filtre lit les données du disque dur, du CD ou DVD (Source Filter), un autre filtre sépare les données en Audio, Video et autres types (Splitter Filter). Chaque type de donnée est alors envoyé dans un filtre spécifique qui la décode (Decoder Filter), elle peut alors être modifiée par des filtres additionnels (Transform Filters), et finalement elle est prise en charge par des filtres liés aux interfaces physiques pour afficher la video et diffuser l'audio (Renderer Filters) Voici un schéma créé avec GraphEdit qui illustre cela pour une video AVI, en DivX video et MP3 audio : Les filtres ont des connecteurs (Pins), chacun contient un flot de données en entrée ou en sortie. En faisant un clic droit sur le connecteur d'entrée (in) de ffdshow on peut afficher ses propriétés et obtenir ce type d'informations (le filtre doit avoir été enregistré au préalable) : L'information intéressante ici est la chaîne "Sub Type" {33564944-0000-0010-800000AA00389B71}. Cette chaîne identifie le type de données passant par le connecteur, ici des données DIVX v3. FFDShow contient une liste de "Sub Type" dont il peut accepter la connexion Si plus d'un filtre peut accepter ce Sub Type, il y a possibilité de conflit, et c'est là où l'interface "Customized Media Playback" entre en jeu au lieu de laisser DirectShow (Windows) choisir le filtre qu'il devrait utiliser, Zoom Player vous permet de sélectionner le filtre. On peut choisir les renderers Audio et Video utilisés par défaut (DVD:Smart), ceux-ci peuvent être passés outre si un type de media particulier requiert un renderer Audio ou Video pour travailler Lire les DVD Haute Définition – Page 15/22 proprement L'option "Use Indirect Connection" (Smart Play>settings & Black List) utilisée pour du debug (la décocher en utilisation normale), permet à DirectShow d'insérer des filtres s'il pense qu'ils sont justifiés, si une connexion direct entre deux filtres ne fonctionne pas. De même pour l'option "Show Smart Play graph creation errors" qui affiche des infos en cas d'erreur Source Filters spécifiques Par défaut DirectShow présente à Zoom Player le bon Source Filter pour un fichier media donné. Cependant certains types de fichiers ne peuvent pas être détectés automatiquement, ou on a une détection incorrecte, on peut alors définir le flitre à utiliser en accord avec l'extension du fichier. Dans Smart Play>Source Filters & Splitters on sélectionne le Source Filter à utiliser et on clique sur "Configure", dans la boîte de dialogue qui s'ouvre on clique le bouton "Add Extension" et on saisit l'extension que l'on veut associer Si ce Source fliter est aussi un Splitter Filter on coche alors l'option "This filter is also a Splitter Filter" afin que Zoom Player n'essaye pas de connecter le Source Filter à un Splitter Filter. Splitters Audio/Video Une fois qu'un Source Filter est chargé, Zoom Player essaye de le connecter à un Splitter Filter. On peut voir les Sub Types acceptés par ce filtre dans Smart Play>Audio/Video Splitters, sélection du Splitter Filter et clique sur le bouton "Configure". On peut aussi obtenir le Sub Type en cours avec GraphEdit comme montré ci-dessus Decoders Audio & Video Une fois que le Splitter est connecté au Source Filter, il présente un ou plusieurs connecteurs en sortie contenant les données Audio, Video et autres, avec un format propre au Sub Type. Comme les Splitter Filters, les Decoders Filters ont une liste des Sub Types qu'ils acceptent. Par contre on peut ajouter plus d'un filtre, le premier filtre sera le Decoder Filter, les suivant seront des Transform Filter. On peut aussi outre passé le Renderer standard si besoin Certains formats ne requière aucun Decoder Filter (formats RAW comme audio PCM ), pour ces formats on peut utiliser le "Null Filter". Chaque editeur de flitre (ouvert avec le bouton Configure) contient une section Profile : les profiles sont utilisés pour sauvegardés les listes de filtres Quand on affiche les propriétés d'un connecteur dans GraphEdit, le Sub Type peut être affiché comme un nom au lieu de la chaîne entre {}. Ces chaînes peuvent être trouvées dans le SDK de DirectShow sous "uuids.h" ou "ksuuids.h" Construire un Graph DVD Introduction On montre ici comment construire son propre Graph DVD (Profile) avec GraphEdit et puis le convertir pour être utilisé avec Zoom Player Lire les DVD Haute Définition – Page 16/22 Eléments nécessaires • • Les DVD Decoder Filters enregistrés. Microsoft's GraphEdit Enregistrements des filtres On peut enregistrer (c'est-à-dire les installer) les filtres à l'aide de Zoom Player ou manuellement par Démarrer>Exécuter et taper la commande : regsvr32 "c:\program files\intervideo\common\bin\iviaudio.ax" par exemple pour enregistrer le Decoder Filter audio de WinDVD Pour le désinstaller on utilise : regsvr32 /u "c:\program files\intervideo\common\bin\iviaudio.ax" En général les filtres utilisent l'extension "ax" ou "dll" Une liste des filtres les plus courants "iviaudio.ax" "ivivideo.ax" "claud.ax" "clvsd.ax" "DSCinemAudioDecoder.dll" "DSCinemVideoDecoder.dll" - WinDVD Audio Decoder filter. - WinDVD Video Decoder filter. - PowerDVD Audio Decoder filter. - PowerDVD Video Decoder filter. - CineMaster v4 Audio Decoder filter. - CineMaster v4 Video Decoder filter. GraphEdit Menu Graph>Insert Filters Deux sections retiennent notre attention : – Audio Renders : contient les filtres utilisés pour sortir l'audio sur la carte son, soit comme Lire les DVD Haute Définition – Page 17/22 – donnée décodée, soit en utilsant la sortie digital SP/DIF DirectShow Filters : tous les autres filtres requis requies pour décoder une source DVD Les filtres ont des connecteurs d'entrée et de sortie : l'infromation est passée entre un connecteur de sortie et un connecteur d'entrée On commence la construction d'un Graph DVD avec le DVD Navigator Filter : c'est lui qui lit les données RAW du disque DVD et le partage en trois flots (Video, Audio et sous-titres (Sub-Picture)). Puis on ajoute le Video Decoder : on utilise ici le PowerDVD Decoder (Cyberlink Video/SP Decoder), ce filtre décode la vidéo DVD et les sous-titres sous forme de données qui peuvent être utilisées par d'autre filtres afin d'afficher les données décodées On ajoute l'Audio Decoder (Cyberlink Audio Decoder) : ce filtre décode le flot AC3 dans un format utilisable (tout format son, dépend des capacités de ce filtre) On a ensuite ajouté le "Line 21 Decoder" : ce filtre Line 21 Decoder décode les données situées dans ce qui est nommé "Line 21 Closed Captions", système utilisé par NTSC pour encoder de l'information tels que des titres cachés dans le signal vidéo Ona ensuite ajouté le filtre "Overlay Mixer" : il permet d'une part part le fonctionnement du contrôle des couleurs (Overlay Color Controls) et il aussi utilisé pour composer l'image (composition des sous-titres sur l'image vidéo). On ajoute le "Video Renderer" : sous XP il y a deux Video Renderer, on utilise celui avec le code "{70E102B0-5556-11CE-97C0-00AA0055595A}", l'autre n'étant pas approprié pour la lecture des DVD (L'utilitaire DirectShow Filter Manager permet de voir ce code : CLSID) Enfin on ajoute le "Audio Renderer" : plusieurs Audio Renderes sont disponibles, on peut utiliser celui spécifique à la carte son ou utiliser le "Default DirectSound" ou le "Default WaveOut". Par exempe la SB Live requière "WaveOut" sinon vous ne serez pas capable d'obtenir un fonctionnement correcte de SP/DIF. Il faut maintenant connecter les filtres (l'ordre est important) : 1 – DVD Navigator Video > Cyberlink Video Decoder Video In 2 – DVD Navigator SubPicture > Cyberlink Video Decoder SubPicture In 3 – DVD Navigator AC3 > Cyberlink Audio Decoder Audio In 4 – Cyberlink Video Decoder Closer Caption Out > Line 21 Decoder XForm In 5 – Cyberlink Video Decoder Video Out > Overlay Mixer Input0 6 – Line 21 Decoder XForm Out > Overlay Mixer Input2 7 – Overlay Mixer Output > Video Renderer Input 8 – Cyberlink Audio Decoder Audio Out > Default DirectSound Audio Input On obtient un Graph qui ressemble à cela : Lire les DVD Haute Définition – Page 18/22 Pour tester ce Graph, on insert un DVD dans le lecteur, puis menu Graph > Play : si c'est ok, une fenêtre doit s'ouvrir et jouer le DVD Pour certains filtres un clic-droit affiche une fenêtre de dialogue propre au filtre (on peut avoir besoin de stopper pour l'afficher) GraphEdit vers Zoom Player Dans GraphEdit on exporte le Graph au format XML L'utilitaire XML2Zoom va permettre de réaliser cette conversion, en exécutant la commande : "c:\program files\xml2zoom.exe" "d:\my graphs\dvdplayer.xgr" Un fichier "zplayer.dvdgraph" est créé : on le renomme avec un titre correspondant à son contenu comme par example "PowerDVD Standard Graph.dvdgraph". Il est imératif de conserver l'extension dvdgraph afin que Zoom Player le reconnaisse comme un profile DVD Graph On ouvre ce ficher dans un editeur de texte, on a ainsi : // Zoom Player DVD Graph conversion of [..\..\graphedit_test.xgr]. LoadFilter({79376820-07D0-11CF-A24D-0020AFD79767},Default DirectSound Device) LoadFilter({70E102B0-5556-11CE-97C0-00AA0055595A},Video Renderer) LoadFilter({284DC28A-4A7D-442C-BC2E-D7480556E4D8},CyberLink Audio Decoder (PDVD7)) LoadFilter({CD8743A1-3736-11D0-9E69-00C04FD7C15B},Overlay Mixer) LoadFilter({6E8D4A20-310C-11D0-B79A-00AA003767A7},Line 21 Decoder) LoadFilter({8ACD52ED-9C2D-4008-9129-DCE955D86065},CyberLink Video/SP Decoder (PDVD7)) LoadFilter({9B8C4620-2C1A-11D0-8493-00A02438AD48},Source 0) ConnectPin(Source 0,Video,CyberLink Video/SP Decoder (PDVD7),Video In) ConnectPin(Source 0,AC3,CyberLink Audio Decoder (PDVD7),In) ConnectPin(Source 0,SubPicture,CyberLink Video/SP Decoder (PDVD7),SubPicture In) ConnectPin(CyberLink Audio Decoder (PDVD7),Out,Default DirectSound Device,Audio Input pin (rendered)) ConnectPin(CyberLink Video/SP Decoder (PDVD7),Video Out,Overlay Mixer,Input0) ConnectPin(CyberLink Video/SP Decoder (PDVD7),~Closed Caption Out,Line 21 Decoder,In) ConnectPin(Line 21 Decoder,Out,Overlay Mixer,Input2) ConnectPin(Overlay Mixer,Output,Video Renderer,In) – – LoadFilter(FilterID,FilterName) : charge le filtre spécifié dans le Graph, FilterID eput être obtenu en chargeant le filtre dans GraphEdit et en le sauvegardant en XML. Utiliser le FilterName donné par GraphEdit. On peut aussi utiliser l'utilitaire DirectShow Filter Manager ConnectPin(SourceFilterName,SourcePinName,DestinationFilterName,DestinationPinNa me) : pour Source et Destination Filter Name on utilise le même nom que pour LoadFilter, les Pin Name peuvent être trouvé dans le fichier XML exporté par GraphEdit On va ajouter les fonctions qui précisent à Zoom Player quels fichiers de filtres seront utilisés, ce sont les noms de fichiers de filtres qui ont éé originalement enregistrés, un chemin complet n'est pas requis. Cette information est requise de façon à ce que Zoom Player soit capable d'enregistrer/supprimer ces filtres automatiquement en utilisant le bouton correspondant dans la page de configuration DVD Pour chaque filtre on additionne la ligne : DefineFilter(filtername) Lire les DVD Haute Définition – Page 19/22 – DefineFilter(FileName) : définit le filtre à utiliser par le Graph, permet de l'enregistrer/supprimer à travers l'interface utilisateur, on ne précise pas de chemin On a jouté les lignes : DefineFilter(qdvd.dll) DefineFilter(CLAud_w.ax) DefineFilter(CLVSD.ax) DefineFilter(quartz.dll) Le fichier sauvegardé est copié dans le sous-répertoire DVDGraph de Zoom Player, qui doit alors être listé dans Zoom Player Lire les DVD Haute Définition – Page 20/22 Utiliser SmartPlay On y accède avec Options > Smart Play Introduction à Smart Play Smart Play est une fonctionalité qui précise à Zoom Player comment il doit lire et décoder les fichiers audio/video. Enable Smart Play (Overrides the Windows Decoder / Filter selection) En cochant cette case Zoom Player utilise les éléments définis par l'utilisateur pour décoder l'audio/video, sinon Zoom Player laisse Windows choisir, ce qui ne donnera pas forcement le meilleur résultat. Auto-Configure En pressant ce bouton, Zoom Player rescanne votre système pour tout changement, et se configure automatiquement afin d'utiliser les meilleurs composants qu'il peut trouver. Toutes les modifications manuelles réalisées seront effacées. Settings & Black List – – – – Use Indirect Connection when Connecting Filters : utilisée pour du debug (la décocher en utilisation normale), permet à DirectShow d'insérer des filtres s'il pense qu'ils sont justifiés, si une connexion direct entre deux filtres ne fonctionne pas. Show Smart Play graph creation errors (useful for debugging) : permet à Zoom Player de vous informer de tout problème résultant de la connexion entre les éléments utilisés pour la lecture audio/video. Disable Smart Play for files with the following extensions (separate with ";") : tout fichier avec une extension précisée dans cette zone, sera lu avec la méthode standard Microsoft, ceci sera par exemple utile pour lire des données DVB TV où les composants sont connectées d'une manière spécifique Prevent the following filters/decoders from being used : empêche les filtres indiqués d'être utilisés par Windows dans le cas où Smart Play n'arrive pas à lire le fichier audio/video Source Filters & Splitters Les listes "Source Filters" and "Audio/Video Splitters" contiennent une liste de profils qui indiquent à Zoom Player quels composants à utiliser pour lire (Source Filtres, qui lit le fichier) et analyse (Audio/Video Splitters, qui décomposent le fichier en différents types de composants tels que les flux audio et video) Chaque entrée de la liste représente un format de fichier. Vous pouvez configurer chaque format pour utiliser différent composants pour lire et analyser. Configuration d'un format de "Source Filters" On sélectionne un profil et on clique le bouton <Configure> Pour un format on peut avoir plusieurs profils, Zoom Player utilisant d'abord le premier de la liste, puis le suivant en cas d'échec, ... Lire les DVD Haute Définition – Page 21/22 – – – Source Filter(s) : on précise ici le ou les Source Filters utilisés, c'est le composant qui lit le fichier source, si celui-ci a aussi le rôle de splitter qui analyse le fichier et le décompose en flux audio, video et sous-titres, on cochera la case "This filter is also a Splitter Filter", afin que Zoom Player n'essaye pas de localiser ultérieurement un splitter additionel Use the following file Extensions : on indique ici l'extension des fichiers qui seront lus par ce profil. Force Sub-Type (Keep clear to use the Filter Specified Sub-Type) : dans le cas où le Source Filter n'arrive pas à identifier les filtres de décodage audio/video, on peut forcer ici le Sub-Type correspondant à ce format pour empêcher cet échec. Configuration d'un format de "Audio/Video Splitters" Un Splitter est un composant qui prend son entrée d'un Source Filter et analyse les données pour les décomposer dans ses différents flux (audio, video, sous-titres, etc). Un Splitter sait qu'il est compatible avec un Source Filter grace à son identificateur Sub-Type (spécifié aussi comme CLSID) : c'est une chaîne unique que le Splitter s'attend de voir du Source Filter. Un Splitter peut décomposer divers formats de fichier et donc accepter plusieurs Sub-Type. On sélectionne un profil et on clique le bouton <Configure> Pour un format on peut avoir plusieurs profils, Zoom Player utilisant d'abord le premier de la liste, puis le suivant en cas d'échec, ... Splitter Filter : on précise ici le Splitter utilisé Restrict to these File Extensions (blank = accept all extensions) : c'est ce qu'on appelle une lise blanche, seules les extensions indiquées seront utilisées par le profil – Ignore these File Extensions : c'est ce qu'on appelle une liste noire, les extensions indiquées ne seront pas prises en compte La conjugaison de la liste blanche et de la liste noire permet de créer des profils séparés pour des fichiers ayant le même format mais avec des extensions différentes et ainsi d'utiliser différents composants pour le même format de fichier. – Accept the following Media Sub-Types : on précise ici les Sub-Types auquels le Splitter s'attend du Source Filter. – – Audio & Video Decoders Les listes "Audio Decoders" et "Video Decoders" contiennent une liste de profils qui indiquent à Zoom Player quels composants il doit utiliser pour décoder les flux Audio et Video (une fois que le fichier source a été lu et analysé par les Source Filters et Splitters). Chaque entrée de la liste représente un format de fichier. Vous pouvez configurer chaque format pour utiliser différent composants pour décoder. Configuration d'un format de "Audio/Video Decoders" On sélectionne un profil et on clique le bouton <Configure> Pour un format on peut avoir plusieurs profils, Zoom Player utilisant d'abord le premier de la liste, puis le suivant en cas d'échec, ... – – Decoding Filter(s) : on précise le ou les filtres utilisés pour le décodage Use Renderer Override : on précise que l'on garde le Render par défaut (Keep Default ou alors on précise un Renderer à utiliser, ce qui permet d'utiliser différents périphéques audio ou Lire les DVD Haute Définition – Page 22/22 – – – différentes technologies de rendu video pour des formats donnés Restrict to these File Extensions (blank = accept all extensions) : c'est ce qu'on appelle une lise blanche, seules les extensions indiquées seront utilisées par le profil Ignore these File Extensions : c'est ce qu'on appelle une liste noire, les extensions indiquées ne seront pas prises en compte Accept the following Media Sub-Types : on précise ici les Sub-Types auquels le Decoder s'attend du Splitter Comprendre le mérite des filtres DirecShow Chaque filtre DirectShow a un mérite qui lui est associé. Ces mérites déterminent quels filtres seront utilisés afin de construire le Graph des filtres, qui permet le décodage audio/video et leur rendu. Les valeurs suivantes sont utilisées : MERIT_PREFERRED = 0x800000 MERIT_NORMAL = 0x600000 MERIT_UNLIKELY = 0x400000 MERIT_DO_NOT_USE = 0x200000 MERIT_SW_COMPRESSOR = 0x100000 MERIT_HW_COMPRESSOR = 0x100050 Les applications peuvent gérer en interne le mérite, cette gestion prend alors le pas sur le choix système. Si l'application a le choix entre plusieurs filtres pour une tâche donnée, elle choisira d'abord celui qui a le merite le plus grand