[softhddevice] Ton läuft mehrere Sekunden hinterher (ffmpeg 2.2)

  • Hallo johns,


    mit ffmpeg 2.2 funktioniert softhddevice nicht mehr richtig.
    Der Ton hängt dem Bild mehrere Sekunden hinterher.


    Code
    Mar 28 14:38:59 vdr4arch vdr[3858]: audio/alsa: using device 'default'
    Mar 28 14:38:59 vdr4arch vdr[3858]: audio/alsa: start delay 336ms
    Mar 28 14:39:00 vdr4arch vdr[3858]: codec/video: ffmpeg/libav buggy: width or height zero
    Mar 28 14:39:00 vdr4arch vdr[3858]: video: decoder buffer empty, duping frame (57/1) 2 v-buf
    Mar 28 14:39:00 vdr4arch vdr[3858]: video/vdpau: missed frame (1/3)
    Mar 28 14:39:00 vdr4arch vdr[3858]: video: decoder buffer empty, duping frame (58/3) 0 v-buf
    Mar 28 14:39:00 vdr4arch vdr[3858]: video: --:--:--.---   +0    0   0/\ms   0+0 v-buf loaded
    Mar 28 14:40:00 vdr4arch vdr[3858]: video: decoder buffer empty, duping frame (67/311) 7 v-buf
    Mar 28 14:40:00 vdr4arch vdr[3858]: video: --:--:--.---+8888 1333   0/\ms   5+2 v-buf
    Mar 28 14:41:00 vdr4arch vdr[3858]: video: --:--:--.---+8888 1366   0/\ms   9+2 v-buf


    Außerdem wird die Liste der Deprecated Declarations immer länger.



    Ich habe schon versucht herauszufinden, durch was das alles ersetzt worden ist. Finden konnte ich das aber nicht.

  • Die 2.2 hatte ich mir versuchsweise unter Debian Wheezy zusammencompiliert und konnte den gleichen Effekt feststellen.

  • Copperhead


    Ich kenne ja auch die Nöte als Distributor und da liegt halt die Aufgabe drin, das zu managen. Lobenswert eine Distro die immer super aktuell ist, aber eben auch am Bleeding Edge agiert, was nicht immer nötig oder gar hilfreich ist. Arch hat sein Metronom, die VDR Welt eben ihr eigenes ...


    Gibt es keine Möglichkeit das Du eigene Abhängigkeiten definierst?


    Regards
    fnu

    HowTo: APT pinning

  • Was genau meinst du damit?
    Ich kann mein Paket an eine ffmpeg Version binden. Allerdings nicht an die viel interessantere API Version.
    Das löst zwar das Problem der Inkompatibilität, produziert aber einige neue.


    Wenn ich fest auf eine alte Version depende wird solange gar kein Update mehr ausgeführt. Pacman differenziert da leider nicht.
    Es entsteht einfach eine Konfliktsituation, die nicht aufgelöst werden kann. (Installiertes Paket will Paket, dass auf dem Server nicht vorhanden ist)


    Als nächste Möglichkeit könnte ich ffmpeg selber ausliefern.
    Dummerweise hat das vdr4arch Repository bewusst die geringste Priorität. Ich müsste also die Priorität über die aller anderen Repos stellen.
    Dann würde softhddevice funktionieren, aber sonst nichts mehr, was auf ffmpeg basiert.


    Eigentlich sollte es auch noch funktionieren. die API Versionen von ffmpeg haben sich nicht geändert. Die x264 Version hat das aber.
    softhddevice hat eine binäre Abhängigkeit zur libx264. Das haben andere Pakete in Arch Linux auch, dort hat aber einfaches Neukompilieren gereicht.


    Kompilieren funktioniert ja auch. Da die Funktionen aber alle deprecated sind (und das schon seit einigen Versionen)achtet da niemand mehr drauf, ob es auch funktioniert.
    Alle anderen Projekte nutzen diese Funktionen von vornherein nicht, oder haben schon entsprechend aktualisiert.


    In gewisser Weise gebe ich mir auch selbst die Schuld. Ich hätte es früher merken müssen. Das neue ffmpeg ist die letzte Woche vom Staging Repo ins Testing Repo und heute schließlich ins Extra Repo gewandert.
    Ich weiß schon seit Montag von der Version, weil mich ein Cronjob auf solche Dinge hinweist.


    Sollte sich das hier als längerfristiges Problem herausstellen bleibt mir nichts anderes übrig, als ffmpeg statisch einzukompilieren.

  • Hmm. Wieder etwas gelernt. Arch Linux bietet auch ein ffmpeg-compat Paket an.
    Das ist im Prinzip der neuste ffmpeg 0.10 Branch. Das wird ja auch noch gepflegt.


    Damit funktioniert alles und das ist wohl auch abgehangen genug.
    Mal sehen, wie lange ich damit gut fahre.

  • Mal sehen, wie lange ich damit gut fahre.

    Weiß Du, es muß nicht immer schön sein, es reicht wenn's verlässlich funktioniert ... :)


    Eigentlich dachte ich nicht an fest Einkomplieren, mehr dran das Du evtl. ein passendes ffmpeg als eigene Abhängigkeit bei Dir reinpackst ... ?


    Regards
    fnu

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

  • Eigentlich dachte ich nicht an fest Einkomplieren, mehr dran das Du evtl. ein passendes ffmpeg als eigebe Abhängigkeit bei Dir reinpackst ... ?


    Ich dachte mehrere ffmpeg Version funktionieren nicht nebeneinander. Dann habe ich das ffmpeg-compat Paket gesehen.


    Sollte es das einmal nicht mehr geben, werde ich, wie du schon sagst, ein eigenes ffmpeg-compat paketieren.

  • Aber das ist keine vernünftige Lösung mein Lieber Copperhead, das du mit einer älteren, oder selbst gebastelten ffmpeg-version den Softhddevice-plugin aufbaust!
    :wand



    Du mußt schon ffmpeg-2.2 benutzen!
    Und ich auch,
    Und noch Viele!
    ;D
    Wier müßten daher Johns bitten, den Plugin mit ffmpeg-2.2 kompatibel zu machen.


    Und ich bitte jetzt ihn dafür.

    (Entschuldigung für mein schlechtes Deutsch, mein Muttersprache ist Ungarish "magyar" :O )

  • Das ist eine temporäre Lösung.


    Vielleicht sogar eine dauerhafte. Ich bin es Leid.
    Anpassungen an neue ffmpeg Versionen werden immer erst nach dem Release selbiger durchgeführt.


    Kommentare zu Git Ständen werden einfach ignoriert. Würde man sich am Git orientieren. Wie das die anderen Projekte auch machen. Gäbe es solche Probleme erst gar nicht.


    Vielleicht bin ich da durch Arch Linux auch etwas überempfindlich. Neue ffmpeg Versionen werden nach spätestens 7 Tagen ausgeliefert. Meistens sogar deutlich schneller.

  • Kommentare zu Git Ständen werden einfach ignoriert. Würde man sich am Git orientieren. Wie das die anderen Projekte auch machen. Gäbe es solche Probleme erst gar nicht.

    Soll jeder der ein Plugin für VDR entwickelt ständig das ffmpeg GIT überwachen?


    Gegenfrage, wieso orientiert sich Arch Linux nicht am Tempo der VDR Entwicklung oder dessen Benötigungen?


    Arch ist nicht der Mittelpunkt, genauso wenig Debian, Ubuntu, gentoo etc. sondern eben VDR selbst ist das Thema. In Debian/Ubuntu haben wir auch genug Probleme gerade das ffmpeg Thema zu lösen, aber wir versuchen es wenigstens ... :)


    attuska


    Wenn Du möchtest das softhdhdevice mit ffmpeg 2.2 jetzt sofort läuft, lieferst Du am Besten Patches an johns der die Software in seiner wertvollen Freizeit entwickelt, oder hast eben Geduld. Wir haben hier auch einen weiteren Ungarn der sicher mit Übersetzung beim Verständnis helfen kann ... ;)


    Regards
    fnu

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

  • Neue ffmpeg Versionen werden nach spätestens 7 Tagen ausgeliefert. Meistens sogar deutlich schneller.


    Das Problem ist nicht der schnelle Release-Zyklus von Arch-Linux, sondern die Art und Weise, wie die Leute im ffmpeg-Team arbeiten. Warum funktioniert eine API in der Version 2.1, aber in 2.2 nicht mehr? Dann hätten sie sie gleich entfernen sollen oder ein ffmpeg 3.0 oder sonst was machen sollen. Aber inkompatible Änderungen innerhalb einer Major-Version taugen doch nichts. Ich sag nur "never break userspace".


    Da kann man in seiner Freizeit doch gar nicht hinterher kommen.


    Und ich sehe da überhaupt kein Problem darin, etwas auf eine alte Version zu pinnen, wenn die neue "nichts taugt" bzw. die Nutzer der Lib erst mal Zeit brauchen, um die Kompatibilität zu testen. git-Stände schon und gut, aber da parallel zu programmieren ist auch keine Lösung und teilweise eine Menge Arbeit, insbesondere, wenn sich zwischendurch die API ändert. Da hinterher zu programmieren bringt keinen Spaß, dafür gibt es ja die Releases.


    Lars.

  • Ich habe eine funktionierende Lösung gefunden, mit der ich nichtmal ffmpeg selbst kompilieren muss. Was will man mehr...

    Eben, das ist doch gut und kannst in Ruhe gucken wie es weiter geht ... :)

    HowTo: APT pinning

  • ffmpeg 2.2 ist auch bei gentoo als unstable angekommen und geht auch bei mir nicht.
    Werde demnächst mal gucken, woran es liegt. Ob zuwenig dekodiert wird oder nur die Zeitstempel fehlen oder falsch sind.


    deprecated werde ich erst in der nächsten Version (0.7) beheben. Ich will vorher noch eine "0.6.1" veröffentlichen.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Nun habe ich jetzt ffmpeg-2.2 und den dazu passenden Softhddevice-plugin auf mein System temporarly installiert, vdr startet mit "-Psofthddevice -a none "und in meinem Syslog sehe ich folgendes:



    Der Sender rückelt trotzdem.
    Jetz mache ich meine installierte Dinge rückgaengig.


    Ichbenutze und pflege übrigens UHU Linux ubk Version, und mache die zu installierenden Packete für mich (und andere) selbst, und möchte den ffmpeg-2.0 Packet veröffentlichen.

  • Problem ist wie schon vermutet, daß die Zeitstempel nicht ankommen.


    Aber ohne Zeitstempel sollte das Bild auch einwandfrei und ohne Ruckler sein.
    Nach dem Umschalten sollte nach ein paar Sekunden das Bild ruhig laufen.


    Eine Synchronisation ist ohne Zeitstempel nicht möglich.



    Ist ein Quickfix, Auswirkungen auf andere ffmpeg/libav Versionen muß erst getestet werden.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Danke Johns!
    :]


    Ich habe zwar deinen Patch ein bißchen modifieren müssen, aber jetzt der Sofhddevice-plugin (0.6.1rc1) scheint wieder einwandfrei mit ffmpeg-2.2, und ffmpeg-1.4 zu funktionieren!


Jetzt mitmachen!

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