Comment résoudre les problèmes de synchronisation audio/vidéo ?

 

 

 

 

1.- Recaler le son d'un DivX

2.- Recaler le son d'un MPEG

 

1.- Recaler le son d'un DivX, la méthode de Nicky

 

J'ai trouvé sur l'excellent site de Nicky (un site très complet d'un jeune passionné de divx qui a déjà pas mal d'expérience dans ce domaine), un article très intéressant sur les problèmes de synchronisation que rencontrent de plus en plus les utilisateurs de divx. Compte tenu de l'intérêt de la question je vous propose une traduction aussi fidèle que possible.

Je vous conseille vivement de visiter ce site plein de trésors.

Cet article n'est consacré qu'aux problèmes propres aux divx. Je vais tacher de publier un article personnel sur les problèmes propres aux MPEG 1 et 2 utilisés pour les vidéos et super vidéos-cd.

Il existe deux types de problèmes audio : la bande peut être étirée ou déplacée. L'exemple ci-dessous illustre ces deux situations :

Quand la synchronisation est parfaite les bandes vidéo et audio correspondent, comme l'illustre la première image au dessus. La première frame vidéo correspond à la première frame audio, et ainsi de suite.

Dans la seconde illustration, la bande son est déplacée, ce qui signifie que les bandes vidéo et audio ont une taille correcte, mais ces deux bandes démarrent à un moment différents.

Dans le troisième scénario, les bandes vidéo et audio ont des longueurs différentes car l'une d'entre elles est étirée.

Pour résoudre ce problème, vous devez vérifier votre film avec soin. Si l'audio est décalée de la même durée au début et à la fin du film, vous avez un problème de déplacement (cas n°2 ci-dessus). Si la bande son est calée au début mais décalée à la fin (ou inversement) c'est un problème d'étirement de celle-ci (troisième cas dans le diagramme ci-dessus). Bien sur, il n'est pas impossible que vous ayez les deux problèmes à la fois ;-P. Si c'est le cas, il faut tout d'abord recaler le film et la bande sonore au début et ensuite s'attaquer au problème de l'étirement.

Avant de commencer, vous avez besoin des softs suivants :
VirtualDub 1.4
Terabits AVI Info 1.2a vous trouverez le code source ici
Cool Edit (ou un soft équivalant)

 

 

 

 

1.- Régler le problème d'étirement :

Le plus souvent, la raison d'une désynchronisation provient d'une bande son étirée. Heureusement, le frère de Nicky a réalisé "Terabit AVI Info tool"  :). Il a travaillé dur pour créer ce soft. Terabits AVI Info tool doit rendre la synchronisation manuelle plus facile et il sert à deux trois autres choses dont vous rêviez. Je vous explique les autres fonctions de ce soft ici.

Avant de vous lancer dans des opérations périlleuses, je vous conseille de faire une sauvegarde de votre avi au cas où ça tournerais mal pour lui. Avi info ne se lance pas comme les autres softs. C'est plutôt une extension de windows. Il vous suffit de faire un clic droit sur le fichier avi que vous voulez recaler. Dans le menu contextuel, il y a une ligne Avi information que vous allez sélectionner.

Si vous avez Windows Me ou 2000 le clique droit ne fonctionne pas la première fois. Il faut sélectionner le chemin de l'exe.

Vous pouvez également utiliser le fichier clickme.reg pour résoudre ce problème (Special thanks to Jimbo for submitting this tip).

La fenêtre suivante apparaît :

Elle vous donne plus d'information que Windows media player ou Virtualdub non ?

Cliquez sur l'onglet Synchronize Audio ce qui lance une prévisualisation du film que vous allez recaler.

Examinez attentivement votre film avec le player, de préférence vers la fin du film pour voir de conbien la bande son dépasse. Trouvez une section où vous verrez visiblement les lèvres des acteurs. Trouvez une frame précédent un moment où un personnage va parler and et insérez son numero dans la case  'From' en dessous (1). Notez ensuite une frame où ils s'arrètent de parler et inscrivez là dans la case 'To' (1). Bien, à présent le film va aller et venir entre ces deux bornes. Celà rend la vie plus facile car la réponse est instantanée et il n'est pas nécessaire d'ouvrir le fichier, et de se prendre la tête pour comprendre où il y a un problème. Vous avez juste à presser le bouton apply et le soft commence son travail :).

