La synchronisation audio dérive après le transcodage lorsque la timeline audio générée n’avance plus exactement au même rythme ou selon les mêmes limites temporelles que la vidéo.
La lecture directe peut masquer le problème, car le client utilise le conteneur d’origine et ses instructions de synchronisation natives, tandis que le transcodage décode, rééchantillonne, réencode, horodate, segmente et remultiplexe l’un des flux ou les deux. Commencez par déterminer s’il s’agit d’un décalage fixe, d’une dérive qui augmente progressivement ou d’un saut introduit lors d’une recherche ou d’une reprise. Ces phénomènes orientent vers différentes parties de la chaîne multimédia.
Classifiez l’erreur de synchronisation avant de modifier le transcodeur
Lisez la vidéo depuis le début sans effectuer de recherche et relevez le décalage au début, au milieu et à la fin. Utilisez une scène avec un impact visible ou une consonne prononcée plutôt que de l’estimer à partir de la musique de fond.
Un décalage fixe qui reste constant suggère un horodatage initial, une liste de montage, un délai du récepteur ou un réglage du client. Un écart qui augmente régulièrement suggère des fréquences d’horloge incompatibles, une interprétation différente de la fréquence d’images, un étirement audio ou un rééchantillonnage. Un saut soudain après une recherche ou une reprise indique des horodatages liés aux segments ou au redémarrage.
Répétez la mesure avec les sous-titres désactivés et le réglage manuel du délai audio du client à zéro. Corriger une dérive progressive avec un simple décalage fixe ne fait que masquer le symptôme à un instant donné.
Vérifiez que le fichier d’origine est synchronisé
Lisez la source localement dans un lecteur de bureau fiable, puis en lecture directe dans un client multimédia compatible. Testez la même plage temporelle que celle qui dérive pendant le transcodage.
Si la source dérive également en lecture locale, inspectez ou réparez le fichier multimédia avant de modifier le serveur. Si la source reste synchronisée partout sauf lors de la lecture transcodée, conservez le fichier et récupérez la décision de lecture du serveur multimédia, la commande FFmpeg et la version du client.
Utilisez un second fichier avec les mêmes codecs et une timeline connue comme référence. Un seul titre problématique oriente vers les horodatages de la source ou les métadonnées du conteneur ; de nombreux titres qui échouent sur un même client orientent vers un transcodeur, un segmenteur ou un parcours de lecture commun.
Identifiez les flux réellement convertis
Vérifiez si la session effectue un transcodage audio uniquement avec copie du flux vidéo, un remultiplexage sans conversion de codec, ou un transcodage complet de la vidéo et de l’audio. Ces parcours créent des limites temporelles différentes.
Une conversion audio uniquement peut tout de même entraîner une désynchronisation après une recherche. Un problème Jellyfin a reproduit une désynchronisation audio après une recherche lorsque l’E-AC-3 ou le DTS était converti en AAC tandis que le flux vidéo restait copié.
Passez à une piste audio prise en charge par le client, en conservant la vidéo, la qualité et les sous-titres inchangés. Si la session passe en lecture directe et que la dérive disparaît, concentrez-vous sur les horodatages audio, le rééchantillonnage, la conversion des canaux ou le conteneur de diffusion généré, plutôt que sur les performances d’encodage vidéo.
La présentation ZimaSpace du pipeline de transcodage audio fournit le mécanisme complémentaire permettant d’interpréter ce test au niveau des flux.
Testez la lecture depuis le début, après une recherche et après une reprise
Exécutez trois sessions contrôlées avec le même client et le même fichier : une lecture ininterrompue depuis zéro, une recherche au-delà de la zone mise en mémoire tampon et une reprise depuis une position enregistrée. Notez précisément le moment où la synchronisation change.
Il a été signalé que la lecture transcodée en 4K restait synchronisée depuis le début, mais se décalait après un déplacement, un changement de chapitre ou une reprise. La condition déterminante est un changement de timeline pendant le transcodage, et non la simple capacité à décoder le média.
Un autre rapport Jellyfin montre une désynchronisation spécifique à la reprise, même lorsque le fichier source est correct. Ce schéma isole la gestion de la reprise avant tout remultiplexage généralisé de la bibliothèque.
Si seule la recherche ou la reprise échoue, testez un autre conteneur de diffusion ou un autre lecteur client lorsque l’application propose cette option. Conservez la lecture ininterrompue comme référence afin d’attribuer le résultat au comportement de redémarrage des horodatages.
Inspectez la synchronisation de la source, la fréquence d’images et les métadonnées d’étirement audio
Utilisez un outil d’analyse multimédia pour relever la fréquence d’images et la base de temps vidéo, la fréquence d’échantillonnage audio, les heures de début des flux, la durée, les horodatages négatifs, les listes de montage ainsi que les éventuelles valeurs de délai ou d’étirement des pistes. Comparez les premiers et derniers horodatages de présentation.
Certaines pistes Matroska contiennent intentionnellement un ajustement temporel linéaire afin de synchroniser l’audio provenant d’une source dont la fréquence d’images est différente. Un problème Jellyfin décrit des pistes audio à dérive linéaire qui restent exploitables dans le conteneur d’origine, mais sont mal gérées pendant le transcodage.
Si la durée audio diffère proportionnellement de la durée vidéo, créez une copie de test corrigée qui rééchantillonne ou étire explicitement l’audio une seule fois, puis remultiplexez-la avec des horodatages propres. Conservez l’original et testez un seul titre avant d’appliquer une réparation par lots.
Vérifiez le comportement des horodatages des segments HLS ou fMP4
Inspectez la commande du transcodeur pour vérifier les options de recherche, la copie des horodatages, la gestion des horodatages négatifs, le type de segments HLS, leur durée et la possibilité qu’un nouveau processus de transcodage démarre lorsque le client dépasse le contenu mis en mémoire tampon.
Une analyse des horodatages Jellyfin a montré qu’un comportement de recherche imprécis pouvait redémarrer un flux HLS avec un décalage par rapport à la timeline d’origine. Le problème clé était constitué d’horodatages transcodés mal alignés, ce qui affectait ensuite la synchronisation rendue par le client.
Ne copiez pas dans un conteneur de production des options de ligne de commande provenant d’une version sans rapport. Commencez par mettre à jour ou rétrograder le serveur et le client dans le cadre des parcours pris en charge, supprimez uniquement les segments de transcodage régénérables, puis comparez le comportement en MPEG-TS, fMP4 ou avec le lecteur natif lorsque l’application propose ces choix.
Appliquez la correction minimale et effectuez une vérification sur toute la durée
Suivez la branche confirmée par les tests : sélectionnez une piste audio ou un client compatible, évitez le parcours de recherche ou de reprise défaillant, modifiez le conteneur de diffusion pris en charge, mettez à jour ou figez la version du serveur multimédia, ou normalisez une source dont les métadonnées de synchronisation sont défectueuses.
Ne réencodez pas tous les films parce qu’une application de télévision dérive. Un problème propre au client doit être corrigé au niveau du client ou du profil de lecture, tandis qu’une dérive linéaire propre à la source doit être réparée dans le fichier concerné.
Vérifiez le parcours corrigé du début à la fin, puis répétez une recherche et une reprise près du point de défaillance initial. Le problème n’est résolu que lorsque le décalage reste stable sur toute la durée, que les segments générés préservent la timeline attendue et que les mêmes réglages résistent au redémarrage du client et à la recréation du serveur.
Assistance et conseils
Plus à lire

Plex peut-il partager un GPU avec un autre conteneur Docker ?
Plex et un autre conteneur peuvent souvent accéder au même GPU, mais vous devez tester la prise en charge des pilotes, le mappage des...

Comment déterminer si une erreur Plex vient du client ou du serveur
Reproduisez le même élément sur un autre client, comparez le chemin de session, puis recueillez les preuves côté serveur uniquement après que la portée...

Comment configurer le cache de Plex et le stockage temporaire du transcodage
Protégez l’état persistant de Plex en plaçant les fichiers temporaires de transcodage sur un stockage local adapté, puis vérifiez le nettoyage, l’espace libre et...

