version PDF complète - Zeelay

Transcription

version PDF complète - Zeelay
Lire des vidéos Mpeg4
sur Dreamcast
Ou comment régler le problème de désynchronisation audio/vidéo
lors de la lecture de fichiers Divx ou Xvid
Copyright Igor Barzilai 2003-2005 - http://zeelay.free.fr - Synchrodivx
Mentions légales
Droits d'utilisation de ce document
Vous pouvez consulter ce document, l'imprimer, le photocopier, et/ou le diffuser sur support papier
uniquement.
Il est interdit de diffuser ce document dans un format électronique ou informatique sans autorisation
préalable de l'auteur.
Il est interdit de modifier, de transformer ou de copier tout ou partie du contenu de ce document
sans autorisation préalable de l'auteur de ce document.
Vous êtes libres de divulguer l'adresse du site http://zeelay.free.fr ou http://zeelay.free.fr/synchrodivx afin de partager ce document avec d'autres personnes par email ou d'en faire référence sur tout
support informatique ou papier.
L'utilisation de ce document ne met nullement en cause la responsabilité de son auteur quant à des
dégradations éventuelles, qu'elles soient corporelles ou matérielles.
Les idées ou conseils exposés dans ce document ne garantissent aucun résultat et le fait de suivre
ces conseils se fait à vos propres risques et périls.
Le fait que vous soyez suivi par la justice pour utilisation frauduleuse ou non de logiciels de
supports ou de contenus audios et/ou visuels ne met nullement en cause l'auteur de ce document.
Logiciels préconisés
Les logiciels présentés ici sont gratuits dans le cas d'une utilisation personnelle. Pour en savoir plus
concernant les droits d'utilisation de ces logiciels, référez-vous à leurs mentions légales respectives.
Rappel sur les droits de programmes audiovisuels
La pratique de copies de programmes audiovisuels sans autorisation des détenteurs de leurs droits
est illicite et les contrevenant s'exposent à des poursuites judiciaires. C'est le cas s’ils ne possèdent
pas la version originale d’un film ou s’ils ne sont pas propriétaires des droits d’auteurs du
programme audiovisuel. Amusez vous donc avec vos vidéos de vacances prises au camescope et
récupérées avec une carte d'acquisition vidéo, ou avec vos DVDs.
Copyright Igor Barzilai 2003-2005 - http://zeelay.free.fr - Synchrodivx
Avant-propos
Concernant les logiciels libres
Lorsque j'ai écrit cet article pour ACBM, j'utilisais le codec Divx. Depuis, j'ai suivi un certain
courant m'amenant à l'utilisation de logiciels libres et ai depuis opté pour Xvid, compatible avec le
Divx. Je n'ai pas encore fait les tests nécessaires et l'article qui suit n'a pas encore été adapté au
format libre Xvid. Il existe donc une certaine contradiction liée au fait que je préconise aujourd'hui
le format Xvid, alors que la notice que représente ce document soit orienté pour le Divx. Je ferai la
même remarque concernant les formats mp3 et ogg. Je vous prie de m'excuser de cette
contradiction non résolue et espère dans un avenir prochain y remédier.
Historique du projet
Je me suis remis à jouer aux jeux vidéos lorsque je me suis acheté une Dreamcast sur une brocante
alors qu'elle était considérée comme une console has-been. J'ai rapidement cherché sur Internet des
informations et ai découvert une communauté de fans bien décidés à ne pas la laisser mourir. Le
Divx avait le vent en poupe et un gars venait de développer un player Divx pour la Dreamcast. Je
me suis donc intéressé à la chose et ai poussé le petit microprocesseur 200 Mhz de la Dreamcast
dans ses derniers retranchements pour obtenir les meilleurs résultats audiovisuels possibles.
J'ai fait beaucoup de tests en sachant qu'un gros inconvénient résidait dans le fait qu'il fallait
absolument graver des CD non-réinscriptibles, la Dreamcast ne sachant pas lire de CD-RW. Il m'a
fallu griller un paquet de CD avant d’obtenir un résultat convenable.
Ainsi, j'ai rippé plusieurs de mes DVDs sur PC et en ai fait différentes version Divx/mp3 en
modulant les réglages de compression vidéo et audio jusqu'à obtenir un résultat optimum. Après des
dizaines de CD gravés, un seul problème persistait : certains films présentaient une
désynchronisation entre l'audio et la vidéo, phénomène qui s'accentuait au fur et à mesure de la
lecture du film. Même en baissant la qualité (bitrate), le problème persistait. On en causait dans les
forums internet, mais personne ne trouvait de solution. J'ai donc étudié le problème et grillé des
CDs pendant un an pour finalement trouver la solution... avec de la chance !
Avec cet article, vous aurez donc les conseils de base évitant ainsi les images gelées, légères
saccades, saccades violentes, son pourri, images horribles, voire même refus catégorique de lire la
vidéo, mais surtout vous aurez enfin la solution pour supprimer l'abominable effet de
désynchronisation de l'audio et de la vidéo. Cette astuce fonctionne théoriquement avec Xvid,
puisqu'il s'agit d'un paramétrage de VirtualDub et non du codec de compression vidéo. Ce problème
semble également traité sur des forums de lecteur Divx pour Pocket PC ou autres systèmes de faible
puissance. Je n'ai pas fait de test, mais la solution présentée ici peut s'avérer fonctionner.
Pour conclure
C'étaient les quelques remarques que je souhaitais faire avant de mettre cet article sur Internet. J'y
ai apporté quelques correctifs afin de le clarifier. J'espère que ce document vous sera bien utile,
n'hésitez pas à me laisser vos remarques et critiques par email en passant sur le site de synchrodivx.
Bonne lecture et bonne génération de vidéos !
Copyright Igor Barzilai 2003-2005 - http://zeelay.free.fr - Synchrodivx
Vieil amoureux de votre Dreamcast, vous continuez à vous promener sur le Web à la recherche de
quelques nouveautés à lui donner à manger... et en passant sur http://www.dcemulation.com, vous
découvrez le player Divx5 dans sa version Beta 4 ! Vous le récupérez, le gravez et le lancez... Ne
pensez pas pour autant que vos vidéos familiales Divx archivés sur des CD fonctionneront aussi
facilement que cela. Car elles doivent répondre à certains critères de qualité et de compatibilité pour
être lues correctement sur votre bonne vieille console Sega. Il faut griller un paquet de CD avant
d’obtenir un résultat convenable, je m’y suis donc collé ! J'ai rencontré de nombreux problèmes
durant mes aventures : images gelées, désynchronisation de l'audio et de la vidéo, légères saccades,
saccades violentes, son pourri, images horribles, voire même, refus catégorique de lire la vidéo !
Voici enfin la solution à vos problèmes de synchronisation. Suivez attentivement le guide !
Les outils
Bien sûr, votre PC doit être équipé du codec de décompression correspondant à votre fichier source,
du codec de compression vidéo Divx5 disponible gratuitement dans sa version standard sur
www.divx.com (ou Xvid non testé par l'auteur) et d’un codec de compression MP3 (ou ogg – non
testé par l'auteur) Il vous faut également un logiciel de génération de vidéos et Virtualdub
(www.virtualdub.org) semble tout indiqué. Téléchargez-les, installez-les, lancez Virtuadub et
ouvrez votre fichier Divx à transformer pour votre Dreamcast.
Copyright Igor Barzilai 2003-2005 - http://zeelay.free.fr - Synchrodivx
Résolution vidéo
La Dreamcast dispose d'un microprocesseur 128 bits Hitachi SH-4 RISC tournant à 200Mhz. C'était
très bien à l'époque, mais pas assez pour décompresser des vidéos Divx de grande résolution. Issues
d’un caméscope ou d'un DVD, elles font 720 x 576 pixels à 25 images par seconde. 10 368 000
pixels par seconde c’est beaucoup trop. Visez plutôt 1,8 millions, ou moins pour que la Dreamcast
s'en sorte honorablement.
Filtres
Pour certains aspects de votre vidéo, VirtualDub propose des filtres. Allez dans le menu Filter,
cliquez sur Add, puis double-cliquez sur Resize. Vous pouvez choisir n'importe quelle hauteur
multiple de 2 et largeur multiples de 4 (contrainte propre au Divx). Théoriquement, le player
DCDivx permet de monter à 480 x 480 pixels, mais dans la pratique, cette résolution est trop
élevée. Visez une résolution d’environ 320 x 200. Pensez à sélectionner precise bicubic comme
algorithme de réduction, afin d’éviter des effets indésirables.
D’autres filtres (facultatif)
Puisqu’on parle de filtres, d’autres sont disponibles, tels le réglage de la luminosité-contraste. Vous
pouvez également retailler l’image si vous souhaitez tronquer un ou plusieurs de ses bords,
notamment s’ils sont noirs. Cliquez alors sur Cropping. Cette dernière fonctionnalité n’est
disponible que si vous avez activé au moins un filtre.
Copyright Igor Barzilai 2003-2005 - http://zeelay.free.fr - Synchrodivx
Compression vidéo
Le bitrate
Il détermine la qualité de la vidéo et a une incidence directe sur le poids total du fichier généré. Plus
le poids de fichier obtenu est faible et plus la qualité sera faible. Mais si vous tablez sur une triop
bonne qualité, votre fichier sera illisible sur Dreamcast. Il faut viser juste !
Cochez Video/Full processing mode puis allez dans Video/Compression. Sélectionnez votre Codec
Divx5 puis configurez-le : Configure. Le premier onglet Divx Codec vous propose de nombreuses
jauges à régler, contentez-vous de mettre le Variable bitrate mode à 1-pass.
Réglez l’Encoding Bitrate à une valeur avoisinant les 650. Plus vous augmentez cette valeur,
meilleur sera le résultat, mais vous risquez d'obtenir des ralentissements à la lecture sur Dreamcast.
Evitez de dépasser 750. Allez ensuite dans l’onglet General Parameters et optez pour un Max
Keyframe Interval de 5.
Copyright Igor Barzilai 2003-2005 - http://zeelay.free.fr - Synchrodivx
Max Keyframe Interval
Lorsque l'on génère une vidéo compressée, toutes les images ne sont pas codées. Une première est
entièrement codée, et les suivantes ne définissent que les parties de l'image à modifier. Par exemple,
le décor ne change pas, mais un personnage en mouvement représentant une faible proportion de
l'image est redessiné. C'est un des principes de base permettant la compression de données :
chercher les redondances dans un fichier. C'est le codec de compression qui détermine quand il faut
générer une image partiellement et quand il faut en générer une entièrement. Une image entière
s'appelle image-clé ou Keyframe. Mais le codec peut parfois attendre jusu'à plusieurs centaines
d'images avant de placer une image-clé. Et dans ce cas, la dreamcast s'en sort très mal. Il faut donc
forcer le codec de compression à créer des images clés régulièrement en passant le paramètre
MaxKeyFrame à 5.
Copyright Igor Barzilai 2003-2005 - http://zeelay.free.fr - Synchrodivx
Copyright Igor Barzilai 2003-2005 - http://zeelay.free.fr - Synchrodivx
Paramètres audio
Compression audio
Cochez Audio/Full processing mode, puis allez dans Audio/Compression.... Choisissez MPEG
Layer-3 correspondant au codec MP3 et choisissez une qualité d’échantillonnage de 48kbits/s en 32
000 Hz mono (6kb/s). Vous obtiendrez un bon rapport qualité/poids de fichier, par contre, vous
perdrez vos éventuels effets stéréo. Rendez-vous enfin dans Audio/Interleaving..., et configurez
Preload à 0, puis Interleave audio every à 1000 ms.
Optimisez votre son (facultatif)
Votre fichier source regorge sûrement de mille trésors indésirables, tels le souffle, la saturation, les
bruits parasites et autres petits phénomènes acoustiques qui font le malheur des ingénieurs du son.
Nous ne nous attarderons pas sur l'ensemble de ces défauts auxquels correspondent un ou plusieurs
remèdes. Tournez-vous plutôt vers des ouvrages ou des sites spécialisés.
Copyright Igor Barzilai 2003-2005 - http://zeelay.free.fr - Synchrodivx
Résolution des problèmes de synchro
Si vous avez bien suivi les indications ci-dessus, certaines de vos vidéos fonctionneront, mais la
plupart vous poseront un grave problème de synchronisation entre l’image et le son lors de la
lecture sur Dreamcast, et ce, bien que tout se passe très bien sur PC. Cet écart n'est pas perceptible
au début de la lecture du film, mais seulement après quelques dizaines minutes de lecture.
Pour y remédier, il faut que le nombre de frames (images) soit multiple de la fréquence d'image à la
seconde (fps). Vous trouverez le fps dans File/File information sous l’intitulé Number of keyframes.
En général, votre vidéo fait 25 images par secondes. Il faut donc que la vidéo ait un nombre
d’image totale multiple de 25. Allez dans video/ Select Range et mettez une valeur de Length
(frame) multiple de 25 de manière à couper la fin de votre vidéo de quelques images. La chose est
moins simple dans le cas d’une vidéo à 24,997 images secondes, mais la règle reste la même :
tronquez la fin de votre vidéo pour obtenir un nombre de frames multiple du nombre d’image à la
seconde. Il ne vous reste plus qu’à générer File/save as AVI..., à graver et à savourer votre vidéo sur
votre console préférée !
Copyright Igor Barzilai 2003-2005 - http://zeelay.free.fr - Synchrodivx
Alors pourquoi ?
Oui, pourquoi ce bug du lecteur DCDivx ? J'avoue m'être longtemps posé la question et ai
finalement monté une hypothèse. Je vous propose cette théorie de la désynchronisation audio/vidéo
avec DCDivx :
Lorsqu'il commence à lire le film, le player DcDivx regarde le temps total afin de bien jouer l'audio.
L'objectif de cette estimation est de jouer le son en continu même s'il a du mal à jouer les images
pour cause de temps machine manquant.
ex : une vidéo de 25fps avec 60 keyframes sera déduite comme ayant 25x60 image soit 1500 et une
durée de 1500/25 secondes, soit 60 secondes.
Mais si la vidéo fait 1524 images, connaissant la fréquence de 25fps, le player déduira encore 60
keyframes soit une durée de 60 secondes... ce qui est faux !
En effet, 1525/25 donne 60,96 soit une partie entière de 60.
Connaissant cela, le player va jouer le son en le synchronisant sur cette durée de 60 secondes, et va
jouer chaque image à la fréquence de 25fps. Résultat des courses, le son sera fini alors qu'il restera
24 images à jouer. Cela produira donc un décalage d'1/24ème de seconde à la fin de la vidéo.
Copyright Igor Barzilai 2003-2005 - http://zeelay.free.fr - Synchrodivx