ll faut noter si le son arrive avant que les lèvres bougent où si c'est l'inverse.

1. Si le son arrive après le mouvement des lèvres vous devez diminuer le frame rate!
2. Si le son arrive avant le mouvement des lèvres vous devez augmenter le frame rate !

 

 

 

De prime abord, ça ne paraît pas logique, mais pour allonger la vidéo il faut diminuer le framerate, et pour diminuer la vidéo il faut l'augmenter. Nicky donne un exemple pour démontrer celà :Si vous avez un paquet de cartes à jouer et que vous faites tomber 5 cartes sur le sol chaque seconde ce sera plus long de finir le paquet de cartes que si vous aviez 10 cartes par seconde. De la même façon, un film finira plus tôt si il montre plus de frames par seconde. Cela signifie qu'un frame rate plus élevé diminue la longueur du film..

Lancez votre film, si l'audio vient après le mouvement des lèvres cliquez une fois sur le bouton -0.001  (4) , et essayez encore le film. Si ça ne vas toujours pas, recommencez jusqu'à ce que ce soit correct. Ensuite utilisez la sélection fine avec le curseur (2) pour avoir une bande son parfaite. A l'inverse, si l'audio vient avant le mouvement des lèvres, utilisez le bouton +0.001 .

Si vous voulez changer plus radicalement la synchronisation, vous pouvez utiliser la barre de défilement (2) ou l'augmentation de plusieurs frames par seconde en utilisant les boutons +1 and -1 Frame  (3). Vous pouvez aussi entrer le nombre de frames au moyen du bouton 'Enter Desired Frame Rate' .

Normallement,  il convient de changer le frame rate dans une faible proportion, habituellement 0.001. Si le film a un frame rate de 25.000 fps et que je veux le diminuer je transforme le framerate en 25.001. S'il est encore trop long, je pousse à 25.002 puis 25.003 et ainsi de suite. Si je veux allonger le film je vais à 24.998 puis 24.997 ... Une fois qu'il est presque parfait, vous pouvez utiliser un taux de modification plus petit tel que 0.0001.

Si vous pensez que vous vous êtes complètement planté, utilisez le bouton 'reset'.

 

Valider ou ne pas valider ? là est la question.

Si vous validez, il est probable que le film fonctionnera correctement sur votre PC. Mais si vous envisagez de convertir votre divx en mpeg pour en faire un VCD, il y a peu de chances que celui-ci fonctionne correctement car les VCD ou SVCD nécessitent un frame rate d'exactement 25 (PAL) ou 29.970 fps (NTSC) pour être visible sur un lecteur DVD de salon ! Un frame rate de 25.998 ne fonctionnera pas.

D'autre outils de synchronisation permettent de changer le samplerate audio. Changer le samplerate audio permettrait de changer la synchronisation aussi efficacement qu'en changeant le framerate. Mais cela posera quand même des problèmes lors de la conversion du MPEG. Un DVD, SVCD ou VCD utilise exactement 44100Hz ou 48000Hz.

Pour ce problème, Terabits AVI Info tool est le seul utilitaire qui propose une solution. Notez que si vous changez le frame rate pour synchroniser le film, il propose un montant d'étirement (stretch)  (5).

A ce moment le film est resyncronisé mais le changement de framerate n'a pas encore été sauvegardé. Il faut prendre soin de noter le numéro de  'streach'. A présent vous allez utiliser ce numéro pour étirer la bande son avec Cool Edit. Mais avant vous devez extraire l'audio.

Changez pour l'onglet 'Utilities tab'. Sélectionnez un dossier pour sauvegarder le fichier wave, entrez un nom pour votre fichier wave que vous venez d'extraire, cliquez sur le bouton 'Extract Audio To Wave File'. Vous pouvez également utiliser Virtualdub pour extraire le Wave, mais le résultat sera le même.

Ouvrez le fichier wave que vous venez d'extraire avec Cool Edit et sélectionnez "Time/Pitch > Stretch..."

Copiez le montant de l'étirement dans la case "ratio" (entourée en rouge). Je vous suggère de choisir l'option 'Low Precision' a moins que vous préféreriez perdre beaucoup plus de temps.

