BDAudioConverterGUI

  • Hallo zusammen.

    Leider wird ja BeLight nicht mehr weiterentwickelt. Nicht selten meldete sich das Tool via ein Error ab.
    Da ich mich sowieso in C# schlau machen wollte, fand ich, dass es eine gute Möglichkeit sei, ein solches Tool selbst zu schreiben.
    So entstand "BDAudioConverterGUI".
    Und da dieses Tool evnt. auch anderen nützlich sein kann, habe ich es auf GoogleCode geladen.


    Bedienung:
    ----------
    Die Audiodateien werden via Drag&Drop in die Liste gezogen.
    Momentan werden unterstützt: *.ac3, *.ddp, *.truehd, *.dts, *.dtshd, *.flac, *.wav
    Eac3to ist hier für die Decodierung von AC3 & DTS verantwortlich. SoX für FLAC & WAV.
    Von hier aus startet die Pipe.

    Danach kommt, wenn gewünscht SoX zum Zuge.
    In der Gruppe "SoX Settings" können Einstellungen für Tempo/Pitch und Downmixing vorgenommen werden.
    Die Tabs sind der Bearbeitungsreihenfolge nach aufgelistet.

    • "Main": Generelle SoX Einstellungen.
    • "Input": Convertiert den Audiostream bevor Effekte hinzugefügt werden oder "gedownmixt" wird.
    • "Effects": Für Tempoänderungen ohne dass die Tonhöhe angetastet wird stehen folgene Möglichkeiten bereit:
      Tempoänderung via FPS z.B. ("25.000" to "23.976")
      Tempoänderung via Zeit z.B. ("01:20:25:250" to "01:25:21:500")
      Tempoänderung via direkter Wert z.B. ("3.1415")
      Will man nur die Tonhöhe anpassen, ideal für Deutsche Tonspuren auf BluRay, welche viel zu tief klingen, kann man unter "Change Pitch"
      den Änderungswert in % angeben.
    • "Downmix": Ich weiss, dass eac3to auch ein Downmix-Feature anbietet. Ich wollte für meinereiner die Routine selbst mit SoX lösen.
      Getestet habe ich diese Option erst mit dem offiziellen "Dolby Digital Channel Check"-Video auf einem Logitech Z-5500.
      Das Resultat war eigentlich recht gut. Jeder Kanal konnte mit der ProLogic II-Variante korrekt identifiziert werden.
    • "Output": Zu guter Letzt kann der Audiostream noch auf den Encoder angepasst werden, falls gewünscht.



    In der Gruppe "Target Format" wählt man zum Schluss das gewünschte Zielformat aus.

    • "AAC": Der Nero Encoder muss zuerst noch von der Nero-Website runtergeladen werden.
      Danach einfach die Datei "neroAacEnc.exe" in den "neroaacenc"-Ordner verschieben.
    • "AC3": Als Encoder wird Aften verwendet. Zum Zuge kommt die Git-Version vom 03.02.2012.
      Irgendwie habe ich es geschaft die Version mit Visual 2010 zu kompilieren. :)
    • "DTS": Hier muss nur die Bitrate eingestellt werden. Es sind 754.5kbit/s oder 1'509.75kbit/s, welche momentan die gängigsten Bitraten für DTS sind.
    • "FLAC": SoX ermöglicht schon von Haus aus das Encodieren ins FLAC-Fomat. Wieso also nicht auch hier anbieten.
    • "MP3": Als Encoder wurde Lame in der Version 3.99.2.4 verwendet
    • "WAV": Als Abschluss ist auch das Abspeichern als WAV-Datei möglich.



    Ein Klick auf "Start Converting" startet die Umwandlung.
    Es wird ein Cmd-File erzeugt, welches anschliessend minimiert aufgerufen wird.
    Alle Zeilen, wenn Hacken gesetzt sind, werden nun nacheinander abgearbeitet.
    Der Zielpfad ist identisch mit der Quelle und falls dies auch bei der Dateiendung zutrifft, wird ein "_new" am Dateinamen dazugesetzt.
    Dies soll verhindern, dass die Quelle gleichzeitig überschrieben wird.
    Es ist auch möglich den Zielpfad einer Datei zu ändern. Rechtsklick auf die Zeile, "File" und danach "Set Target Folder" auswählen. Unten in der Statuszeile wird nun der neue Pfad angezeigt.

    Getestet wurde BDAudioConverterGUI(x86) bis jetzt nur unter Windows7 64bit, was aber nicht heisst, das es auf Vista etc. nicht funktionieren soll. Einfach ausprobieren.
    Benötigt wird das .Net Framework Version 4.

    Download unter "Google Code": http://code.google.com/p/bdaudioconvertergui/

    [Blockierte Grafik: http://www.3dfx.ch/bdaudioconvert…ter_preview.png]

    [Blockierte Grafik: http://www.3dfx.ch/bdaudioconvert…ox_settings.gif][Blockierte Grafik: http://www.3dfx.ch/bdaudioconvert…rget_format.gif]

    3 Mal editiert, zuletzt von LeKouz (26. August 2012 um 14:21) aus folgendem Grund: Beitrag infolge neuer Programm-Version aktualisiert

  • :welcome:

    Solange deine GUI weniger Fehler bei der Ansteuerung von eac3to macht als die bisherige EAC3toGUI, ist sie schon mal nützlich. ;D

    eac3to erledigt nicht mehr als die Dekodierarbeit. Generell wird nur dieser Befehl hier verwendet: "eac3to.exe" "datei.ac3" stdout.wav -down32 |
    Danach übernimmt SoX oder der ausgewählte Encoder den Stream. Bis jetzt klappte das sehr gut. :)

  • > "eac3to.exe" "datei.ac3" stdout.wav -down32
    warum nicht ffmpeg verwenden?

    ffmpeg hatte ich auch im Visier. Ich entschied mich jedoch für eac3to, da es mehrmals Nero oder Arcsoft-Versionen als Referenz-Decoder auswählt.
    Für TrueHD ist zwar Libav/ffmpeg die bessere Wahl. Jedoch ist sie anscheinend nicht mit allen TrueHD-Varianten kompatibel ->
    "Libav is unable to decode files with mixed sampling rates (i.e. 96khz for Lf-Rf-C and 48khz for LFE-Ls-Rs)" aus http://en.wikibooks.org/wiki/Eac3to/How_to_Use

    Noch was anderes:
    Ist der 1.Post beim Thread hier für Dich auch unsichtbar? Ich hatte ihn gestern noch kurz editiert um Schreibfehler zu eliminieren. Seitdem ist er, jedenfalls für mich, unsichtbar geworden.
    Beim Zähler oben rechts wird er zwar noch erwähnt.

  • Ich wollte gestern schon fragen über was ihr hier eigentlich diskutiert :)

    ----
    Schön übersichtlich und Benutzerfreundlich.

    Der AAC Encoder erstellt bei mir eine Datei namens Video_ts und auch die Einstellungen bei Quality werden anscheinend nicht richtig gesetzt.

    Einmal editiert, zuletzt von MegaDeath (14. März 2012 um 20:09)

  • Hab noch ne Frage, da man generell wenige Infos dazu findet, weil sich kaum jemand damit beschäftigst, aber wie sehen Deine remix calls für sox aus?

    Hier mal was ich momentan verwende:

    Cu Selur

  • MegaDeath
    Video_ts? Es sollte eigentlich immer eine Datei mit *.m4a-Endung erscheinen. Etwas anderes "kann" es gar nicht geben.
    Auszug aus dem Quellcode:

    Code
    sOutputCommand += " -of " + sOutputFileName + ".m4a\"";

    Gibt es evnt. eine Fehlermeldung wenn Du die generierte "convert.cmd"-Datei im Eingabefenster ausführst?
    Was ist es für eine Audiodatei, welche Du konventieren wolltest?

    Selur
    Dolby Pro Logic I ohne LFE "remix -m 1v1,3v0.7071,4v0,5v-1,6v-1 2v1,3v0.7071,4v0,5v1,6v1"
    Dolby Pro Logic I mit LFE "remix -m 1v1,3v0.7071,4v0.7071,5v-1,6v-1 2v1,3v0.7071,4v0.7071,5v1,6v1"
    Dolby Pro Logic II ohne LFE "remix -m 1v1,3v0.7071,4v0,5v-0.8718,6v-0.4899 2v1,3v0.7071,4v0,5v0.4899,6v0.8718"
    Dolby Pro Logic II mit LFE "remix -m 1v1,3v0.7071,4v0,5v-0.8718,6v-0.4899 2v1,3v0.7071,4v0,5v0.4899,6v0.8718"

    Code
    //                                    L        R         C        LFE        SL         SR
                //--------------------------------------------------------------------------------------------------
                float[,] fMatrixProLogicI =      {{1.0f,     0.0f,     0.7071f,  0.7071f,  -1.0f,     -1.0f},     //L
                                                  {0.0f,     1.0f,     0.7071f,  0.7071f,   1.0f,      1.0f}};    //R
    
    
                float[,] fMatrixProLogicII =     {{1.0f,     0.0f,     0.7071f,  0.7071f,  -0.8718f,  -0.4899f},  //L
                                                  {0.0f,     1.0f,     0.7071f,  0.7071f,   0.4899f,   0.8718f}}; //R

    Für Dolby pro Logic II nahm ich die Werte aus http://en.wikipedia.org/wiki/Dolby_Pro…coding_matrices

    Ich habe jedoch noch eine "Matrix normalisieren"-Funktion eingebaut, welche im gleichen Stil wie die aus "AC3Filter" funktioniert.
    Dazu werden einfach alle Beträge der Werte zusammengezählt. Danach werden alle Werte durch die vorher erhaltene Summe wieder dividiert.
    Dies ergibt dann:
    Dolby Pro Logic I ohne LFE "remix -m 1v0.2698,3v0.1907,4v0,5v-0.2698,6v-0.2698 2v0.2698,3v0.1907,4v0,5v0.2698,6v0.2698"
    Dolby Pro Logic I mit LFE "remix -m 1v0.2265,3v0.1602,4v0.1602,5v-0.2265,6v-0.2265 2v0.2265,3v0.1602,4v0.1602,5v0.2265,6v0.2265"
    Dolby Pro Logic II ohne LFE "remix -m 1v0.3259,3v0.2304,4v0,5v-0.2841,6v-0.1596 2v0.3259,3v0.2304,4v0,5v0.1596,6v0.2841"
    Dolby Pro Logic II mit LFE "remix -m 1v0.2648,3v0.1873,4v0.1873,5v-0.2309,6v-0.1297 2v0.2648,3v0.1873,4v0.1873,5v0.1297,6v0.2309"

  • Hallo,

    Ich wollte eine DTS-Datei nach MP3 wandeln (BDAudioConverterGUI v0.2.5.1).

    1. Wo kann man denn den Ausgabepfad eingeben ?
    2. Es erscheint zu Beginn die Meldung: "magcore.dll" nicht gefunden.

    GGRUB

  • Hallo GGRUB.

    Zur Frage 1
    Für mich war klar, das der Ausgabepfad der gleiche ist, wie bei der Pfad der Quelle. Somit wird auch das Handling einfacher. Files via DropDown in die GUI ziehen, Settings einstellen und "Start Converting" drücken fertig.
    Vor allem wenn man ganze Serien-Staffeln rippt ist es sehr praktisch. Jede Episode besitzt ihren eigenen Ordner mit den Audio und Video-Files. Somit braucht man nur noch via. z.B. *.ac3-Suche alle Dateien in die GUI zu ziehen und die fertig konvertierten Dateien werden wieder gleich im richtigen Ordner abgelegt. Dies spart vor allem Zeit.
    Somit hatte ich die Option, dass man den Ausgabepfad manuell setzen kann, nicht eingebaut.

    Ich könnte ne Option einbauen, dass man via Rechtsklick den Ausgabepfad ändern kann.
    Momentan liegt das Projekt etwas auf Eis. Wollte schon längst eine neue Version erstellen welche dann auf WPF basiert.

    Zur Frage 2
    Selur hat es eigentlich schon auf den Punkt gebracht.

    Wobei ich bei mir auch nicht schlau werde. Auf einem anderen Rechner von mir, mit einer Win7 64bit Installation, hatte ich die benötigten Dateien wie (MagCore.dll etc.) schon aufgesetzt. CreationDate(01.07.2012)
    An diesem Datum hatte ich AviSynth 2.6, ffdshow und Haali Media Splitter installiert. Afaik hatte das System nie Kontakt mit einer ArcSoft-Software. Vielleicht komm ich noch dahinter welches Tool mir diese Dateien untergejubelt hat.

  • LeKouz: kleine Anmerkung: die Summe der Absolutwerte der Channelanteile bei den DLP I downmixes ist mal mehr und mal weniger als 1,.. ;)

    Zitat

    Dolby Pro Logic I ohne LFE "remix -m 1v0.2698,3v0.1907,4v0,5v-0.2698,6v-0.2698 2v0.2698,3v0.1907,4v0,5v0.2698,6v0.2698"


    0.2698 + 0.1907 + 0.2698 + 0.2698 = 1.001

    Zitat

    Dolby Pro Logic I mit LFE "remix -m 1v0.2265,3v0.1602,4v0.1602,5v-0.2265,6v-0.2265 2v0.2265,3v0.1602,4v0.1602,5v0.2265,6v0.2265"


    0.2265 + 0.1602 + 0.1602 + 0.2265 + 0.2265 = 9999

    Zitat

    Dolby Pro Logic II ohne LFE "remix -m 1v0.3259,3v0.2304,4v0,5v-0.2841,6v-0.1596 2v0.3259,3v0.2304,4v0,5v0.1596,6v0.2841"


    0.3259 + 0.2304 + 0.2841 + 0.1596 = 1 passt :)

    Zitat

    Dolby Pro Logic II mit LFE "remix -m 1v0.2648,3v0.1873,4v0.1873,5v-0.2309,6v-0.1297 2v0.2648,3v0.1873,4v0.1873,5v0.1297,6v0.2309"


    0.2648 + 0.1873 + 0.1873 + 0.2309 + 0.1297 = 1 passt :)

    Cu Selur

  • Da musste ich ein Kompromiss eingehen :)
    Ich wollte später dem User die Option bieten, dass er seine eigene Downmix-Matrix eingeben kann. Auch da sollte es eine Möglichkeit geben, sie zu normalisieren.
    Und da wollte ich flexibel sein und löste dies via einer Funktion die dies für mich erledigt. Mit Math.Round() wird dann auf 4 Stellen gerundet. Mit 5 usw. wird es nicht besser.

    z.B. Auf 5 Stellen gerundet:
    PLI ohne LFE = 0.99999
    PLI mit LFE = 1.0
    PLII ohne LFE = 1.0
    PLII mit LFE = 1.00001

    Das es also eine saubere 1 in der Summe gibt ist bei 4 oder 5 Stellen purer Zufall. :)
    Erst bei 7 Stellen kriege ich bei meinen Werten überall als Summe eine saubere 1. Auch das ist Zufall :D

    Edit: @ GGRUB: Zielpfad ist nun änderbar :)

  • Hatte mit der Änderung deiner Emailadresse zu tun. Du hättest für deine neue Emailadresse eine neue Aktivierungsmail bekommen, wenn der Forenmailer die Benachrichtigung verschickt hätte...

    Unser technischer Admin zisoft hat dich manuell wieder in den Status "registriert" gesetzt.

  • Sehr geiles Programm!

    ABER!

    Wenn ich beim Pitch +4.17 eingebe dann macht das Programm daraus pitch 4170 statt 417 und die ganze Kommandozeile geht nicht mehr.

    Lösung bisher - .cmd selbst editieren und die zusätzliche Null weglöschen, oder alternativ nur 4.1 oder 4.2 pitch verwenden.

    Sonst keine Probleme hier! (Win7 prof 64bit, Phenom x4)

  • Vielleicht beachtet das Programm hier, dass in der deutschen Ländereinstellung der Punkt das Tausenderzeichen ist und das Komma das Dezimaltrennzeichen? Ich glaube, eac3to hatte ähnliche unerwartete Funktionalität (nicht alle Programme gehen auch bei Parametern von der englischen Schreibweise aus, wie es für die meisten Programmiersprachen typisch ist).

  • Hallo Squirrelking.

    "+4.17" in der GUI ergibt bei mir (Version 0.2.5.2) eine Cmd-Datei bei welcher der Pitch als "...pitch 41.7..." angegeben wird. Win7 Prof 64Bit Ländereinstellung -> German (Switzerland)

    Sobald ich jedoch auf German (Germany) einstelle, ergibt dies als Resultat einen Pitch von "...pitch -4170..."!
    Danke LigH für den Tip!

    Das war mir gar nicht bewusst, dass dies gleich solche auswirkungen hat. Man lernt immer wieder neues dazu.
    Ich werde dies heute noch korrigieren.
    Danke Dir für die Rückmeldung :)

Jetzt mitmachen!

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