Audio loopt uit de pas na transcodering wanneer de gegenereerde audiotijdlijn niet langer precies met dezelfde snelheid of op dezelfde tijdstempelgrens vooruitgaat als de video.
Direct afspelen kan het probleem verbergen, omdat de client de oorspronkelijke container en de oorspronkelijke timinginstructies gebruikt, terwijl transcodering een of beide streams decodeert, opnieuw samplet, opnieuw codeert, van tijdstempels voorziet, segmenteert en opnieuw muxet. Bepaal eerst of de fout een vaste verschuiving is, een geleidelijk toenemende afwijking of een sprong die ontstaat na zoeken of hervatten. Deze patronen wijzen op verschillende onderdelen van de mediapijplijn.
Classificeer de synchronisatiefout voordat je de transcoder wijzigt
Speel af vanaf het begin zonder te zoeken en noteer de afwijking aan het begin, in het midden en aan het einde. Gebruik een scène met een zichtbare impact of een medeklinker in gesproken tekst in plaats van de afwijking op basis van achtergrondmuziek te schatten.
Een vaste verschuiving die constant blijft, wijst op een aanvankelijke tijdstempel, een montagelijst, vertraging bij de ontvanger of een clientinstelling. Een afwijking die gestaag groter wordt, wijst op niet-overeenkomende kloksnelheden, een verkeerde interpretatie van de beeldsnelheid, uitrekken van audio of opnieuw samplen. Een plotselinge sprong na zoeken of hervatten wijst op tijdstempels van segmenten en herstarts.
Herhaal de meting met ondertiteling uitgeschakeld en met de handmatige audiovertraging van de client op nul. Een oplopende afwijking corrigeren met één statische verschuiving verbergt het symptoom alleen op één tijdstip.
Bewijs dat het oorspronkelijke bestand gesynchroniseerd is
Speel de bron lokaal af in een betrouwbare desktopspeler en speel deze direct af via een compatibele mediaclient. Test hetzelfde tijdsbereik waarin tijdens transcodering de afwijking optreedt.
Als de bron lokaal ook uit de pas loopt, controleer of herstel je het mediabestand voordat je de server wijzigt. Als de bron overal gesynchroniseerd blijft behalve via het getranscodeerde pad, bewaar het bestand dan en leg de afspeelbeslissing van de mediaserver, de FFmpeg-opdracht en de clientversie vast.
Gebruik als controle een tweede bestand met dezelfde codecs en een bekende, correcte tijdlijn. Eén problematische titel wijst op tijdstempels van de bron of metagegevens van de container; veel titels die op één client mislukken, wijzen op een gemeenschappelijke transcoder-, segmentatie- of spelerroute.
Stel vast welke streams daadwerkelijk worden geconverteerd
Controleer of de sessie alleen audio transcodeert terwijl de videostream wordt gekopieerd, een remux uitvoert zonder codecconversie, of video en audio volledig transcodeert. Deze paden creëren verschillende timinggrenzen.
Alleen audio converteren kan na zoeken nog steeds tot synchronisatieverlies leiden. In een Jellyfin-issue werd audio-ontregeling na zoeken gereproduceerd toen E-AC-3 of DTS naar AAC werd geconverteerd terwijl de videostream gekopieerd bleef.
Schakel over naar een door de client ondersteunde audiotrack en laat video, kwaliteit en ondertiteling ongewijzigd. Als de sessie dan Direct Play wordt en de afwijking verdwijnt, richt je onderzoek dan op audiotijdstempels, opnieuw samplen, kanaalconversie of de gegenereerde leveringscontainer, en niet op de prestaties van de videocodering.
Het ZimaSpace-overzicht van de audiotranscoderingspijplijn biedt het aangrenzende mechanisme om deze test op streamniveau te interpreteren.
Test het afspelen vanaf het begin, na zoeken en na hervatten
Voer drie gecontroleerde sessies uit met dezelfde client en hetzelfde bestand: ononderbroken afspelen vanaf nul, zoeken voorbij het gebufferde gedeelte en hervatten vanaf een opgeslagen positie. Noteer precies wanneer de synchronisatie verandert.
Er is gemeld dat getranscodeerde 4K-weergave vanaf het begin gesynchroniseerd blijft, maar verschuift na scrubben, hoofdstukwijzigingen of hervatten. De onderscheidende omstandigheid is een tijdlijnwijziging tijdens transcodering, niet het ruwe vermogen om de media te decoderen.
Een afzonderlijk Jellyfin-rapport toont synchronisatieverlies dat specifiek optreedt bij hervatten, zelfs wanneer het bronbestand zelf correct is. Dat patroon lokaliseert de afhandeling van hervatten voordat een remux van de hele bibliotheek nodig is.
Als alleen zoeken of hervatten mislukt, test dan een andere leveringscontainer of clientspeler wanneer de toepassing die optie biedt. Houd ononderbroken afspelen als controle aan, zodat het resultaat aan het gedrag van tijdstempelherstarts kan worden toegeschreven.
Controleer de timing van de bron, de beeldsnelheid en metagegevens voor het uitrekken van audio
Gebruik een mediaprobe om de beeldsnelheid en tijdsbasis van de video, de samplefrequentie van de audio, de starttijden van de streams, de duur, negatieve tijdstempels, montagelijsten en eventuele trackvertragingen of rekwaarden vast te leggen. Vergelijk de eerste en laatste presentatietijdstempels.
Sommige Matroska-tracks bevatten bewust een lineaire timingaanpassing om audio af te stemmen op een bron met een andere beeldsnelheid. In een Jellyfin-issue worden lineair verschoven audiotracks beschreven die bruikbaar blijven in de oorspronkelijke container, maar verkeerd worden verwerkt tijdens transcodering.
Als de audioduur proportioneel verschilt van de videoduur, maak dan een gecorrigeerde testkopie waarin de audio expliciet één keer opnieuw wordt gesampled of in de tijd wordt uitgerekt, en mux die vervolgens opnieuw met schone tijdstempels. Bewaar het origineel en test eerst één titel voordat je een batchreparatie uitvoert.
Controleer het gedrag van tijdstempels in HLS- of fMP4-segmenten
Controleer de transcoderopdracht op zoekvlaggen, het kopiëren van tijdstempels, de verwerking van negatieve tijdstempels, het HLS-segmenttype, de segmentduur en de vraag of een nieuw transcoderproces start nadat de client voorbij de gebufferde inhoud gaat.
Uit een Jellyfin-onderzoek naar tijdstempels bleek dat onnauwkeurig zoekgedrag een HLS-stream opnieuw kon starten met een verschuiving ten opzichte van de oorspronkelijke tijdlijn. De belangrijkste fout was een verkeerde uitlijning van getranscodeerde tijdstempels, die vervolgens invloed had op de door de client weergegeven timing.
Kopieer geen opdrachtregelvlaggen van een niet-gerelateerde versie naar een productiecontainer. Werk eerst de server en client bij of zet ze terug binnen ondersteunde paden, verwijder alleen opnieuw genereerbare transcodeersegmenten en vergelijk MPEG-TS-, fMP4- of native-spelergedrag wanneer de toepassing die opties biedt.
Pas de kleinst mogelijke oplossing toe en voer een controle over de volledige duur uit
Gebruik de oplossing die door tests is bevestigd: selecteer een compatibele audiotrack of client, vermijd het falende zoek- of hervatpad, wijzig de ondersteunde streamingcontainer, werk de mediaserverbuild bij of zet deze vast, of normaliseer één bron met beschadigde timingmetagegevens.
Codeer niet elke film opnieuw omdat één televisie-app uit de pas loopt. Een client-specifieke fout moet op het niveau van de client of het afspeelprofiel worden opgelost, terwijl een bron-specifieke lineaire afwijking thuishoort in de timingreparatie van dat bestand.
Controleer het herstelde pad van begin tot eind en herhaal vervolgens een zoekactie en hervatting rond het oorspronkelijke foutpunt. Het probleem is pas opgelost wanneer de verschuiving gedurende de volledige duur stabiel blijft, gegenereerde segmenten de verwachte tijdlijn behouden en dezelfde instellingen standhouden na een herstart van de client en het opnieuw aanmaken van de server.
Ondersteuning & Tips
Meer om te lezen

Kan Plex een GPU delen met een andere Docker-container?
Plex en een andere container kunnen vaak dezelfde GPU gebruiken, maar je moet de driverondersteuning, apparaattoewijzing, belasting van de video-engine, het geheugengebruik en het...

Hoe je kunt bepalen of een Plex-fout door de client of de server wordt veroorzaakt
Reproduceer hetzelfde item op een andere client, vergelijk het sessiepad en verzamel pas serverbewijs nadat de scope heeft uitgewezen waar de fout daadwerkelijk zit.

Plex-cache en tijdelijke opslag voor transcodering configureren
Bescherm de permanente Plex-status door tijdelijke transcodebestanden op geschikte lokale opslag te plaatsen en controleer vervolgens het opruimen, de beschikbare ruimte en het gedrag...