Cool Edit 2000 convertit automatiquement l'audio en wave  PCM . Faites gaffe car cela peut encombre un giga sur votre disque dur ! Si vous utilisez un autre soft (Winamp par exemple), il faut encoder d'abord en PCM. 

 

Réintégrer l'audio :

Vous devez sauvegarder votre bande audio en PCM wave et la re multiplexer avec la vidéo.

 

2.- Que faire en cas de déplacement simple de l'audio ?

Ouvrez votre vidéo avec Virtualdub. Allez dans le menu Audio > Interleaving

une autre fenêtre apparait. Ne touchez à rien sauf la partie 'Delay audio track by'. regardez dans votre film si le son arrive avant ou après la vidéo. Si le son arrive avant le mouvement des lèvres vous utiliserez un nombre positif pour faire avancer la vidéo. Si le son arrive après les mouvements des lèvres, vous utiliserez un nombre négatif (-) pour faire reculer l'audio.

1000 ms  représentent seconde, 500 representent 1/2 seconde (Nicky poursuit à cet endroit la démonstration mais je crois qu'il nous prend pour des gogols). Admettons que le son apparaisse juste après que les acteurs aient parlé. Nous devons faire glisser un peu l'audio vers la gauche. Nous pouvons choisir  -250 comme paramètre. Cliquez sur OK et essayer de jouer le film avec Virtualdub. Recommencez jusqu'à ce que ce soit parfait.

Si les lèvres des acteurs bougent avant que vous entendiez le son, faite les mêmes réglages mais en utilisant un nombre positif.

Lorsque l'audio est redevenue correcte, sauvegardez le Film en choisissant :

Video > Direct stream copy

Audio > Direct stream copy

File > Save Avi

 

3.- Réparer un déplacement de l'audio combiné à un étirement.

Si vous êtes un looser, vous pouvez avoir à régler les deux problèmes à la fois ! Si ça vous arrive, commencez par régler le problème de déplacement avant de régler celui d'étirement. Il faudra juste, peut être, redéplacer la bande son une seconde fois après avoir régler la question de l'étirement.

 

4.- Une méthode alternative plus rapide :

Vous pouvez essayer la une méthode plus rapide avec Virtualdub en sélectionnant Video > Framerate

Ensuite, sélectionnez 'change so video and audio durations match'

En général, cette méthode ne fonctionne pas =(.

 

 

2.- Ma méthode pour recaler le son d'un MPEG

Cette méthode ne fonctionne que pour les film dont le décalage est constant. Les décalages variables sont dus, en général, à une transformation INUTILE d'un divx NTSC en MPEG Pal (les lecteurs de DVD de salon sont compatibles avec ces deux normes. Donc si vous avez un divx NTSC, transformez le en MPEG NTSC).

Il faut d'abord dé-multiplexer le son et la vidéo avec TMPGEnc. Dans le menu "files" sélectionnez "MPEG Tools".

Une nouvelle fenêtre s'ouvre. Sélectionnez "Simple De-Multiplex".

En "input" sélectionnez votre film.

Appuyez sur "Run".

Vous avez maintenant un fichier vidéo (M1v) et un fichier audio (mp2).

Il faut maintenant les multiplexer avec BBMPEG. Ouvrez l'application.

Cliquez sur "Stat encoding". Une fenêtre s'ouvre. Cliquez sur "Settings"

Dans l'onglet "input and output settinfs" chargez votre bande vidéo avec le bouton "open vs" et votre bande audio avec "open AS1" (si vous avez une autre bande audio, obtenue avec DVD2SVCD, vous pouvez la charger avec "Open AS2"). Ne vous occupez pas du reste.

Maintenant, dans l'onglet "Program stream settings" vous avez, tout en bas une fenêtre "startup delay". Vous pouvez modifier le départ des bandes son sachant que 1000 ms= 1 seconde. Utilisez la même méthode que celle expliquée pour les Divx pour repérer le décalage. Veillez à bien sélectionner si vous destinez votre MPEG à un VCD ou un SVCD.

Cliquez su "OK" pour revenir à la fenêtre d'encodage et appuyez sur "start".