Guide: Stereo (Dolby ProLogic 1/2) Upmix -->5.0/1

  • Hallo Leute

    Ich bin auf einen Beitrag im englischen Forum gestoßen, der sehr interessant zu sein scheint. http://forum.doom9.org/showthread.php?s=&threadid=57736
    Der Author erklärt ein Verfahren, wie man die Dolby Prologic 1/2 Signale (Surroundinformationen + Centerkanal), in wenigen Schritten, aus einer Stereodatei zu filtern. Damit wäre es möglich die kodierten Surroundsignale herauszufiltern und als normale Kanäle in einem Dolby Digital Stream (AC3) zu verwenden.

    Benötigte Software:
    1. Intervideo WinDVD 5/6 https://localhost/www.intervideo.com
    2. Graphedit http://www.doom9.org/Soft21/Audio/graphedit.rar
    3. Einen Hexeditor. Am besten aber den von mir genannten verwenden. http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm

    1. In Graphedit --->File--->Render Media File--->Gewünschte Stereo Wavedatei einladen.
    2. Nun löscht man den Default DirectSound Device filter (letztes Glied in der Kette)
    3. Gehe nun zu Graph---->Insert filter--->Direct Show Filter--->InterVideo Audio Processor Fx <---Auf "insert filter" klicken
    Zusätzlich muss der "Wav Dest Filter" und der "File Writer" eingefügt werden. Bei File Writer als Ausgabe format in etwa wavedatei.wav angeben.
    4. Nun werden Audio Decoder mit InterVideo Audio Processor Fx, dann WAV Dest und zuletzt der File writer filter miteinander verbunden werden.
    5. Rechtsklick auf Intervideo Audio Processor Fx -->Filter Properties--->6 Channel anklicken und "Apply" anklicken.
    Nun auf den zweiten Reiter "InterVideo Container DMO" klicken und "InterVideo EXP DMO" mit "append" einfügen.
    6. Nun klicke auf Play und dann wieder sofort auf Stop um den Filter zu initialisieren.
    7. Nun wieder rechtsklick auf Intervideo Audio Processor Fx und den dritten Reiter "InterVideo EXP DMO" wählen. Dort Dolby Pro Logic 1 oder 2 auswählen. Ich empfehle DPL 2 zu verwenden. OK klicken.
    8. Wieder auf Play klicken und warten bis Graphedit fertig ist.
    9. Die neue Wavedatei hat jetzt einen falschen Header. Denn es enthält 6 Kanäle aber im Header sind nur 2 eingetragen.
    10. Nun verwendet man den Hexeditor um dies zu ändern.

    • nChannels bei 16 ändern wir den Wert "02" nach "06" (6 Kanäle)
    • nAvgBytesPerSec bei 1C ändern wir die Wertfolge "00 EE 02" nach "00 CA 08" wenn die Audiodatei mit 48 KHz gesampelt ist, oder wir ändern "10 B1 02" nach "30 13 08" wenn die Audiodatei mit 44.1 KHz gesampelt ist.
    • nBlockAlign bei 20 wird geändert von "04" durch "0C"


    Nun hat man eine 6 Kanäle Datei aus einer Stereo DPL 2 Datei gemacht.
    Wobei ein Kanal leer ist, da ein LFE Kanal in Dolby Prologic nicht existiert.
    HINWEIS ZU DER HEXEDITOR GESCHICHTE:
    Die genannten Worte "nChannels", "nAvgBytesPerSec" und "nBlockAlign" tauchen im Hexeditor nicht auf.
    Auch kann es sein das die Suchwerte: "16", "1C" und "20" nicht da sind.
    btw. In dem Editor sind die Suchwerte in der ersten linken Spalte.
    Bei mir war es nicht so wie erklärt. Ich habe dann ganz einfach die Werte "02", "00 EE 02" und "04" selbst gesucht. Diese sind ganz am Anfang zu finden. Der erste Wert der "02" heißt ist der richtige. Die anderen zu veränderten Werte kommen gleich danach. Danach abspeichern nicht vergessen.

    Nun muss man die einzelnen Kanäle aus der Wavedatei extrahieren. Das geht am besten mit Besplit und folgender Kommandozeile.

    Zitat


    BeSplit -core( -input Wavedatei.wav -prefix e:\channel -type wav -demux )


    ! Diese Zeile muss an die Quell- und Zielpfade deiner Umgebung angepasst werden. !

    Nun hat man 6 Kanäle wovon einer leer ist.
    Die Kanalreihenfolge ist:FL FR C LFE SL SR

    Allerdings ist der Waveheader bei allen Dateien auch wieder falsch und muss wie folgt angepasst werden.
    Wieder Hexeditor öffnen und die Dateien nacheinander einladen und abändern.
    Wie folgt: nBlockAlign bei 20 von "06" zu "02". Hier kann dasselbe passieren wie in meiner obigen Erklärung. Einfach den Wert "06" ziemlich am Anfang suchen und durch den Wert "02" ersetzen. Speichern und fertig.

    Nun kann man den LFE Kanal mit einem Waveeditor erstellen indem man einen Tiefpass von einen der Vorderen Kanäle macht und diesen als LFE abspeichert.

    Wie man sechs Mono Waves mit Besweet zu AC3 konvertiert, wird hier im Forum und auch in den Besweet FAQ´s im englischen Forum erklärt.

    Sollte jemand eine bessere Idee hat wie man dieses Verfahren verbessern/vereinfachen kann. ---->Immer her damit :D

    Inwiefern das Verfahren Erfolg verspricht kann ich nicht sagen. Aber ich hoffe auf eine rege Mitarbeit von euch um dies zu klären :ja:

    Fragen werden hier geklärt. :)

    Denke mal eine Übersetzung hilft hier so einigen Leuten.

    Hoffe es interressiert jemanden. War ja oft im Gespräch wie man einen 5.1 Upmix macht.

    Viel Spaß

    Grüße
    Pacemaker

  • Moooment mal .... da komm ich doch auf was ...

    Ich muss mir mal jene DS Plugins von WinDVD ansehen, habe auch noch welche von anderen Herstellern.

    Das beknackte 2.0 von Indiana Jones ließe sich dann viell. in den entsprechenden Kanälen etwas aufpeppen (theoretisch) also EQs etc.

    Wäre viel arbeit, wo man z.B. auch sodann das Surround etwas "expandieren" kann via DS filter hmmmm.

    Aber viell. bin ich da auf dem Holzweg. Just Test the West

  • Zitat

    9. Die neue Wavedatei hat jetzt einen falschen Header. Denn es enthält 6 Kanäle aber im Header sind nur 2 eingetragen.

    kann man header auch mit besplit/beslice reparieren?
    hab leider keine test-file :hm:

  • Ich hab' mal mit Hilfe von "CodeFusion" ein kleines Tool erstellt, dass eben dieses Patchen des WAV-Headers übernimmt - allerdings nur den im engl. Thead beschriebenen Patch für die 48KHz WAV-Datei. Ob es auch bei einer 44KHz WAV funktioniert, hab' ich noch nicht getestet :hm: ...

    Trotzdem: so geht's schneller und einfacher, als das Bearbeiten mit einem Hex-Editor ;) .

    Dateien

    Who is General Failure and why is he reading my hard drive?

    He was trying to get in touch with Private Data but if it involves a Major Disaster I understand that the fault lies with General Protection.

    Furthermore, if you cannot reboot it may be because of a corrupt Colonel.

  • Erstmal danke dir für die Anleitung. Hab das mal ausprobiert und bis Punkt 8 hat alles geklappt. Wenn ich die entstandene .wav im Hexeditor öffnen will gekomme ich immer eine Fehlermeldung die da heißt: Can´t allocate additional memory to perform operation. Heißt wohl soviel das ich nicht genug Speicher zu verfügung hab, was allerdings eigentlich nicht sein kann. Kann mir da vll jemand helfen?

  • Kannst ja mal oben den WAV-Patcher ausprobieren - war für mich die beste Lösung, weil mein HexEditor auch öfters "rumzickte" wenn es mit der erzeugten WAV-Datei in die GigaByte-Bereiche ging :( ...

    Who is General Failure and why is he reading my hard drive?

    He was trying to get in touch with Private Data but if it involves a Major Disaster I understand that the fault lies with General Protection.

    Furthermore, if you cannot reboot it may be because of a corrupt Colonel.

  • Zitat von LigH

    Welchen Hex-Editor hast du denn verwendet (von den Tausenden, die da so existieren)?


    Also ich habe den genommen den du erwähnt hast, also den hier: XVI32 release 2.51

    Mit dem WAV-Patcher hat es funktioniert. Wüßte aber trotzdem gerne warum das mit dem Hexeditor nicht funktionieren will.

  • Tyrael

    Die Offset sind auch in HEX angegeben.
    z.B NumChannels 16 (dezimal 22) ;Länge 2 Byte; Inhalt => Mono = 01, Stereo = 02, etc.

    Zitat

    nBlockAlign bei 20 von "06" zu "02". Hier kann dasselbe passieren wie in meiner obigen Erklärung. Einfach den Wert "06" ziemlich am Anfang suchen und durch den Wert "06" ersetzen. Speichern und fertig.



    BlockAlign 20 (dezimal 32) ;Länge 2 Byte; Inhalt => NumChannels * BitsPerSample/8
    "06" muss ja in "02" geändert werden...

  • Hi erstmal,

    ich versuche schon seit längeren eine Tonspur (Stereo .mp2) in eine 5.1 Tonspur (.ac3) umzuwandeln.
    Habe es schon mit der "UpMixGUI" versucht kommt aber gleich am Anfang eine Fehlermeldung:
    D:\Arquivos de programas\Borland\Delphi6\Projects\UpMixGUI\MainFo rm.pas, line594

    Wurde auch schon in diesen Thread erwähnt
    http://forum.gleitz.info/showthread.php…hlight=UpMixGUi

    Lösungsvorschlage Fehlanzeige.

    Dann habe ich diese Methode angewendet wo hier beschrieben wurde (also mit Graphedit). Da komm ich aber auch nicht mehr weiter weil die Ausgabedatei (.wav) so um die 3.2 GB groß wird! Die wo ich mit den Hex-Editor bearbeiten soll aber dieser "hängt" sich natürlich auf! :(

    Jetzt hab ich im englischen Frorum eine neue Methode gesehen die mit Plogue Bidule V.I "einfacher" gehen soll. Aber wie? Siehe unten.

    Ich hoffe irgend jemand erbarmt sich und hilft mir bei meinen Problem(chen) da ich schon langsam aber sicher verzweifel.

    Aber bitte jetzt keine Links die auf das englische Forum verweissen da ich der englischen Sprache nicht so mächtig bin (Nobody is perfect). :)

  • Wie meinen ???
    Meinst du Dolby Surround aus einem Stereoton dekodieren. Oder wirklich ein Upmix eines Stereosignals zu 5.1 ?

    Habe zwar noch nicht davon gehört. Aber warum nicht. Wäre natürlich nötig zu wissen, wie dein Gerät den Upmix durchführt.
    Ansonsten kann man schlecht bis gar nicht ermitteln, ob die Softwarevariante besser wäre.
    Auch wäre es wiederrum sehr schwer zu ermitteln welches Ergebnis sich nun besser anhört.

  • Es gibt im engl. Doom9-Forum auch eine abgewandelte Variante der Anleitung die "Pacemaker" hier am Anfang beschrieben hat. Die hat einige Vorteile - ich versuch's mal auf Deutsch zusammenzukriegen:

    Diese verbesserte Anleitung ergänzt/verändert folgendes:
    - optionaler LFE-Channel im DPLII-Upmix möglich
    - kein HexEditor mehr benötigt
    - erlaubt dem Nutzer die Anpassung der Bitrate von 16-bit bis 32-bit float
    - Korrektur der vertauschten Kanäle
    - optionaler WAVE_EXT Header
    - Konvertierung der Samplerate in Echtzeit +mehr

    I. Benötigte Software
    Die Software in dieser Anleitung ist kostenlos!

    II. Stereo zu 6-Channel Wave

    • Downloade und installiere die benötigte Software (falls nicht schon vorhanden). Während des Downloads kannst du ja schonmal einen Blick auf Absatz IV: Andere nützliche Informationen werfen und dementsprechend Änderungen vornehmen. Eventuell willst du ja 5 Sekunden schwarzes Bild vor dein Video und 5 Sekunden Stille vor deinen Ton setzen, da der Filter die ersten ~1,5 Sekunden auf stumm schaltet. Schau einfach in Absatz IV für mehr Informationen.
    • Geh' sicher, dass du die "register.bat" ausführst, nachdem du GraphEdit entpackt hast und auch nachdem du die obigen Filter runtergeladen hast. Es sind nämlich Filter wie WaveDest dabei, die für diese Anleitung benötigt werden.
    • Geh' in GraphEdit auf File > Render Media File... > und öffne deine 2-Kanal Audio-Datei
    • Lösche den Graph bis auf die 2-Kanal Audio-Datei und den "Wave Parser"
    • Geh' auf Graph > Insert Filters... > DirectShow Filters >
      - klick auf "InterVideo Audio Processor Fx > Insert Filter"
      - klick auf "ffdshow Audio Decoder > Insert Filter"
      - klick auf "WavDest > Insert Filter"
      - klick auf "File writer > Insert Filter"
      * Wenn du den "File Writer" angeklickt hast, wirst du sofort nach einem Dateinamen gefragt. Die angegebene Datei wird unsere 6-Kanal DPLII Wave.
      * Verbinde die Filter *noch* NICHT!
    • Einstellen des ffdshow Audio Decoders
      - Rechtsklick auf "ffdshow Audio Decoder" > "Filter Properties..."
      - scroll bei den "Supported Codecs" bis zu "Uncompressed" (oder was auch immer das Eingabeformat deiner Datei ist), klick dort auf die Spalte "Decoder" und wähle aus der Liste "all supported" aus
      - falls ein LFE-Channel erstellt werden soll, mußt du einen Haken bei "LFE Crossover" setzen, dort draufklicken und die "Lowpass frequency" auf 120 stellen (bzw. einen Bass-Bereich deiner Wahl), setze außerdem den Gain-Wert auf ein angemessenes Niveau (meiner steht auf 0db) und setze einen Haken bei "Remove low frequencies..."
      - von jetzt an sieht die Reihenfolge der Kanäle wie folgt aus:
      * Channel 1->"FL"
      * Channel 2->"FR"
      * Channel 3->"C"
      * Channel 4->"LFE"
      * Channel 5->"SL"
      * Channel 6->"SR"
      damit die Reihenfolge korrekt ist für die meisten AC3 Encoder (einschließlich BeSweet), mußt du sie folgendermaßen ändern:
      * Channel 1->"FL"
      * Channel 2->"C"
      * Channel 3->"FR"
      * Channel 4->"SL"
      * Channel 5->"SR"
      * Channel 6->"LFE"
      Setze dazu einen Haken bei "Swap channels" und gib dort folgendes an:


      - setz einen Haken bei "Mixer" und klick drauf, "Output speakers configuration" sollte auf "3/2+LFE 5.1 channels" eingestellt sein
      - klick auf "Input/Output", setze dort bei "Allowed sample formats..." eine Haken bei allen Formaten und wähle dann bei "Supported output sample format" nur das von dir gewünschte Ausgabeformat aus
      - einige Programme (wie BeSweet's ac3enc!) unterstützen KEINE Wave-Dateien mit einem WAVE_EX Header -- das ist es aber, was ffdshow ausgibt... um es zu entfernen muß daher "Don't use WAVEFORMATEXSIBLE header when not needed" ausgewählt sein
      - klick auf "Apply" und dann "OK" um die Änderungen zu speichern und das Einstellungsfenster zu schließen

    • Die einzelnen Filter sollten jetzt ungefähr so verbunden werden:
      stereo.wav > Wave Parser > InterVideo Audio Processor Fx > ffdshow Audio Decoder > WavDest > File writer
    • Einstellen der InterVideo Audio Processor Fx
      - Rechtsklick auf "InterVideo Audio Processor Fx" > "Filter Properties..."
      - unter "Output CH" sollte "6 SPEAKER" ausgewählt werden
      - in die "InterVideo Container DMO" Einstellungen wechseln
      - auf "InterVideo EXP DMO" unter "Available DMOs" klicken und mit "Append <---" bestätigen
      - auf OK klicken um die Einstellungen zu schließen
    • Den Play-Button in GraphEdit anklicken und danach das Ganze sofort stoppen. Das ist nur nötig, weil der "InterVideo Audio Processor Fx" Filter "initialisiert" werden muß.
    • Ändere die Einstellungen in den InterVideo Audio Processor Fx
      - Rechtsklick auf "InterVideo Audio Processor Fx" > "Filter Properties..."
      - in die hinzugekommenen "InterVideo EXP DMO" Einstellungen wechseln
      - "Algorithm" auf "ProLogic2" einstellen
      - auf OK klicken um die Einstellungen zu verlassen
    • Wieder auf den Play-Button klicken und warten bis GraphEdit fertig ist (der Play-Button wieder dann wieder grün)

    Das Ergebnis ist eine 6-Kanal Wave-Datei mit LFE, ohne Hex Editing, mit der richtigen Kanal-Reihenfolge und der benötigten Bitrate, bereit für's Multichannel-Encoding in AC3, DTS oder andere Formate.

    III. Stereo zu 6-Channel AC3 unter Verwendung von ffdshow (ffmpeg's ac3enc)
    Es ist *noch* nicht möglich direkt in AC3 zu encoden. Daher muß zuerst die 6-Kanal WAV erstellt werden, welche dann durch einen AC3-Encoder wie BeSweet (ac3enc from ffmpeg) geschickt wird.

    Zitat von Milan Cutka

    Ich habe in ffdshow die Möglichkeit hinzugefügt den Filter direkt mit dem File-Writer zu verbinden um das Ergebnis zu speichern. Ich habe es mit AC3 als Ausgabeformat getestet und es wurde eine brauchbare Datei erstellt.

    Das ist aber noch nicht in der 20041012-Version zu finden. [Es wird erst] in der nächsten Version vorhanden sein, welche in ca. einem Monat erscheinen wird bzw. früher, wenn nicht noch irgendwelche größeren Fehler in der aktuellen Version auftauchen...

    IV. Andere nützliche Informationen

    • WinDVD's Filter: Der InterVideo Processor Fx Filter (bei Verwendung des DPLII Upmix) schaltet die ersten ~1,5-2 Sekunden stumm. Eine Übergangslösung wäre, ein ~1,5+ Sekunden langes schwarzes Standbild vor das Video und ~1,5+ Sekunden Stille vor den Ton zu setzen (besser ist evtl. auch etwas mehr). Dadurch kann der Filter ruhig die ersten ~1,5 Sekunden stumm schalten -- da ist sowieso nur Stille.
    • Wer nicht extra WinDVD installieren will, sondern nur die Filter benötigt, kann sie auch separat runterladen (siehe Links am Anfang).
    • Ein interessanter Kommentar:

      Zitat von Antonio

      1. Es gibt scheinbar eine Begrenzung der Dateigröße für die Zieldatei [ca. 4 GB]. Ich denke, das hat etwas mit dem WaveDest Filter oder dem File Writer Filter zu tun.
      1.1. Meine Lösung dazu war, die Ausgangs-WAV in zwei Dateien zu splitten, diese separat in GraphEdit zu bearbeiten und das Ergebnis wieder zusammenzufügen. Funktionierte perfekt.

    • Noch ein Kommentar:

      Zitat von UrsaMtl

      Für die, die einen Musik-Upmix machen wollen, wird eher der "Music Mode" empfohlen weil der Standard DPLII "Movie Mode" optimiert für Filmtonspuren ist, wodurch im Center-Kanal Dialoge stärker zu hören sind. Entsprechend der Dolby Dokumentation, kann dadurch Gesang im Center-Kanal zu hören sein, welcher normalerweise außerhalb davon sein sollte usw. Betreffend der anderen Einstellungen wie "Panorama", "Dimension", "Center Width Control", "Autobalance", etc.:

      Für mehr Informationen zu diesen Einstellungen, kann man sich die "Dolby Surround Pro Logic II Decoder Verarbeitungsprinzipien" ansehen. Die Dolby Technik Bibliothek hat auch einige andere interessante Artikel auf Lager.

    Who is General Failure and why is he reading my hard drive?

    He was trying to get in touch with Private Data but if it involves a Major Disaster I understand that the fault lies with General Protection.

    Furthermore, if you cannot reboot it may be because of a corrupt Colonel.

  • also bin echt von den socken was man alles so machen kann, respekt !!!

    mich wundert nur das jetzt keine wirklich ergebnise gepostet hat wie zb indy damit wird wüsste ich doch zu gerne.
    weil ist ja nich mal eben erledigt und bevor ich mir die mühe mache wüsste ich natürlich lieber vorab ob sich das auch wirklich rentiert.

Jetzt mitmachen!

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