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