• So, da ich mit meiner Diplomarbeit fast fertig bin, habe ich mir mal wieder etwas meinem alten Hobby HeadAC3he gewidmet. Mittlerweile finde ich meinen alten code sows von gräßlich, daß ich kaum noch Motivation habe daran rumzufrikeln. Deshalb wird es keine neuen features mehr geben. Was *evtl* noch hinzukommen wird, sind neue Ein/Ausgabeformate, wenn das nicht zuviel Zeit kostet. Ansonsten steht ein komplettes rewrite form scratch an, wenn ich nach meinem Diplom Zeit finden sollte. (An Lust magelt es nicht.)

    Ich habe nun ein neues alpha release erstellt. Das Besondere daran ist, daß ich es komplett unter Linux weiterentwickelt habe. Darum bin ich besonders an reports von Linux usern interessiert, wie HeadAC3he mit Wine ausführen wollen. Wine user sollten die M$ TT Schriften installieren, sonst sieht die GUI nach nichts aus..

    Changelog:
    - GUI "Linuxkompatibel" gemacht. Im Prinzip wurden bugs, die unter Windoof nicht bemerkbar wurden, eleminiert. So wurden die Stile der Optionsfenster geändert, damit es keine Probleme gibt. Das alignment ist noch nicht 100%, aber habe zur Zeit keine Lust mich darum zu kümmern. Aber es wurde ein "race" gefixt, der evtl Probleme beim Init hätte machen können. Es kann sein, daß noch ein "race" vorhanden ist, mal gucken...
    Außerdem wurden die Fenster "unveränderbar" gemacht. DAs gabn speziell unter Linux nur Probleme. Noch ändert HAC3 bei langen DAteinamen das Fenster, aber das wird auch noch geändert werden.

    - Das was für die meisten interessanter sein wird: Der ac3 encoder wurde richtig implemenitert. Zum einen wurde auf neueste cvs Sourcen gesync (und diese wieder auf floats umgestellt für höhere Quali, auch wennn das etwas Arbeitszeit kostet), so daß die PRobleme mit 2 Kanal ac3s weg sein sollte, zum anderen die GUI dafür fertiggestellt, daß man jetzt die bitrate einstellen kann.

    ACHTUNG!

    Mir ist aufgefallen, daß in HAC3 irgendwo ein memleak schlummert, den hin und wieder crasht er - aber zum Glück nicht während eines Prozesses, sondern entweder nur beim Öffnen einer neuen Datei oder beim Schließen.
    Ich werd mich hierum aufgrund Zeitmangels auch nicht weiter drum kümmern, da die Fehler zufällig erscheinen.

    Diese alpha ist NICHT optimiert, dh. wurde nur mit Standard Paramtern kompileiert, da ich unter Linux nmake nicht zum Laufen gebracht habe und alles manuell kompiliern mußte. Darum hatte ich weder Lust alle Optionen reinzufrimeln, noch Windoof zu booten.

    Die Sourcen von ac3enc sind nicht dabei, weil es kein richtiges release darstellt und ich evtl noch Änderungen vornehme. Ich kenne die LGPL und weiß, daß das eigentlich entgegen dieser ist. Wenn einer unbedingt die Sourcen zu ac3enc haben möchte, so soll dieser mich anmailen. Wenn er ansonsten ein Problem hiermit hat, so möge ein Mod das attachment entfernen...no binary..no source..

    Ich mache bei ac3enc keinen "sanity" check, was die Kanäle angeht, sondern versuche den encoder nur so zu initalisieren, daß er arbeiten kann. Im Mormalfall sollte es kein Problem geben.

    Ansonsten viel Spaß und ich bitte um reports. Insbesondere falls jemand den memleak reproduzierbar triggern kann oder weiß, wie man das schnell debuggen kann, möge dieser sich melden.

    D A

  • Zitat von DarkAvenger

    Was *evtl* noch hinzukommen wird, sind neue Ein/Ausgabeformate, wenn das nicht zuviel Zeit kostet.


    Soweit ich mich erinnere, hast Du mal in diesem Forum eine Alpha-Version veröffentlicht, die FAAC als 5.1-Encoder für AAC/MP4 integriert hatte. Wirst Du das für Deine Weiterentwicklung auch so beibehalten?

  • Ich hatte das für diese alpha rausgenommen, weil die produzierten AAC Dateien "kaputt" waren. Kennt sich einer mit FAAC aus? Gitb es eine brauchabre Version davon, die sich lohnt zu implementieren? Auf der FAAC Seite sieht man, daß laaange nicht mehr an FAAC gearbtiete wurde. Oder gibt es neuere Versionen. Ich hatte gedacht wie nencode Nero AAC einzubinden, doch wollte ich nicht das Nero plugin interface benutzen, da es unter Linux nicht ganz geht. (Ich werde zur Entwicklung NICHT mehr Windows starten. Wozu soll ich software entwickeln, die ich nicht selbst nutzen kann?) Man könnte die aacenc32.dll auch direkt einbinden, doch bräuchte ich interface Beschreibungen. Anyone?

  • Gerade im letzten Monat wurde zumindest die Kommandozeilen-Struktur umgestrickt. Ob das was im Bereich Encoding-Qualität verbessert hat, weiß ich aber nicht.

    Jedoch dürften die HE-AAC-Algorithmen wohl deutlich interessanter für die Anwender auf diesem Gebiet sein - und so was erzeugt FAAC noch nicht. Vielleicht wäre da die Unterstützung von Nero (siehe BSN) empfehlenswerter?

  • Zitat von DarkAvenger

    Auf der FAAC Seite sieht man, daß laaange nicht mehr an FAAC gearbtiete wurde.

    naja die letzte version ist 1 monat alt ;)

    [Blockierte Grafik: http://www.rjamorim.com/test/aac128v2/plot12z.png]
    faac kann bereits mit kommerziellen aac encodern, wie dem von real, mithalten

    Zitat

    Oder gibt es neuere Versionen. Ich hatte gedacht wie nencode Nero AAC einzubinden, doch wollte ich nicht das Nero plugin interface benutzen, da es unter Linux nicht ganz geht. (Ich werde zur Entwicklung NICHT mehr Windows starten. Wozu soll ich software entwickeln, die ich nicht selbst nutzen kann?) Man könnte die aacenc32.dll auch direkt einbinden, doch bräuchte ich interface Beschreibungen. Anyone?

    ich würde vorschlagen nero nicht zu unterstützen:
    - nero ist nicht kostenlos (funkt nur 30 tage ohne zu zahlen)
    - nero wird bereits so gut wie überall unterstützt (zb besweet), schön langsam wirds zeit meiner meinung nach, daß faac mehr unterstützung bekommt, als irgendwelche kommerziellen encoder, vor allem, da es qualitativ bereits bessere qualität als lame (mp3) bietet!

    Ich weiß, daß ich nichts weiß (Sokrates)

  • Solange man mit LC-AAC zufrieden ist, dürfte FAAC auf jeden Fall am leichtesten zu unterstützen sein. Immerhin werden z.B. regelmäßig aktualisierte Kommandozeilenencoder und WinAmp-Plugins veröffentlicht - es muss also wohl doch Bewegung im problemlos verfügbaren Quelltext sein.

  • Zitat von DarkAvenger

    Ich hatte das für diese alpha rausgenommen, weil die produzierten AAC Dateien "kaputt" waren. Kennt sich einer mit FAAC aus?

    Ein bißchen... ;)

    Zitat

    Gitb es eine brauchabre Version davon, die sich lohnt zu implementieren? Auf der FAAC Seite sieht man, daß laaange nicht mehr an FAAC gearbtiete wurde. Oder gibt es neuere Versionen.

    Welche Seite meinst Du? Die neueste Version ist v1.24, die entsprechende Wiki-Seite auf Audiocoding.com ist von mir erst kürzlich aktualisiert worden (aber noch nicht fertig), und ja, FAAC ist seit ungefähr v1.17 "brauchbar", v1.23.5 wurde im letzten AAC-Vergleichstest Dritter kurz hinter Nero 6, das allerdings für dieses Ergebnis durchschnittlich ~140 kbps statt 128 kbps benötigte. Der Gewinner iTunes kann weder VBR noch Multichannel, ist also für 5.1 AC3-Transcoding nicht zu gebrauchen. Außerdem hatte dieser Hörtest leider keinen "Low Quality"-Anker wie z.B. BladeEnc oder LAME, so daß die Unterschiede im "real life" nicht so groß sind wie einige wenige Tester meinten (die aber dadurch das Gesamtergebnis nach unten ziehen).

    Da Du ja auch regelmäßig bei Doom9.org mitliest, hier noch zwei Threads, wo es um FAAC im allgemeinen und im speziellen für Linux geht:

    http://forum.doom9.org/showthread.php?s=&threadid=74708
    http://forum.doom9.org/showthread.php?s=&threadid=75222

    Zitat

    Ich hatte gedacht wie nencode Nero AAC einzubinden, doch wollte ich nicht das Nero plugin interface benutzen, da es unter Linux nicht ganz geht. (Ich werde zur Entwicklung NICHT mehr Windows starten. Wozu soll ich software entwickeln, die ich nicht selbst nutzen kann?)

    Soweit ich weiß, gibt es keine Linux-Version von Nero, also wie jetzt? ;) Wie auch immer, HE AAC ist schön und gut, wenn man seine DVD-Transcodings nur am Computer abspielen will. Die demnächst erhältlichen "echten" MP4 DVD-Player von Kiss (ab September/Oktober 2004) werden nur Multichannel-AAC im Low Complexity-Profil unterstützen, nicht in HE AAC. Und das wird wahrscheinlich noch eine ganze Weile so bleiben, falls es überhaupt mal Hardware-Implementationen von Multichannel HE AAC geben wird (da dies eigentlich bei DVD-Speicherkapazität und eingebauten Festplatten ab 80 GB aufwärts nicht mehr dringend benötigt wird und aufwendig für die DSP-Hardware ist). Insofern wäre die Implementation eines AAC LC-Codecs in HeadAC3e schon sinnvoll. Außerdem finde ich es merkwürdig, bei Software-Entwicklungen immer vorauszusetzen, daß eine registrierte Komplett-Version von Nero 6 inklusive bezahltem AAC-Codec auf der Festplatte installiert ist.

  • Naja, wie schon gesagt, Nero plugin interface kommt nicht in Frage, aber werde mir faac nochmal angucken. Evtl habe ich (oder die) bei deren dll Verson Murks gamcht. Mal gucken...

    Was ist eigentlich mit libdts? Ich habe gesehen das ist zur Zeit unter GPL, gibt es auch eine LGPL Variante oder sollen wir den bequatschen eine LGPL Variante rauszurücken? ;)

    hans-jürgen

    Ich bin das letzte Jahr (Mann, schon so lange her...) nicht mehr ganz mitgekommen, was Audio Zeugs angeht. Grob bin ich noch mitgekommen, aber war (bin es noch) halt sehr mit Uni beschäftigt. Bei doom9.org im Forum war ich schon lange nciht mehr und werde ich auch nicht mehr hingehen. Ist mir zu biased das Ganze.

    Linux: Es gibt mehrere Wege eine Windows library unter Linux zum Laufen zu brigen: Die einfachste ist halt die passende win exe zu nemen und hoffen, daß es mittles wine läuft. Im Fall von HeadAC3he (nachdem ich die GUI ziemlich gefixt habe) läuft es nun zu 99% astrein.
    Den anderen Weg - den ich noch nicht probiert habe, aber es sollte klappen: Man baut sich eine Linux binary und lädt Windows libraries mittles Winelib rein. AFAIK ist Winelib eine Art wrapper. Das hatte ich vor, wenn ich mal anfange mein Folgeprojekt zu Headac3he zu starten. (Falls es noch nicht deutlich wure: Ich will HeadAC3he sterben sehen. :D Und wie Phönix aus der Asche wird der Nachfolger steigen. Noch steht es aber nicht fest, ob ich dafür Zeit haben werde. Theor habe ich mir schon einiges dazu überlegt - und würde sicher vielen gefallen. :) Evtl werd ich dazu mal ein posting verfassen.)
    Beim Nero plugin geht nun unter Linux folg schief: Es scheint als ob der den Zieldateinamen nicht ganz richtig mitbekommt. Zumindest erschließe ich das aus der assertion, bei der es hakt.


    Übrigens, ich warte noch auf Kommentare bzgl der a3 encoding Funktionalität. Fluppt es oder nicht?

  • Wenn ich recht informiert bin, dann müssen Programme, die nur eine GPL-DLL benutzen, nicht komplett ebenfalls unter GPL laufen - das gelte lediglich für die DLL, die eine GPL-Bibliothek implementiert. Oder?!
    __

    @ Pacemaker: Darum geht es doch gerade. Wenn da noch Fehler drin wären, dann müsste DarkAvenger unbedingt konkret wissen welche - "hab mal gelesen" ist da überhaupt nicht hilfreich, besonders wenn sich dieses Gerücht vielleicht noch auf Versionen von vor einem Jahr beziehen sollten.

  • LigH

    Nö so einfach ist das nciht. Sonst könnte man ja für jedes GPL Programm eine LGPL wrapper dll machen und diese dann in einem closed source Programm nutzen. Das ist nicht im Sinne des Erfinders.

  • Zitat

    Naja, wie schon gesagt, Nero plugin interface kommt nicht in Frage, aber werde mir faac nochmal angucken. Evtl habe ich (oder die) bei deren dll Verson Murks gamcht. Mal gucken...

    Ach so, Du hast die DLL-Version benutzt... Um die hat sich kaum jemand gekümmert in letzter Zeit, weil libfaac.dll das Output-Plugin für WinLAME und CDex ist. Inwieweit sich dort also ein Bug versteckt, der bei der Kommandozeilenversion nicht vorkommt, kann ich Dir leider nicht sagen. Nur so viel, daß auf meinem Win95 libfaac.dll in CDex mit einem Windows-Error bzgl. der "MSVCRT.DLL" abstürzt. Ob das bei anderen Usern auch so ist, versuche ich gerade im CDex-Forum herauszufinden. Allerdings hat der BonkEnc-Entwickler (noch ein Open Source CD-Ripper) auch diese Version als Grundlage für sein Plugin genommen und keine Schwierigkeiten gehabt.

    Es gibt außer diesem Output-Plugin übrigens noch weitere FAAC-Implementationen im SourceForge-CVS, z.B. für Winamp und CoolEdit, die gerade frisch überholt worden sind. Deren Entwickler meinte neulich mal, daß er sie so angelegt hat, daß eine Abwandlung für andere Anwendungen ziemlich leicht sei.

  • Gute Nachrichten, das mit faac wird wohl klappen, könnte nur noch an meinem Unvermögen scheitern. :D Habe extra mal Windows hochgefahren weil ich neugierig war und die dll verhält sich so, wie man es erwarte, *wenn* man sie richtig initialisiert. Das erklärt auch, warum bei der letzten alpha der encoding Vorgang am Schleichen war....aber könnte auch an der Komplexität von dem Profil liegen...

    Kann mir mal jemand das channel mapping erklären?

    Code
    Channel Remapping
     
     		Default    		0, 1, 2, 3 ... 63  (64 is MAX_CHANNELS in coder.h)
     
     		WAVE 4.0		2, 0, 1, 3
     		WAVE 5.0		2, 0, 1, 3, 4
     		WAVE 5.1		2, 0, 1, 4, 5, 3
     		AIFF 5.1		2, 0, 3, 1, 4, 5



    Welche Zahl steht für welchen Kanal? Scheint aber wohl abhänig von der # der Kanäle zu sein...grrrr

  • Zitat von DarkAvenger

    Gute Nachrichten, das mit faac wird wohl klappen, könnte nur noch an meinem Unvermögen scheitern. :D

    Sehr schön, danke...

    Zitat

    Habe extra mal Windows hochgefahren weil ich neugierig war und die dll verhält sich so, wie man es erwarte, *wenn* man sie richtig initialisiert. Das erklärt auch, warum bei der letzten alpha der encoding Vorgang am Schleichen war....aber könnte auch an der Komplexität von dem Profil liegen...

    Aha, dann kann es sein, daß Du ausgerechnet das LTP-Profil als Default eingestellt hattest, denn das ist leider noch buggy = ca. 50x langsamer als LC. Main ist nur ein bißchen langsamer als LC, aber derzeit auch nicht zu empfehlen, da es noch nicht genügend getunt ist (produziert leichte Artefakte).

    Zitat

    Kann mir mal jemand das channel mapping erklären?

    Code
    Channel Remapping
     
    		Default 		0, 1, 2, 3 ... 63 (64 is MAX_CHANNELS in coder.h)
     
    		WAVE 4.0		2, 0, 1, 3
    		WAVE 5.0		2, 0, 1, 3, 4
    		WAVE 5.1		2, 0, 1, 4, 5, 3
    		AIFF 5.1		2, 0, 3, 1, 4, 5



    Welche Zahl steht für welchen Kanal? Scheint aber wohl abhänig von der # der Kanäle zu sein...grrrr

    Das bezieht sich eigentlich auf das interne AAC-Channelmapping, wo Centre = 0 (also der erste) ist und LFE = 5 bzw. der letzte bei mehr als 6 Kanälen, 1 und 2 also FL und FR sowie 3 und 4 SL und SR. Nur wie sich dann z.B. WAVE 5.1 erklären soll, weiß ich auch nicht... Hast Du das aus FAAC oder aus FAAD2 (wo sich dann ja im Ausgang das 5.1 WAVE-Mapping FL, FR, C, LFE, SL, SR ergeben soll). Es kann aber auch sein, daß das nur ein zukünftiges, d.h. unbenutztes und deaktiviertes Mapping ist, das schon mal angedacht und implementiert wurde, um alle möglichen Layouts im Frontend abdecken zu können. Im Moment kann man nämlich mit dem -I Parameter nur definieren, wo sich Centre und LFE in der Input-Datei oder -Bitstream befinden (Default ist 3,4). Ich werde mal die Mailingliste durchforsten, ob ich noch ein paar Mails zum Thema finde.

  • OK, war nicht in der Mailingliste, sondern im Webforum:

    http://www.audiocoding.com/phorum/read.php?f=1&i=4109&t=4027

    Das ist also eine alternative Methode fürs Remapping, die von Stux (= Stuart Espey, 3ivx-Entwickler) eingebaut wurde, um eben alle denkbaren und undenkbaren (z.B. AIFF) Channel-Layouts in der Input-Datei zu bedienen. Übrigens benutzt 3ivx für seinen DS Audio-Encoder auch libfaac.

  • So, habe mal basic AAC support reingebaut, der auch dieses Mal funktionierende Dateien porduziert. :D Noch kann man nichts einstellen.

    Ich bitte folg zu überprüfen: Tendiert der output zum clipping? (Läßt es sich vermeiden?) Ich weiß nciht, ob es am encoder/decoder/player oder an hac3 liegt.

    Was ist am ch mapping falsch? Ich hatte noch keine Zeit mir obiges richtig durchzulesen. Am einfachsten wäre es, wenn jemand mal probiert 6Kanal Zeugs oder so zu füttern und mir dann sagt, ob es geht und dann, was flasch ist...

Jetzt mitmachen!

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