[HDe] Fehlersuche MKV Wiedergabe

  • Anscheinend läuft bei der MKV-Wiedergabe die Übergabe des Bilds und des Tons an die HDe auseinander, wird diese Differenz zu groß, kommt es zu den bekannten Standbildern bzw. Framedrops.


    Ich habe dazu folgenden Log-Auszug angefertigt, wo dies recht gut zu sehen ist.



    Die Differenzen zwischen Audio und Video PTS:
    erster Block 31680
    zweiter Block 47520
    dritter Block 442800
    vierter Block 50400


    Wie man sieht laufen Audio und Video PTS immer weiter auseinander, nachdem man 1 Minute nach vorne springt ist die Differenz wieder geringer.

  • Wurde im RMM Foren getestet.


    http://showcase7.divx.com/WatchmenTrailer[DivX7].mkv
    1080p H.264, AAC Stereo, 201MB


    Bericht vom Test User.


  • Ich habe gerade noch etwas sehr interessantes gefunden.


    Zitat


    Wenn du im mkv bei der Audiospur stretch und delay benutzt, dann bleibt die Audiospur unverändert. Es wird nur beim muxen die Info über stretch und delay für die Abspielprogramme gespeichert.
    Sprich: der Videoplayer führt es dann in Echtzeit bei der Wiedergabe aus.


    Wenn jetzt mkv2vob den mkv demuxt, dann erhält er natürlich auch nur die unveränderte Audiospur und sie bleibt asynchron.


    Du musst also mit einem Audiotool (z.B. Belight oder AC3machine) stretch und delay bei der Audiospur selber ändern BEVOR du es mit dem Video zum mkv muxt (wo du dann ja nichts mehr eingeben musst bei stretch und delay).


    Das könnte auch erklären, warum manche MKV einwandfrei laufen und einige Störungen haben.


    Kennt jemand etwas womit man prüfen kann, ob ein MKV einen Audio Delay oder Stretch hat?

  • Auszug xine Matroska Demuxer:


    Code
    #define MATROSKA_ID_TR_TIMECODESCALE              0x23314F



    Auszug Matroska Spezifikation (komplett unter http://www.matroska.org/techni…tml#simpleblock_structure )


    Zitat


    TrackTimecodeScale 3 [23][31][4F] * - > 0 1.0 float The scale to apply on this track to work at normal speed in relation with other tracks (mostly used to adjust video speed when the audio length differs).


    Also wird der Timecodescale welcher für die Geschwindigkeit des Audio-Tracks zuständig ist vom xine-mkv-demuxer nicht unterstützt/ausgewertet.


    Ich hab zu testzwecken auch gerade mal ein MKV bearbeitet indem ich es demuxxt habe, die Tonspur mit eac3to angepasst habe auf die FPS des Bildes und danach wieder zurück in MKV gemuxxt. Damit Bild und Ton zueinanderpassen und definitiv kein TrackTimescale benutzt wird.
    Ich gucke das KMV gerade über die HDe ,es läuft bis jetzt 5 Minuten OHNE Hänger oder Artefakte im Bild.
    Ich werde es jetzt noch bis zum Ende durchgucken und wieder berichten ob die bekannten Probleme auftreten oder nicht.

  • Das MKV ist jetzt zuende. Über die komplette Spielzeit gab es keine Störungen der Wiedergabe.


    Also Problem gefunden, zur Lösung müsste der TrackTimecodeScale im Matroska-Demuxer ausgewertet und der entsprechende Track dementsprechend angepasst werden.


    Ich probiere mich mal daran, versprechen kann ich aber nichts.


    Edit: Hmm, Timecodescale ist bei meinem MKV auf 1.0 also wird darüber nicht der Audiotrack angepasst. Über irgendwas muss er aber bei der MKV-Wiedergabe angepasst werden, muxe ich die Streams unverändert von MKV zu TS ist das Audio beim abspielen komplett asynchron. Die Laufzeit der einzelnen Streams ist nachdem demux auch anders. Die zeiten hab ich mit mediainfo ausgelesen.

  • Ich habe gerade an verschiedenen Stellen im mkv-demuxer versucht das Video dynamisch und auch fest auf die FPS des Audios einzustellen. Irgendwie hat alles nicht so geklappt wie es sollte. Audio FPS auf die Video FPS gesetzt ergab zwar gute Bildwiedergabe (soweit wie ichs laufen gelassen hab). Der Ton war aber kein bischen mehr synchron. Das ist das gleiche Verhalten, welches Auftritt, wenn man die einzelnen Streams des MKV demuxxt und danach zu einem TS muxxt.


    Mir ist aufgefallen das der hdplayer immer 23.98 FPS konfiguriert, er sollte bei meinem Testfile aber auf 25FPS setzen (Das Video hat 23.98FPS der Ton 25FPS).
    Macht der Demuxer eventuell alles richtig mit dem anpassen der Videogeschwindigkeit, bis auf das dann noch erforderliche abändern der Framerate?


    Kann mir jemand sagen an welcher Stelle der Demuxer die Framerate weitergibt?
    Oder holt sich die HDe die Framerate selbst aus dem Videostream?

  • Danke für Deine Updates und Deine Bemühungen, sehr interessant Deine findings.
    Hoffentlich kann der Schorsch Dir ein paar Antworten geben...

    Server HW:
    Asrock Q1900M + 4GB + 2x CineS2 5.4, SSD, 2TB Toshiba 2.5" (USB), 3TB Seagate (USB); 2TB Samsung; 1.5 Seagate (USB), picoPSU + DC/DC 200W
    SW:
    Debian (arranged), OpenMediaVault kralizec; VDR-2.1.6 + dynamite, live etc; Mysql running DB for EPG2VDR, XBMC


    Clients:
    1) TBS2910 freescale imx6 + OpenELEC
    2) RPI, 1GHZ, VDR-2.1.6
    3) RPI, 1GHZ, VDR-2.1.6
    4) cubietruck

  • Wenn ich das richtig sehe, scheint es wirklich am hdplayer zu liegen.


    Es wird immer die Framerate des Videos gesetz, wo der hdplayer diese genau hernimmt habe ich noch nicht nachgesehen. Dabei setzt er die Framerate immer auf die ursprüngliche des Videostreams (was ja ansich nicht verkehrt ist). Das Problem tritt bei MKV dann nur auf, da es dort erlaubt ist Streams mit verschiedenen Framerates in ein File zu packen. Im MKV selbst wird dies entweder über den schon angesprochenen TimeCodeScale oder alternativ über die Duration realisiert. Das mit der Duration scheint im xine-Demuxer auch zu passen.


    Nur wird das vom hdplayer jetzt nicht mit der Duration wiedergegeben die xine aus dem MKV liest, sondern mit der die der Videostream normalerweise hat.


    Das endet dann, wie man auch in meinen PTS Logs sehen kann, damit, dass die PTS von Audio und Video immer weiter auseinanderlaufen, bis es zwangsläufig zu einem resync kommen muss. Ist ja auch klar xine liefert den Video-Stream für z.B. 25FPS, der hdplayer gibt aber nur 23,98 FPS aus.


    Kann man dem hdplayer zu testzwecken irgendwo eine FPS aufzwingen?

  • Der Patch ist fertig zum testen.


    Erstmal vielen Dank an Wade, der mir einige Hinweise geben konnte, wie dort was läuft.


    Das Problem lag letzendlich im xine-hde, dort wird eine selbsterechnete Framerate genutzt, die natürlich nicht passt, wenn das Video gestreckt werden muss.
    Es kann sein, dass durch die Änderungen andere Demuxer, sprich Formate, probleme machen können. Nämlich genau dann, wenn die Framerate von diesen nicht korrekt übergeben werden kann.


    Wenn ihr den Patch testet und es MKV gibt die nicht vernünftig laufen testet bitte ob der Stream z.B. im TS-Container vernünftig läuft. So können wir sehen obs noch weitere Probleme mit MKV gibt, oder ob schlicht und einfach der Stream ansich Schuld ist.

  • Star Trek 720p H.264, AAC Stereo, 111MB
    http://showcase7.divx.com/StarTrekTrailer[DivX7].mkv
    Ruckeln sowie Artefakte.


    Trailer Watchman, läuft jetzt fast ohne Störungen durch. :lol2


    Das Potential der HD/E ist ohne Worte zu große Worte zu verlieren absolut vorhanden.


    Siehe Elephants Dream 544MB
    1080p H.264, AAC 5.1 Surround, AAC Stereo, Subtitles, Chapters, 544MB
    http://showcase7.divx.com/ElephantsDream[DivX7].mkv
    Lupenreine Wiedergabe in Bild und Ton.


    Leider wird hier seitens RMM die Player Software vernachlässigt, das ist nicht zu entschuldigen. :tdw

  • Wie komet schon festgestellt hat, viele die vorher nicht gingen laufen jetzt perfekt oder mit nur geringen Störungen.
    Andere hingegen haben weiterhin Probleme mit Hängern.
    Ich hab mir wieder eins der MKVs vorgenommen, welches immer noch Probleme beim abspielen hat.


    Wie die Logs zeigen liefert der Matroska-Demuxer, keine gravierenden Unterschiede mehr zwischen Audio und Video PTS.


    Edit: Mal ne möglicherweise dumme Vermutung ;)
    Mir ist aufgefallen, das es hauptsächlich bei Material mit niedrigerer Bitrate auftritt. Ich habe hier z.B. ein File mit 13,5 Mbps und eins mit 4 296 Kbps.
    Ist es möglich das immer weiter der Buffer gefüllt wird, da von xine solange immer mehr Daten angefordert werden bis ein Abspielbuffer voll ist und bei der geringen Bitrate xine dann irgendwann merkt das er viel zuweit vorne ist und dann die Drops verursacht?
    Die "video out:" Meldungen werden von xine selbst verursacht, das seeking durch die HDe. Das seeking... kommt auch immer einen guten Moment später wenn man das Log Live verfolgt.
    Außerdem läuft es auf dem TV, bei dem File mit geringer Datenrate, noch kurze zeit weiter wenn man den VDR killt.


  • Bei Szenen die eine höhrere Datenrate besitzen als der Durchschnitt kommt es auch zu Artefakten. Das kann man mit einem Workaround beheben. Und zwar schaltet man den Framedrop von xine ab. Weiterer Nebeneffekt auch Dateien mit einer Bitrate von 30Mbps laufen nun in einer guckbaren Art und Weise. Dort treten dann zwar öfter kleinere Drops seitens der HDe auf, diese äussern sich dann aber nurnoch durch sehr kleine Microruckler.


    In xine muss dafür die Datei src/xine-engine/video_out.c gepatched werden. Bei xine-lib-1.1.16.2 muss dafür in Zeile 834 ein
    diff = 0;
    eingefügt werden. Bei anderen xine Versionen kann die Zeile abweichen.


    Die Stelle sollte danach ungefähr so aussehen

    Code
    pts = img->vpts;
        diff = cur_vpts - pts;
        diff = 0;
    
        if (diff > duration || this->discard_frames) {
  • Mir ist gerade aufgefallen, das wenn die Daten an die HDe übergeben werden (xine-hde/hde_io.c Funktion hde_io_video_frame) öfter ein Byte fehlt. Dieses Byte ist verglichen zum Original-Stream immer 0x00. Wahrscheinlich ist das irgendwo in einem Header.


    Ich vermute, das das aber schon in demux_matroska.c der xine-lib selbst passiert, dort hab ich aber noch nicht die Stelle finden können, wo ich die Daten zur Kontrolle abgreifen kann.


    Kennt sich jemand gut genug mit dem Code in demux_matroska.c aus der mal gucken könnte wo dieses Byte immer verloren geht und ggf. fixen?

  • Mit Software Version 11069


    Star Trek 720p H.264, AAC Stereo, 111MB OK :lachen3
    Trailer Watchman ebenfalls OK. :strike1



    Warum konnen 1080p Trailer nicht abgespielt werden?


    Nachfolgende z.b.


    star.wars.episode.i.the.phantom.menace.1999.1080p.hdtv.x264.sample-hv .mkv
    http://rapidshare.com/files/76…p.hdtv.x264.sample-hv.mkv


    star.wars.episode.i.the.phantom.menace.1999.1080p.hdtv.x264.sample-hv .mkv
    http://rapidshare.com/files/87…p.hdtv.x264.sample-hv.mkv


    star.wars.episode.iv.a.new.hope.1977.1080p.hdtv.x264.sample-hv .mkv
    http://rapidshare.com/files/87…p.hdtv.x264.sample-hv.mkv

  • > Warum konnen 1080p Trailer nicht abgespielt werden?


    ich habe hier ein tokyo-reality-h264-1080p.mp4 das wird abgespielt aber alle 5s gibts probleme mit der a/v synchronität und es springt


    habe auch ein Indy IV 1080p dts trailer, das bild läuft flüssig aber der dts ton klingt ziemlich zurhackt (ein mkv)


    ich würde also nicht sagen das es nicht geht
    das problem ist x264, davon habe ich auch ein paar und da kommt kein bild

  • Zum Thema MKV sind Raubkopien so RMM.


    Tip an Poster Lolo, bei RMM nicht die Wahrheit, sonst exestierst du bald nicht mehr dort.


    Zitat von LOLO
    Erste Spuren (Wiedergabe von .mkv in 720p) sind nicht zu übersehen.


    Xtra Reel Multimedia
    Die Formulierung zeigt ja schon die Richtung auf... Du verkennst aber eines, weder wollen noch können wir den Funktionsumfang eines Media-Tanks realisieren.


    Xtra Reel Multimedia
    Sei dankbar und froh, dass man überhaupt derartige 'Raubkopiererformate' (jaja, damit tut man MKV unrecht, aber es ist nunmal so, dass dieser Kodek primär so genutzt wird) unterstützt werden.


    Zitat von LOLO
    Der AHA und OHO Effekt bleibt für mich weiterhin der Player, es ist schon sehr Nervend wenn der Film in der Mitte abschmiert, Artefakte zu sehen, bzw. beim Spulen zu merken, das es eigentlich gar kein richtiges vor und zurückspulen gibt, sondern nur Sprünge.


    Xtra Reel Multimedia
    Derartige Verallgemeinerungen kannst Du Dir auch sparen,
    zum einen haben sie keinerlei technisch relevanten Inhalt und sollen daher höchstens für Stimmung sorgen und zum anderen glaube ich kaum, dass dies bei TV Aufnahmen auftritt sondern höchstens bei ein paar gezogenen Filmen. Aber das schreibst Du natürlich nicht und läßt so den Eindruck entstehen es gäbe ein Problem wo keines ist.


    Xtra Reel Multimedia
    Zukünftig werden wir diese Art der Agitation nach den Boardregeln ahnden. Du hattest bereits eine Sperre,
    die nächste wird nicht mehr ablaufen.


    Herr Xtra Reel Multimedia, behandelt man so Kunden, mit Sperrung drohen, ja das ist leider in diesem Forem so.


    Der aktuelle Player hat immer noch Probleme mit .mkv. Tolle Werbung für ein Produkt Namens HD/E.

  • Zitat

    jaja, damit tut man MKV unrecht, aber es ist nunmal so, dass dieser Kodek primär so genutzt wird


    naja gut mkv ist ein opensource container
    und kein codec


    hab meinen vdr noch nicht geupdatet
    aber alte aufnahmen mit der 1.4.7er version laufen nicht mehr oder zumindest ein bischen schlechter als mkv container


    bezieht sich alles auf alte stabile /testing vonn rmm

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!