HDTV (DVB-S2 und h264) mit VDR und Xine-Plugin

  • Hi,


    Zitat

    Original von mentox
    nur mal so zur info, auf pro7 hd kam letztens ladykiller .. ich glaube gestern :) ... das lief auf meinem pentium D 3ghz super fluessieg mit noch luft.. frueher hats gehackt.. also da habt ihr (alle entwickler die da drann sitzen) supi arbeit geleistet ...


    Da ich ja so faul bin, muss das wohl jemand anderes gewesen sein ;)


    Bye.

    --
    Dipl.-Inform. (FH) Reinhard Nissl
    mailto:rnissl@gmx.de

    Einmal editiert, zuletzt von rnissl ()

  • Zitat

    Original von mentox
    Moin,


    nur mal so zur info, auf pro7 hd kam letztens ladykiller .. ich glaube gestern :) ... das lief auf meinem pentium D 3ghz super fluessieg mit noch luft.. frueher hats gehackt.. also da habt ihr (alle entwickler die da drann sitzen) supi arbeit geleistet ...


    lg mentox


    hmm, dann sollte es ja auf meiner kiste auch so laufen. mit welchen optionen beim übersetzen der einzelnen tools warst du denn erfolgreich, bzw. wie hast du alles installiert?

    Board: ASUS AT5IONT-I, 4 GB Ram
    DVB Karte: Tevii S480
    40 GB ssd als boot/systemplatte (2,5" Wechelrahmen, um auf einer anderen Platte ein Testsystem zu installieren)
    3x2TB hdd für /media
    Medion X10 Fernbedienung
    yaVDR 0.5
    Samsung UE46D5700

  • habe mir ebuild fuer gentoo gebaut und ziehe mir die aktuellen sachen von ffmpeg und xine-lib raus ...


    xine-ui ist auch aus dem cvs und auf 2 threads eingestellt.


    muss erstmal wech deswegen nur die kurze info ..


    ansonsten bei ffmpeg alles an was geht :)


    gruesse

  • Moin Mentox,


    wuerdest Du mir bitte Dein ebuild fuer die xine-lib schicken oder hier anhaengen ? Sowas fehlt mir noch in meiner Sammlung ...
    Wie hast Du xine-ui auf zwei Threads eingestellt ?


    Danke und Gruss
    Michael

  • :moin


    xine starten .. einstellungen --> video --> ganz unten "ffmpeg video decoding thread count" auf 2 stellen.


    vorher musste evtl die erfahrenheit im tab gui hoeher stellen.



    fuer die ebuild ueber nehme ich aber keine garantie oder sowas .. sind total dirty



    musste in ein locales overlay legen




    .. ich sollte die mal alle officiell machne .. habe soviele ebuild die evtl einigen helfen wuerden ;)



    lg mentox

  • Zitat

    Original von rnissl
    ...
    Falls sich ein Core noch langweilt: auf der xine-ML wurde mal ein Post-Plugin vorgestellt, welches andere Post-Plugins in einem eigenen Thread ablaufen lässt. Das würde den Video-Dekoderthread entlasten, in dem normalweise das Deinterlacing durchgeführt wird.


    http://www.nabble.com/Threadin…t-plugins-to10632990.html


    BTW: die Angabe von '-D...' an xines Kommandozeile kann auch als '--post ...' geschrieben werden. Bei aktiviertem Deinterlacer baut xine implizit das Deinterlace Plugin am Anfang der Postprocess-Kette ein, und obiges "multithreading" Plugin könnte nicht wirken.


    Hi,
    leider kommt es zu folgender Fehlermeldung!


    Ich habe das OSD im Xine Plugin mal auf X11 Overlay gestellt und die config.h von VDR für MAXOSDHEIGHT und MAXOSDWIDHT entsprechend angepasst. Hier wird relativ wenig CPU Power benötigt. man hat hier aber auch keine Transparenz...

  • Hi,


    kann jemand mal die neue Video Option "skip loop filter" ausprobieren?


    Überarbeiteter Anhang ist weiter unten zu finden.


    Bye.

    --
    Dipl.-Inform. (FH) Reinhard Nissl
    mailto:rnissl@gmx.de

    Einmal editiert, zuletzt von rnissl ()

  • Moin,


    bin noch dabei .. funzt nicht so recht weil bei mir die c datei unter


    PHP
    /usr/portage/distfiles/hg-src/xine-lib/xine-lib-1.2/src/combined/ffmpeg/ff_video_decoder.c


    liegt und nicht unter


    PHP
    /src/libffmpeg/ff_video_decoder.c



    hmm komisch ..



    Zitat

    Original von rnissl
    Hi,


    kann jemand mal die neue Video Option "skip loop filter" ausprobieren?


    Bye.

  • habe es gepatcht bekommen aber irgend was geht da nicht :(



  • Ok du hast recht... es laesst sich nicht ohne patch ueber setzen .. irgen ein fehler im aktuellen hg


    ohne flac gehts wieder ...



    Code
    USE="-flac" emerge xine-lib



    muss ich jetzt noch was einschalten oder was soll ich testen ob es was bringt ?! :)



    mfg mentox

  • Zitat

    Original von rnissl
    kann jemand mal die neue Video Option "skip loop filter" ausprobieren?


    Hier funktioniert der Patch!
    Gerade bau ich noch deine Patches (3x) aus der ML in den VDR ein... ;)


    Edit: was mir schon des öfteren aufgefallen ist, dass xine bei Szenewechsle oder Abspann eines Filmes scheinbar aus dem "Tritt" kommt und anfängt zu ruckeln. (vielleicht bei geringen Bitraten!?) Die CPU Usage geht hier nicht etwa in die höhe, sondern gegen 0... (xine)
    Kann das jemand bestätigen? Aktuell "fängt" sich Xine aber wieder. Das kommt sehr oft bei Astra HD vor.


    Gruß Uwe

    2 Mal editiert, zuletzt von Uwe ()

  • Hi,


    Zitat

    Original von Uwe
    Edit: was mir schon des öfteren aufgefallen ist, dass xine bei Szenewechsle oder Abspann eines Filmes scheinbar aus dem "Tritt" kommt und anfängt zu ruckeln. (vielleicht bei geringen Bitraten!?) Die CPU Usage geht hier nicht etwa in die höhe, sondern gegen 0... (xine)
    Kann das jemand bestätigen? Aktuell "fängt" sich Xine aber wieder. Das kommt sehr oft bei Astra HD vor.


    Wenn ich mir ASTRA HD Aufzeichnungen bei 25 % Geschwindigkeit anschaue, dann kann ich das nicht nachvollziehen. Mehr Geschwindigkeit schafft mein System ja nicht.


    Um eine Aussage treffen zu können, wäre mal ein Auszug der xine-Ausgaben recht (--verbose=2), damit man sieht, ob es evtl. mit Bufferusage, dropped Frames oder Discontinuities zu tun hat (letzeres hatten wir ja schon mal bei der roten Premiere-Tafel, wo Bild und Ton ca. 3 Sekunden Versatz hatten).


    Bye.

  • Hi,


    scheinbar handelt es sich um dieses Problem. :(
    Es kam gerade auf AstraHD eine Werbung für DiscoveryHD und bei der Einblendung der roten Premiere Tafel blieb Xine stehen (0% CPU Usage ...)


    Im Anhang mal das Log, welches genau in diesem Augenblick entsteht.

    Dateien

  • Mhh,
    bisher habe ich den start von Xine so übernommen, wie er im dvbs2-wiki steht.
    Ich startete so:
    xine --no-logo --no-gui --fullscreen -V xv --post vdr_video --verbose=2 --post vdr_audio --post upmix_mono "vdr:/tmp/vdr-xine/stream#demux:mpeg_pes" | logger 2>&1


    Nun sieht es so aus:
    xine --no-logo --no-gui --fullscreen -V xv --post vdr_video --verbose=2 --post vdr_audio --post upmix_stereo "vdr:/tmp/vdr-xine/stream#demux:mpeg_pes" | logger 2>&1


    Nun habe ich die Option --post upmix_mono in --post upmix_stereo geändert! Es scheint nun, als würde mein obiges Problem nicht mehr so auftreten, wie oben beschrieben. Im Log sieht man dann folgendes! (siehe unten)
    Es bleibt nun der Ton weg und das Video läuft weiter, aber meist kommt der Ton wieder ...
    Insgesamt läuft es so aber besser. :)


    Wo findet man eigentlich die ganzen Optionen für Xine bzw post Filter etc, außer in den Sourcen ;)


    Gruß Uwe


    Edit: AstraHD läuft jetzt mit --post upmix_stereo fast ohne Probleme durch :D


    5 Mal editiert, zuletzt von Uwe ()

  • Hi,


    Zitat

    Original von Uwe
    Nun habe ich die Option --post upmix_mono in --post upmix_stereo geändert! Es scheint nun, als würde mein obiges Problem nicht mehr so auftreten, wie oben beschrieben. Im Log sieht man dann folgendes! (siehe unten)


    Sinn von upmix_mono ist es, "Mono-Ton" (z. B. der zweite Tonkanal von ZDF) in Stereo zu verwandeln, wohingegen upmix_stereo aus Stereo 5.1 macht. Die Änderung bringt meines Erachtens nichts.


    Zitat

    Original von Uwe

    Code
    Dec 27 16:15:09 [vdr] [24195] buffer usage: 80% (tid=24194)
    Dec 27 16:15:09 [vdr] [24195] buffer usage: 90% (tid=24194)
    Dec 27 16:15:10 [vdr] [24194] clearing transfer buffer to avoid overflows


    Ich habe natürlich nur mit Aufnahmen testen können, und da gibt es keine Transferbuffer-Overflows.


    Stell' mal in vdr-xine's Setupmenü die Buffer so knapp wie möglich ein (z. B. 4, 4) -- kannst ja mit der Bufferusage von xine erkennen, ob es noch reicht, d. h. ob noch genügend dekodierte Bilder im Puffer vorliegen.


    Stell' ferner in .xine/config

    Code
    engine.buffers.audio_num_buffers:4

    wie in MANUAL beschrieben. Kontrolliere die Bufferusage-Ausgabe in der kritischen Phase. Ist der erste Wert sehr nahe an

    Code
    engine.buffers.video_num_buffers:500

    dann stell' ihn größer ein, damit das vorauseilende Bild auf Seite von xine zwischengespeichert werden kann.


    Gibt's dann immer noch Transferbuffer-Overflows, dann musst du in VDR's transfer.c die TRANSFERBUFSIZE vergrößern.


    Ich weiß nicht warum das so kodiert wurde, aber in der Phase sind BIld und Ton im Stream um gut 3 Sekunden versetzt, und dieser Versatz muss irgendwo gepuffert werden. Es ist üblich, dass das Bild dem Ton vorauseilt (vermutlich weil es länger zum Dekodieren braucht), aber so krass habe ich es bisher nur bei ASTRA HD+ beobachtet (vgl. auch vdr-xine's "buffered" Meldungen).


    Bye.

  • Hi Reinhard,


    das mti "upmix_stereo" habe ich erstmal so belassen in meiner Konfiguration. Schau ich mir später an...
    Edit: nun nutze ich wieder upmix_mono und es gibt keine Probleme damit. Hatte also andere Ursachen ...


    Ich habe aber folgendes nach deiner Empfehlung verändert:
    In der .xine/config:

    Code
    engine.buffers.audio_num_buffers:4


    und

    Code
    engine.buffers.video_num_buffers:600


    Bei VDR noch die TRANSFERBUFSIZE von 2MB auf 4MB geändert.


    Was soll ich sagen, AstraHD läuft hier nun ohne Fehler im log oder da ist was putt :D
    Ok, ab_und_zu kommt noch:


    Vielen Dank für die Tipps Reinhard.


    Gruß Uwe


    PS: CPU Usage liegt hier bei HDTV Sendern bei 40% - 75% (AMD Quad Core @ 2,2GHz (9500))

    2 Mal editiert, zuletzt von Uwe ()

  • Hi,


    Zitat

    Original von Uwe
    Bei VDR noch die TRANSFERBUFSIZE von 2MB auf 4MB geändert.


    Ohne hat's wohl nicht getan?
    Wäre weniger für einen stabilen Betrieb möglich gewesen?


    Zitat

    Original von Uwe

    Code
    Dec 27 19:24:07 [logger] ffmpeg_video_dec: Vergrýýere Puffer auf 449584 um ýberlauf zu vermeiden.


    Das wird die nächste Hürde in VDR werden. Diese Angabe bedeutet, dass ein Field oder Frame (demux_mpeg_pes kann das nicht unterscheiden) so groß ist. Würde es sich wirklich um ein Field handeln, dann hätten wir jetzt schon ein Problem in VDR, weil VDR mit Frames arbeitet, und 2 Fields sind dann definitiv größer als die Konstante in recording.h:

    Code
    #define MAXFRAMESIZE  KILOBYTE(512)


    Zitat

    Original von Uwe

    Code
    Dec 27 19:38:50 [logger] fixing sound card drift by 1819 pts
    Dec 27 19:38:51 [logger] fixing sound card drift by 3193 pts
    Dec 27 19:38:52 [logger] fixing sound card drift by 2391 pts
    Dec 27 19:38:53 [logger] fixing sound card drift by 1790 pts
    Dec 27 19:38:54 [logger] fixing sound card drift by 1339 pts


    Das ist ein Effekt davon, die Audio-Input-Puffer auf 4 zu reduzieren. Ich denke nicht, dass man das hört (3193/90000 = 35.4 ms).


    Ein anderer Effekt davon ist, dass VDR in Aufzeichnungen nicht mehr soweit vorauslesen kann, weil xine mangels Audio-Input-Puffern keine Daten mehr anfordert. Damit sind dann die Positionanzeige und die tatsächliche Abspielposition auch nicht mehr soweit auseinander. Auch ein Clear() funktioniert schneller, weil auf Seiten von xine nicht soviel gepuffert wird und somit nicht soviel verworfen werden muss.


    Bye.

  • Zitat

    Original von rnissl
    Hi,


    kann jemand mal die (nun überarbeitete) neue Video Option "skip loop filter" ausprobieren?


    Ok, ist eingebaut!
    In der .xine/config habe ich mal folgendes eingestellt:

    Code
    video.processing.ffmpeg_skip_loop_filter:all


    Btw: Für den AMD Quad Core Prozessor hatte ich folgendes konfiguriert:

    Code
    video.processing.ffmpeg_thread_count:8


    Mit 8 Counts hatte ich das "Gefühl" das es am besten lief. (das war gestern, wo ich noch die Ruckler bei AstraHD hatte) Habe es bisher aber nicht mehr verändert.


    Edit28.12.2007: Inzwischen habe ich diesen Punkt auch wieder auf 4 gesetzt! Also bei 4 Cores --> video.processing.ffmpeg_thread_count:4
    Das xineliboutput Plugin setzt dieses beim start und erkennen der CPU automatisch!

    Einmal editiert, zuletzt von Uwe ()

  • hiho,


    kompelieren laesst der neue patch sich auch :)


    werde mal astra hd anmachen... moechtest du bestimmte werte haben?


    gruesse mentox

Jetzt mitmachen!

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