Audio/video-Synchronisation, TS MPEG2;H264/AVC, Verständnis-Punkte in Handbrake
Synchronisation hat mich immer fasziniert, oder um genauer zu sein: warum ein .ts kann man im sync von media-Playern, während die demuxt audio+video zusammengesetzt ist out of sync.
So, ich bin versucht, dies zu verstehen, und was kann getan werden, um es zu verhindern.
Habe ich Folgendes gelesen:
https://trac.handbrake.fr/wiki/LibHandBrakeSync
und die Quelle der Synchronisierung.c (auch im wiki verfügbar)
BitStreamTools geschrieben haben, eine Theorie 101 über das Thema auch (aber ich kann nicht link, wie ich bin ein neuer user, sorry)
Weile dachte ich, mein Verständnis von PCR/PTS war (konzeptionell) richtig, ich habe eine harte Zeit folgenden Handbremse ausgezeichneten A/V-sync-Papier.
Meine Frage ist: ist es eine eher intuitive (es kann kurz sein, kurz oder länger, wie lange) Erklärung von a/v-Synchronisation? Obwohl ich weiß, dass kann man neu berechnen Punkte aus der PCR, wenn die audio-oder video-pts beschädigt ist (Diskontinuität?), Handbremse scheint nicht auf ihn verlassen, sondern auf seine innere-Punkte. 0, += 1/fps (~=5), 10, 15, ....
Wäre es möglich, die Neuberechnung der Punkte offsets und korrigieren .ts (Binär) durch die Festsetzung alle audio-und video-PTS-Werte (und neigen alle DTS mit dem gleichen Versatz, so dass der Spieler nicht "run out of frames", sozusagen), und haben damit eine .ts, das kann demuxt, und die isolierten tracks dann in sync (wenn Sie wieder zusammen setzen)?
BEARBEITEN:
Oder wäre es nicht möglich, zu beheben durch die Verwendung von PCR, um eine Neuberechnung aller PTS-Werte in einem bestimmten .ts? Ich verstehe zwar, dass einige Bilder/audio könnte beschädigt werden übertragen, so kann es nicht korrekt dargestellt, ich überlasse die Handhabung dieser (wie zu entfernen das video, wenn es beschädigt ist und über die entsprechenden audio-Teil, das einfügen von x ms schweigen, wenn das audio-Paket ist beschädigt etc.) später, und im Rahmen dieser Erörterung werde ich voraussetzen, alle Bilder sind intakt. (Aber dann die PTS-Werte würde immer richtig sein, obwohl, oder was?)
Anhang:
Mein nehmen auf die Handbremse A/V-Papier ist dieses:
Auf "erwartete" 100, der Versatz errechnet sich als video-pts (100) - audio-Punkte (0) - die innere-Punkte, um die audio-bis zu der gleichen Präsentation Zeit, so dass ein pts offset von 99. bei 105 der offset wäre 105-5 = 100 und nicht 99, aber wir gehen zu verwenden, 99 als ausgeglichen, da es keine Notwendigkeit, neu zu berechnen (100-99 = 1. 1/fps < 100ms). Bei 150, die pts-offset berechnet sich wieder als die video-Punkte zurückgegangen ist, im Gegensatz zum zunehmenden...
Bin ich fast sicher ich bin komplett irren, aber kann mir jemand zeigen in die richtige Richtung, bitte?
- Josh
InformationsquelleAutor der Frage Josh | 2011-01-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das Konzept der Audio-Video-Synchronisation ist viel tiefer. Das erste Lesen würde ich empfehlen ein ist das folgende Papier.
http://downloads.bbc.co.uk/rd/pubs/reports/1996-02.pdf
Ich nicht wiederholen hier alles - aber im wesentlichen, alle encoder Datensätze Zeitstempel und stampft es auf den jeweiligen Audio-und Video. Später, wenn der decoder spielt es, es macht zwei Dinge - eine, die dafür sorgt, dass der decoder die eigene Uhr ist "enslaved" mit encoder Uhr, und zwei, die es garantiert, dass jedes Bild auf dem Bildschirm präsentiert-und audio-frame vorgestellt Lautsprecher genau dann, wenn die jeweilige Zeit Auftritt. Dies ist die einzige und beste Möglichkeit, die audio bleibt synchron mit video. Diese Zeitstempel werden genannt PTS - /DTS-Werte, die Auflösung von 90 kHz-Takt.
Verstehen, dass im Laufe der Zeit Uhren neigen da aber nur die genaue Zeit, auf die verwiesen wird, playout-decoder genau in der gleichen Zeit um.
Nun die große Befürchtung bleibt, ist, dass der decoder die Uhr muss bleiben in der Steuerung/Synchronisation von encoder Uhr. Das erste, was getan, in MPEG ist eine höhere Präzision bei 27 MHz, (300-mal höher). Weiter, dies muss konsistent bleiben, während jeder übertragung Pfad in der Mitte. (dies wird als clock-recovery-Prozess).
Unten sind noch ein paar gute Papier, das erläutert, wie die clock-recovery - /Synchronisations-Prozess funktioniert.
https://www.soe.ucsc.edu/sites/default/files/technical-reports/UCSC-CRL-98-04.pdf
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.86.1016&rep=rep1&type=pdf
Diese Abschlussarbeit stellt alles zusammen, sehr nett.
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.50.975&rep=rep1&type=pdf
Denken Sie daran - die PCR-und PTS/DTS-basierte audio-video-Synchronisierung ist, was machen die Digitale TV-Ausstrahlung ist sehr streng und ist weit Verschieden von jeder anderen streaming-Methoden im Internet streaming. Dies ist von entscheidender Bedeutung zu machen, 24x7 streaming-Funktion.
InformationsquelleAutor der Antwort Dipan Mehta
Fand ich ein sehr gutes tutorial namens "Wie Schreibe ich einen Video-Player in
Weniger Als 1000 Zeilen".
Dieser link macht einen guten job erklären die Begriffe.
InformationsquelleAutor der Antwort Josh