So, endlich eine Antwort. Bei Hitze mag mein Rechner nicht gerne booten. Nur wenn ich die KNC-1 Karte ausbaue. Seltsam. On Tuesday 20 July 2004 14:54, Gerd Knorr wrote:
xawtv4 macht da auch nix weiter als im Bedarfsfall ein paar Nullen in den Datenstrom zur Soundkarte einzustreuen, was man als kleine Knackser auch hört.
Das ist ok. Wie ich inzwischen weiss ist mpg321 nicht so gut darin von stdin zu lesen. mpg123 kann das aber sehr gut. Allerdings ist mpg321 toleranter gegen Datenmüll. Inzwischen liefere ich aber einen korrekten ES und mpg123 ist happy.
(2) Es werden einzelne mpeg audio frames bei Bedarf dupliziert oder weggelassen, dass hört man glüchlicherweise nicht - unser Gehirn bzw. Gehör scheint recht fehlertolerant zu sein.
Das Ergebnis ist nicht so gut wie ich zuerst dachte. Das Verfahren geht nur zu Not und wenn man ignorant ist wie ich (was ist eine Soundkarte?). Ich wollte aber auf keinen Fall einen eigenen Dekoder implementieren. Aber mpg321 kommt mit den Underruns gut zurecht. Ich werde also das Duplizieren von Frames bzw. das Weglassen (bei Overrun) konfigurierbar machen. Wie gesagt: mgp123 kommt gut allein zurecht und damit ist die Qualität von DVB-Audio über das künftige zapdvb wirklich gut. Duplizieren von Frames erzeugt eine Art Glucksen und ist je nach Programminhalt störend. Allerdings berechne ich die Zahl der Duplizierten/Weggelassenen Frames dynamisch. Wenn die PC-Uhr richtig tickt passiert dann sowieso nichts.
Wie machst Du das genau? dvbstream | your-tool-here | mpg321 ?
Nun, meine Tools sind zapdvb und zapcvt. Zapcvt ist eigentlich eher ein Kommandozeilen Video-Schnittwerkzeug. Dem habe ich jetzt beigebracht Video oder Audio ES zu extrahieren. Das ist wohl hier noch nicht so interessant. Aber zapdvb vereinigt szap und die TS zu PES Konvertierung. Dort habe ich jetzt einen kleinen ES Extraktor für Audio zugebaut. Das Programm forkt von jeher Mplayer (oder was anderes). Jetzt halt auch mpg321 (oder was anderes). Alternativ kann man zum Aufnehmen von Sendungen direkt in eine Datei schreiben, siehe dann zapcvt.
Evtl. ist es auch einfacher mad (mpeg audio decoder library) zu nehmen und alles in ein Programm zu stecken statt derer drei mit pipes zusammenzubandeln. Dann hat man auch direkten Zugriff auf die I/O buffer und deren aktuelle Füllstände und braucht nicht so viel zu raten ;)
Ja, aber dann lerne ich kaum was. Zudem sind meine Tools ganz absichtlich minimalistisch. Die Sourcen sind recht kurz. Der ganze Audio-Kram bedeutet nur rund 200 Zeilen. Für mich ist viel interessanter automatisch anzufangen auf File zu schreiben wenn jemand den (Video-)Player anhält. Die neue Version von zapdvb soll sowieso aus laufender Sendung heraus aufzeichnen können (früher ging das nur über at-jobs). Gruss Jürgen