Derrick Posted March 25, 2013 Share Posted March 25, 2013 Naive Frage Wie kann der graph bei live-wiedergabe asynchron werden, wenn es ein paar discontinuitäten gegeben hat? Die time stamps sollten den stream doch wieder einregeln. Hier ein beispiel von Das Erste (deu). Nach auftreten der streamfehler hinkt der ton deutlich hinterher. Rebuild Graph richtet es natürlich wieder, aber das war nicht die frage Quote Link to comment
Griga Posted March 25, 2013 Share Posted March 25, 2013 IMO kann das passieren, wenn Decoder die vom Splitter angegebenen Zeitstempel ignorieren (abgesehen vielleicht vom ersten nach einem Stop -> Run), und dafür aus der Framedauer kumulativ eigene PTS berechnen, also z.B. bei 25 fps für jedes ausgelieferte Video-Frame 40 ms addieren und die daraus resultierenden PTS an die Renderer weitergeben. Wenn dann Frames ausfallen, stimmt der AV-Sync nicht mehr. Bei mir tritt dieser Effekt reproduzierbar mit den LAV-Filtern bei HDTV-Wiedergabe unter Windows 7 auf. Video und Audio sind nur bis zur ersten Diskontinuität synchron. Dass die LAV Filter (einschließlich Splitter) so vorgehen, lässt sich auch aus der Tatsache schließen, dass sie im Gegensatz zum DVBSource beim Seamless Branching von M2TS / BluRay-Material keine Probleme haben. Die dabei auftretenden PCR/PTS/CC-Diskontinuitäten interessieren überhaupt nicht, wenn die Video/Audio-PTS ausgehend von einem Startzeitpunkt frameweise weitergerechnet werden. Der DVBSource kümmert sich dagegen sehr um PCR/PTS, aber kaum um die Frame-Struktur. Hintergrund dürfte sein, dass manche Entwickler ihre Filter für Dateiwiedergabe auslegen und nur damit testen. Die Anforderungen, die sich aus eventuell lückenhaften Live-Streams ergeben, haben sie nicht auf der Rechnung. Quote Link to comment
Derrick Posted March 26, 2013 Author Share Posted March 26, 2013 Das ist ja schlimmer als ich dachte. Dann sind tv-applikationen wie der dvbv eigentlich ungeeignet für live-tv, wenn solche filter verwendet werden. Selbst QEF garantiert ja nicht, dass kein fehler am anfang einer sendung auftreten kann. Bei TS-aufnahmen wird sich das wahrscheinlich auch nicht anders verhalten, es sei denn die fehlerstellen werden geflickt. Quote Link to comment
nuts Posted March 26, 2013 Share Posted March 26, 2013 Das ist aber doch mal interessant und erklärt die unterschiedlichen Ergebnisse mit dem LAV-Decoder. Quote Link to comment
Griga Posted March 26, 2013 Share Posted March 26, 2013 Es gibt zwei Lösungsansätze: Entweder sendet der DVBViewer Filter der Host-App bei Diskontinuitäten eine Message, die ein -> Stop -> Run nach sich zieht, (so wie jetzt schon bei einer PCR/PTS-Diskontinuität im Live-Betrieb), wobei mehrere kurz aufeinanderfolgende Diskontinuitäten zusammenzufassen wären. Ein Stop setzt die Zeitbasis auf jeden Fall zurück. Der "kurze Dienstweg", nämlich ein direktes Auslösen von -> Stop -> Run Im Streaming Thread, wo die Diskontinuitäten erkannt werden, ist leider ausgeschlossen, da es zu einem Deadlock führen würde. Oder die Decoder lernen, sauber auf die vom Source Filter über das IMediaSample-Interface gemeldeten Diskontinuitäten zu reagieren, indem sie auch ohne zwischenzeitliches Stop den nächsten Zeitstempel als neue Basis verwenden. Meine Erwartung, dass Decoder das normalerweise immer tun, scheint nicht zuzutreffen. Quote Link to comment
nuts Posted March 26, 2013 Share Posted March 26, 2013 Stop-Run bei jeder Diskontinuität wäre dann aber immer wahrnehmbar oder? Lässt sich das auch mit Aufnahmen (.ts mit zahlreichen Discontinuities) testen? Quote Link to comment
Derrick Posted March 26, 2013 Author Share Posted March 26, 2013 Das ist aber doch mal interessant und erklärt die unterschiedlichen Ergebnisse mit dem LAV-Decoder.In der tat.Bei kleinen fehlern, die sich in artefakten äussern, sind viele nicht so pingelig. Asynchronität stört aber selbst die hartgesottenen. Deshalb wird dann meist an den falschen stellen nach ursachen und abstellung gesucht. Ein wahllos herausgegriffenes beispiel (muss nicht unbedingt zutreffend sein ) http://www.DVBViewer.tv/forum/topic/51888-bild-ton-asynchron/?hl=asynchron Quote Link to comment
Griga Posted March 26, 2013 Share Posted March 26, 2013 Ein wahllos herausgegriffenes beispiel Asynchronität bei Audio-Ausgabe via AVR ist eine Sache für sich und fällt in eine andere Problemkategorie. Stop-Run bei jeder Diskontinuität wäre dann aber immer wahrnehmbar oder? Auf jeden Fall. Ich werde mal über eine Testimplementation der oben erwähnten. -> Stop -> Run-Methode im DVBViewer Filter nachdenken... schön ist das kurzzeitige Anhalten der Wiedergabe nicht, aber womöglich das kleinere Übel. Quote Link to comment
Griga Posted March 26, 2013 Share Posted March 26, 2013 Ich habe gerade im DVBViewer GE eine Funktion ergänzt, die einen einstellbaren Prozentsatz der eintreffenden TS-Pakete in zufälliger Verteilung unter den Tisch fallen lässt. Bei 1 % sind Video und Audio massiv gestört, werden aber auf meinem XP-PC mit den LAV Filtern nicht asynchron (getestet mit dem Ersten, MPEG2 Video + MPEG oder AC3 Audio, auch mit dem AC3 Filter). Hmm... braucht es vielleicht fehlende Pakete in Serie, oder muss noch etwas anderes dazukommen? Ich werde es nachher noch einmal auf einem anderen PC unter Windows 7 testen... Quote Link to comment
Derrick Posted March 26, 2013 Author Share Posted March 26, 2013 Es sind entweder bestimmte pakete oder wahrscheinlicher bursts von mehreren paketen, die fehlen. Ich bin überhaupt auf dieses thema gekommen, weil ich mit disconties kämpfe. Anscheinend hängt es mit der hardware (laptop, usb) zusammen. Jetzt habe ich mal probiert durch wilde aktionen disconties zu provozieren. Bis 4 disc. lief es noch in sync, danach ab 6 disc. plötzlich nicht mehr. Alles mit LAV-filtern. Gleichzeitig lasse ich über upnp denselben stream noch auf einem TV laufen. Dort bleibt alles in sync, während der ton vom DVBViewer auf dem lappi total hinterher hinkt. Quote Link to comment
Derrick Posted March 26, 2013 Author Share Posted March 26, 2013 ..noch ne erkenntnis: Habe fast 2h über RS einen lokalen Pro-client auf dem Win7/64 I7-laptop, einen remote client auf einem XP-laptop und den upnp client mit demselben stream versorgt. Disconties 21 in 2h. Viel zu viel aber gut für den test. Lokaler client auf Win7 wird asynchron. remote client auf XP bleibt synchron und der upnp-client sowieso. LAV-filter 0.55.3 sowohl lokal als auch remote. Unterschiede: EVR custom auf Win7, VMR9 auf XP; ausserdem läuft der LAV auf dem Win7 mit hardware acceleration. Das müsste ich noch mal ändern.. Fazit: Je nach system kann die wiedergabe unbrauchbar werden. Ohne pc geht's besser Quote Link to comment
Derrick Posted March 27, 2013 Author Share Posted March 27, 2013 ..da anscheinend sonst keiner probleme mit asynchronen graphen hat, bin ich weiterhin am probieren. Zwischen dem Win7 und XP setup gab es noch einen unterschied. Bei XP fehlte ein haken bei "Use DVB Clock" im source filter. Jetzt habe ich beim Win7 laptop die beiden unteren haken entfernt.Nun läuft der graph schon eine ganze weile lippensynchron trotz einer anzahl disconties. Quote Link to comment
nuts Posted March 27, 2013 Share Posted March 27, 2013 Hast du eine Aufnahme, die das Problem zeigt? Ist etwas schwer nachzuvollziehen wenn man nicht gerade mit disc. kämpft ... Quote Link to comment
Derrick Posted March 27, 2013 Author Share Posted March 27, 2013 ...kann ich z.z. nicht mit dienen. Vielleicht in 3 wochen wieder, falls das problem bis dahin nicht gelöst ist (so geht es aber auch). Was ich im wiki dazu gefunden habe, ist schwammig und hilft. ebensoweing wie die readme's vom source filter. Quote Link to comment
Griga Posted March 27, 2013 Share Posted March 27, 2013 Bei XP fehlte ein haken bei "Use DVB Clock" im source filter. Hier entsteht gerade ein Plugin, mit dem man im DVBViewer gezielt Diskontinuitäten erzeugen kann (unter Vorgabe der aufeinander folgenden Anzahl TS-Pakete, die im gesamten TS, im Video- oder im Audiostream entfernt werden). Bei ersten Versuchen stellte sich heraus, dass mit der Einstellung "Use DVB Clock" Video und Audio asynchron werden, wenn eine ausreichende Anzahl Audio-Pakete fehlt - ohne die Einstellung passiert das nicht. Wie man auf der Eigenschaftsseite des Audiorenderers -> Erweitert sehen kann, kommt der Renderer durch den zeitweiligen Ausfall von Audio ziemlich aus dem Tritt. Allerdings fängt er sich hier nach einiger Zeit, d.h. die Samplerate stabilisiert sich nahe dem Sollwert, und dann sind Video und Audio auch wieder synchron. Quote Link to comment
CiNcH Posted March 27, 2013 Share Posted March 27, 2013 Mit LAV Video habe ich immer noch gröbere Probleme bezüglich Asynchronität. Folgende Szenarien führen bei mir immer zu auseinanderlaufem Audio: -> Dateiübergang bei Seamless Branching BD mit DVBSource (PCR/PTS Sprung, TS Counter Diskontinuität) -> diverse HD+ Kanäle, hauptsächlich Sport 1 HD, Ursache unbekannt (mit DVB Clock scheint das Problem noch ausgeprägter zu sein) Quote Link to comment
CiNcH Posted March 27, 2013 Share Posted March 27, 2013 nev: LAV uses the frame timestamps from the source to time video and audio. In Audio its important that "Auto A/V Sync" is turned on (default is on), or the audio decoder can run out of sync.When testing, please use software or DXVA, not QuickSync or CUVID. The last two are more or less blackboxes that may or may not internally behave properly when dropping corrupted frames (especially QS is a bit unreliable there) Quote Link to comment
CiNcH Posted March 27, 2013 Share Posted March 27, 2013 Bei mir laufen Audio und Video nicht auseinander, selbst wenn mehrere Tausend Video TS-Pakete verloren gehen. Ich habe das im SW-Modus (avcodec) und mit QuickSync getestet. Verwendet habe ich LAV 0.54.1. Audio Dekoder war der AC3Filter. Ich muss bei Gelegenheit meine Async Probleme mit LAV (siehe weiter oben) nochmal genauer analysieren.. @Derrick, welche Version von LAV verwendest du? Oder vielleicht liegt es doch am Audio Dekoder bzw. Lücken im Audio PID-Stream? Quote Link to comment
Derrick Posted March 27, 2013 Author Share Posted March 27, 2013 55.3 aber es hat eigentlich nichts mit LAV zu tun. Es liegt am source filter. Auch mit anderen filtern wird es asynchron wenn der haken bei "Use DVB Clock" im source filter gesetzt ist. Quote Link to comment
CiNcH Posted March 28, 2013 Share Posted March 28, 2013 -> Dateiübergang bei Seamless Branching BD mit DVBSource (PCR/PTS Sprung, TS Counter Diskontinuität) Das kann ich mit aktuellen Versionen von LAV nun auch nicht mehr reproduzieren, sprich Audio und Video laufen nach mehreren Dateiübergängen nicht mehr auseinander. Scheinbar hat sich da in letzter Zeit im LAV bzw. QuickSync Dekoder bezüglich Zeitstempelbehandlung etwas getan. Was nach wie vor der Fall ist, ist, dass bei einem m2ts Dateiübergang bei Seamless Branching, wo PTS/PCR einen Sprung machen, das ein oder andere Frame verworfen wird, weil der DVBSource diesen Sprung nicht optimal ausbügeln kann. Das Problem mit HD+ werde ich auch nochmal genau durchleuchten... Quote Link to comment
Derrick Posted March 28, 2013 Author Share Posted March 28, 2013 weil der DVBSource diesen Sprung nicht optimal ausbügeln kann...was soll der denn überhaupt ausbügeln? Weniger scheint hier mehr zu sein. Ohne all die haken läuft es besser Quote Link to comment
CiNcH Posted March 29, 2013 Share Posted March 29, 2013 Bei BD kann es sein, dass es mehrere Hauptfilme mit unterschiedlicher Lauflänge gibt. Diese sind dann stark fragmentiert. Viele m2ts Dateien werden von allen Hauptfilmen verwendet. Dazwischen schieben sich dann aber unterschiedliche Szenen mit unterschiedlichen Lauflängen. PCR/PTS ist also bei Übergängen teilweise nicht kontinuierlich (und auch der TS Continuity Counter nicht). Der DS-Graph würde zum Erliegen kommen, wenn der DVBSource das nicht behandeln würde. Der wiederholt dann beim Erkennen eines Sprungs die letzten Timestamps und rechnet anschließend fortlaufend einen Offset dazu (Sprungweite), wenn ich das richtig verstanden habe. Die Wiederholung der letzten Timestamps ist hier die Ungenauigkeit. Quote Link to comment
Derrick Posted March 29, 2013 Author Share Posted March 29, 2013 ..bei der hardware ist doch immer ein player dabei (vielleicht nicht bei bulk). Der sollte alle BDs ordentlich spielen. Ausserdem ist es ja auch kein DVB Quote Link to comment
CiNcH Posted March 29, 2013 Share Posted March 29, 2013 Das ist momentan auch der Grund, wieso ich den DVBSource und somit die DVBViewer BD Playback Engine für BD nicht einsetze. Schade eigentlich, zumal mittlerweile damit sogar HD Audio und PGS-Untertitel funktionieren (das bringt mich gerade darauf, dass ich das Wiki diesbezüglich mal auf Stand bringen sollte). Aber gerade bei 'Illuminati - Angels and Daemons' macht das wenig Spaß. Da setzt sich der Hauptfilm aus den folgenden Teilen zusammen: 00505.m2ts 00:09:06 00506.m2ts 00:02:00 00509.m2ts 00:01:11 00511.m2ts 00:02:29 00512.m2ts 00:01:22 00514.m2ts 00:15:20 00515.m2ts 00:01:07 00517.m2ts 00:00:24 00518.m2ts 00:00:34 00520.m2ts 00:11:28 00521.m2ts 00:00:59 00523.m2ts 00:01:35 00524.m2ts 00:00:36 00526.m2ts 00:14:42 00527.m2ts 00:00:14 05032.m2ts 00:08:51 00530.m2ts 00:00:17 00532.m2ts 00:01:33 00533.m2ts 00:00:40 00535.m2ts 00:01:56 00536.m2ts 00:00:57 00538.m2ts 00:01:19 00539.m2ts 00:01:08 00542.m2ts 00:00:42 00545.m2ts 00:03:45 05033.m2ts 00:00:14 00548.m2ts 00:04:26 00550.m2ts 00:11:22 00551.m2ts 00:00:20 00553.m2ts 00:04:36 00554.m2ts 00:00:46 00556.m2ts 00:19:54 00557.m2ts 00:00:32 00559.m2ts 00:12:19 Quote Link to comment
Derrick Posted March 29, 2013 Author Share Posted March 29, 2013 Ja, aber damit entfernen wir uns weit vom topic. Ich hätte den titel wohl treffender formulieren sollen Gemeint ist live-wiedergabe von DVB. BD verwendet m2ts mit 4 zusätzlichen bit als zeitstempel im header. TS ist fortlaufend und springt nicht hin und her. Falls eine gewollte unstetigkeit in der systemzeit auftritt, wird das durch eine ebenfalls gewollte discontinuität angezeigt. Den fall gab es z.b. bei trailerschleifen von paytv bei KD, wenn ich mich richtig erinnere. Das führte zunächst auch zu problemen. Aber nicht mal das ist hier der fall. Quote Link to comment
Derrick Posted April 11, 2013 Author Share Posted April 11, 2013 ..update mit neuem LAV 0.56.0, und source filter "use DVB Clock" Keine besserung ! Der ton läuft nach einiger zeit bei HD H.264 bleibend hinterher, wenn ab und zu disconties auftreten. Quote Link to comment
klöse Posted April 12, 2013 Share Posted April 12, 2013 ihr müsst einfach was anderes als LAV nehmen. das problem gibts auch bei ProgDVB. Quote Link to comment
Derrick Posted April 12, 2013 Author Share Posted April 12, 2013 LAV ist ein prima alleskönner. Darum geht es hier auch nicht, sondern um die zusammenwirkung mit dem DVB Source filter. Ohne haken bei "use DVB Clock" bleibt es synchron trotz discontinuities. Quote Link to comment
sw4y Posted April 13, 2013 Share Posted April 13, 2013 @ Derrick Hast du in den LAV Audio Settings den Haken bei Auto A/V Sync Correction gesetzt oder offen gelassen? Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.