La sincronizzazione mi ha sempre affascinato, o per essere precisi: perché un .ts può essere visualizzato in sincrono da lettori multimediali, mentre l'audio demuxed + video è ricomposto è fuori sincronoSincronizzazione audio/video, TS MPEG2; H264/AVC, comprensione PTS nel freno a mano
Quindi sto cercando di capire questo e cosa si può fare per impedirlo.
Ho letto quanto segue: https://trac.handbrake.fr/wiki/LibHandBrakeSync e la fonte di sync.c (disponibile anche sul wiki)
BitStreamTools hanno scritto una Teoria 101 sull'argomento anche (ma non posso collegare come Sono un nuovo utente, mi spiace)
Mentre pensavo che la mia comprensione di PCR/PTS fosse (concettualmente) corretta, ho difficoltà a seguire l'eccellente carta di sincronizzazione A/V del freno a mano.
La mia domanda è questa: c'è una spiegazione un po 'intuitiva (può essere breve, breve o lunga, a lungo) della sincronizzazione v/v? Mentre so che si può ricalcolare PTS da PCR se i pts audio o video sono corrotti (discontinuità?), Il freno a mano non sembra fare affidamento su questo, ma sul suo PTS interno. 0, + = 1/fps (~ = 5), 10, 15, ....
Sarebbe possibile ricalcolare gli offset PTS e correggere il .ts (binario) fissando tutti i valori PTS audio e video (e distorcendo tutti i DTS con lo stesso offset, quindi il lettore non "esaurisce i frame", per così dire), e quindi ha un .ts che può essere demulato, e le tracce isolate devono essere sincronizzate (se messe di nuovo insieme)?
MODIFICA: Oppure non sarebbe possibile risolvere utilizzando PCR per ricalcolare tutti i valori PTS in un dato .ts? Mentre capisco che alcuni frame/audio potrebbero essere danneggiati durante la trasmissione, quindi non possono essere presentati correttamente, lascerò la gestione di questo (ad esempio rimuovendo il video se è danneggiato e ha una parte audio corrispondente, inserendo x ms silenzio se il pacchetto audio è danneggiato, ecc.) in seguito, e per motivi di discussione presumo che tutti i frame siano intatti. (Ma poi i valori PTS sarebbe sempre corretto, però, o cosa?)
Appendice: Il mio introito sulla carta freno a mano A/V è questa: A "previsto" 100, è calcolato come punti di video (l'offset 100) - audio pts (0) - il PTS interno, per portare l'audio allo stesso tempo di presentazione, dando così un offset pts di 99. a 105 l'offset sarebbe 105-5 = 100, non 99, ma procediamo utilizzare 99 come offset poiché non è necessario ricalcolare (100-99 = 1. 1/fps < 100 ms). A 150, l'offset pts è calcolato di nuovo come i punti video sta diminuendo, al contrario di aumentare ...
Sono quasi sicuro di aver sbagliato completamente su questo, ma qualcuno può indicarmi la giusta direzione, per favore?
- Josh
Questo tutorial è abbastanza buono. Devo ancora trovare qualcos'altro che lo esponga come fa con tutti i dettagli grintosi. –