dts -> AC3 2.0 mit eac3to: Ungleichmäßige Aussteuerung

  • Hallo,

    Ich versuche eine DTS-Datei (6 Kanal) in ein AC3 2.0 Format zu wandeln. Das mache ich mit eac3to v3.24 und folgenden Optionen :

    eac3to source.thd destination.ac3 -320 -down2 -mixlfe

    Irgendwie haut der Downmix aber nicht hin. Sprache/Musik und Geräusche haben einen eklatanten Lautstärkeunterschied. Wie kann man das verhindern ?

    Bei eac3to gibt es die Option "-phaseShift". Wozu dient das ?


    Gruß Gunnar

  • Kannst du dir sicher sein, dass eac3to beim Downmix nach Dolby-ProLogic[-II]-Matrix arbeitet? Ich kenne mich damit nicht aus - wäre das irgendwo dokumentiert? Sollte das nicht der Fall sein, dann ist es gut möglich, dass Surround-Effekte beim Downmix unvorteilhaft abgemischt werden, vielleicht sich auslöschen, vielleicht ignoriert werden.

    Der Downmix im AC3-Decoder Azid lässt sich deutlich detaillierter steuern. Vielleicht klingt es besser, eac3to erst mal ein Mehrkanal-AC3 erzeugen zu lassen, dieses dann über BeSweet zu Stereo-WAV mit ProLogic-II-Downmix zu decodieren, und danach Aften zum Encodieren zu verwenden (darin lässt sich auch aktivieren, dass das Ergebnis als Surround-codiert markiert wird).


    Ich kann nur vermuten, dass die eac3to-Option "-phaseShift" vielleicht ähnliche Wirkung haben soll wie das "rear channel filtering" in Azid (dort soll es beim ProLogic-Downmix das Auslöschen hinterer Kanäle und mögliche Interferenzen spezifischer Frequenzbereiche vermindern).

  • Code
    -down2  --> downmix multi channel audio to stereo (Dolby Pro Logic II)

    Über deinen genannten Umweg würde es vielleicht klappen. Wäre aber schön wenn es einfacher/direkter ginge. Na ja, ich werde mal testen gehen.

    Gruß Gunnar

  • Es müßte eine Möglichkeit geben AC3-Filter da zur Aufgabe zu zwingen.


    Zwingt zwar nicht zur Aufgabe... aber dafür zur Arbeit ;D :
    Entsprechender FilterGraph + AviSynth-Script mit DirectShowSource + pipen des Outputs per WAVI (o.ä.) an Aften sollte klappen (alternativ: das Script per AVFS mounten und die virtuelle WAV an Aften verfüttern). Wobei mich allerdings wundert, dass der AC3Filter so viel besser klingen soll :hm: ...

    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.

    Edited once, last by Tom Keller (October 23, 2011 at 12:13 AM).

  • AC3Filter gibt es auch für die Kommadozeile, "AC3Filter tools", die valdec.exe ist dann nutzbar.

    Müßte dann etwa so aussehen:
    valdec source.dts -spk:2 -clev:X -w inter.wav
    eac3to inter.wav destination.ac3 -320

    Mit -clev kontrolliert man die Anhebung des Centers. Mit "valdec source.dts -spk:2 -clev:X" kannst Du schonmal probehören - wird nur etwas unpraktisch, wenn im Film nicht gleich zu Beginn gesprochen wird. Versuch als erstes am besten einmal ganz ohne "-clev", ob die Standardeinstellungen evtl. schon reichen.

    /edit:
    valdec kann standardmäßig nicht auf stdout ausgeben, lord_mulder hatte da mal einen Patch rausgebracht, allerdings finde ich gerade keine passende Binary, man müßte also ohne Pipe in zwei Schritten arbeiten.

    Edited once, last by sneaker2 (October 21, 2011 at 11:13 PM).

  • Zwingt zwar nicht zur Aufgabe... aber dafür zur Arbeit ;D :
    Entsprechender FilterGraph + AviSynth-Script mit DirectShowSource + pipen des Outputs per WAVI (o.ä.) an Aften sollte klappen (alternativ: das Script per AVFS mounten und die virtuelle WAV an Aften verfüttern). Wobei mich allerdings wundert, dass der AC3Filter so viel besser klingen soll :hm: ...

    Häää ?

    Script per AVFS mounten versteh ich ja noch, aber:
    *entsprechender FilterGraph + AviSynth-Script mit DirectShowSource + pipen des Outputs per WAVI*

    Wie geht das denn ?

    Gerd

  • WAVI:

    http://sourceforge.net/projects/wavi-avi2wav/

    ... ist ein Tool, welches den unkomprimierten Ton, den ein AviSynth-Script ausspuckt, als WAV-Datei abspeichern kann. Alternativ kann WAVI den Ton auch zu einer anderen Anwendung "pipen" (stdout => stdin):

    http://de.wikipedia.org/wiki/Pipe_%28Informatik%29

    ... anstelle eine WAV-Datei zu erstellen. Sprich: WAVI übergibt den unkomprimierten Ton aus dem AviSynth-Script direkt an einen Encoder a la Aften (anstelle ihn auf der Festplatte zu speichern). Eine entsprechende Kommandozeile sähe z.B. so aus:

    Code
    "C:\Pfad_zur\Wavi.exe" "C:\Pfad_zum\AviSynth-Script.avs" - | "C:\Pfad_zur\Aften.exe" - "C:\Pfad_zur\Zieldatei.ac3" -b 448

    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.

  • Das verstehe ich, danke für die Erklärung.
    Um dann die Audiostelle(n) mit Sprache und Geräusche im Avisynth-Script (valdec) zu testen, kann man mit AVFS ein Pseudo-Avi erzeugen, das mit VirtualDub abgespielt werden kann. Das werde ich heute Abend mal testen.

    ffmpeg habe ich gegoogelt und hier gefunden: http://ffmpeg.zeranoe.com/builds/
    Welche 32bit Version muss man den nehmen ? (static, shared, dev)
    Eine sehr umfangreiche Doku ist hier zu finden: http://ffmpeg.org/ffmpeg.html
    Da wird man aber mit Infos erschlagen ;)

    Kann mir vielleicht jemand ein Beispiel aufzeigen wie man eine DTS-Datei in eine Stereo-Datei umwandelt ?
    Laut Doku sind wohl die Abschnitte <code>*Audio Options</code>* und *Audio Encoders* wichtig.

    Gerd

  • Hallo zusammen!

    Hmmm, jeder wie er's mag, nicht wahr?

    ICH mache mir die Sache viel einfacher. Schon mal was von "X-Media Recode" gehört? Denn das ist für solcherlei Umwandlungen sozusagen "die eierlegende Wollmilchsau", will heißen, es gibt kaum etwas, was der "X-Media Recode" nicht umwandeln kann, wohin auch immer.

    Kurze Anleitung hierzu:

    X-Media Recode starten. (Logisch, gelle?)
    Je nach Art der zu wandelnden Daten oben auf "Film" oder "DVD/Blue-Ray" stellen.
    Bei "Dateiname" Video- oder Audio-Datei eingeben.
    Darunter, beim Reiter "Format" in diesem Fall bei "Profil" "Benutzerdefiniert" und bei "Format" eben "AC3" einstellen. (Voraussetzung ist natürlich, das ein AC3-Codec auf dem Rechner installiert ist). Rechts daneben "Nur Audio" aktivieren.

    Nun im Reiter "Audio" bei "Allgemein" folgende Einstellungen tätigen:

    Modus = Konvertieren
    Codec = AC3
    Abtastrate = 48000
    Bitrate-Kontrollmodus = konstante Bitrate
    Bitrate (kbps) = (z.B.) 192
    Kanäle = Stereo
    Tiefpass (Hz) = 0 (Auto)

    Jetzt sollte man im Reiter "Audio" auf "Lautstärke-Korrektur" gehen. Oberhalb der Einstellungsmöglichkeiten sollten jetzt die vorher getanen Angaben (Stream,usw.) eingetragen sein.

    Darunter einstellen:

    Modus = Konvertieren
    Codes = AC3 (selbstredend!)
    Nun bei "Lautstärke-Korrektur" auf "Lautstärke normalisieren (dB)" gehen und aktivieren.
    Bei "Normalisieren (dB) sollte nun "89.0" eingestellt sein.
    Die "Track Lautstärke" und "Track Anpassung" können bei 0.0 dB stehen bleiben.
    Nun sollte man den Haken bei "Automatische Analyse" setzen oder man kann nun auch rechts auf "analysieren" klicken, um den Analyse-Vorgang per Hand zu starten.

    Nach kurzer Dauer sollte nun nach der Analyse ein Wert auftauchen, der besagt, wie die momentanen Eigenschaften der Lautstärke sind und ob X-Media Recode den Wert danach senkt oder anhebt. Der Vorteil ist, dass alles, was am Ende dabei herauskommt, so ziemlich gleich laut ist, egal ob der Gesamt-Ton vorher recht leise oder zu laut war.

    Nun sollte man dem Programm ganz unten sagen, wohin man die fertige Datei denn gerne hätte. Nun kann man auf den Reiter "Jobs" gehen und dann mit dem grünen Kreuz "Job hinzufügen" ganz oben den Job aktivieren (taucht dann im 2. Fenster auf.)
    Den Reiter "Filter/Vorschau" kann man hier außer acht lassen.

    Nun kann das Ganze mit Klick auf "Kodieren" gestartet werden. Nach kurzer Zeit hat man eine fertige und Lautstärke-mäßig angepasste AC3-Datei. :ja:

    Gruß, Rudi Ratlos

    ...Alter schützt vor´m Computer nicht!......

    Aber manche Greise sind doch noch weise!!

  • Eine "static"-Version von ffmpeg hat den Vorteil, dass sie das meiste aus Laufzeitbibliotheken des Compilers schon in der EXE enthalten hat, man also nicht nachforschen muss, welche "Runtime" man installiert haben muss. Dafür ist die EXE dann eben auch erheblich größer.

    Die Dokumentation zu ffmpeg ist erstens extrem umfangreich, zweitens unvollständig (die Parameter zusätzlicher Codec-Bibliotheken ist nicht enthalten; sie entsprechen meist abgewandelt den Parametern eigenständiger Encoder, aber die Art der Abwandlung muss man wissen), und drittens weit über mehrere Abschnitte verstreut... Da ist Hilfe von erfahreneren Anwendern sicher die beste Lösung.

  • Quote

    Kann mir vielleicht jemand ein Beispiel aufzeigen wie man eine DTS-Datei in eine Stereo-Datei umwandelt ?


    Ja, ist aber ne dumme Idee, da der Downmix in ffmpeg quasi nicht existent ist da werden dann einfach die Kanäle weggelassen,..
    Würde i.d.R. zum Decoden ffmpeg, zum Downmixen sox und zum Encoden aften verwenden.

    5.1->Stereo

    Code
    ffmpeg -threads 8 -v -10 -y -i "input.dts" -ac 6 -acodec pcm_s16le -f s16le - | sox --ignore-length --buffer 2097152 -S -t raw -e signed-integer -2 -c6 -r48000 - -t wav - remix -m 1v0.3694,3v0.2612,5v0.3694 2v0.3694,3v0.2612,6v0.3694 norm gain -2 treble +2 | aften -v 2 -pad 0 -readtoeof 1 -b 224 - "output.ac3"


    5.1->Stereo (DPL)

    Code
    ffmpeg -threads 8 -v -10 -y -i "input.dts" -ac 6 -acodec pcm_s16le -f s16le - | sox --ignore-length --buffer 2097152 -S -t raw -e signed-integer -2 -c6 -r48000 - -t wav - remix -m 1v0.3205,3v0.2265,4v0.2265,5v0.2265 2v0.3205,3v0.2265,4v-0.2265,5v-0.2265 norm gain -2 treble +2 | aften -v 2 -pad 0 -readtoeof 1 -b 224 - "output.ac3"


    5.1->Stereo (DPL2)

    Code
    ffmpeg -threads 8 -v -10 -y -i "input.dts" -ac 6 -acodec pcm_s16le -f s16le - | sox --ignore-length --buffer 2097152 -S -t raw -e signed-integer -2 -c6 -r48000 - -t wav - remix -m 1v0.3254,3v0.2301,5v0.2818,6v0.1627 2v0.3254,3v0.2301,5v-0.1627,6v-0.2818 norm gain -2 treble +2 | aften -v 2 -pad 0 -readtoeof 1 -b 224 - "output.ac3"


    5.1->Stereo (DPLLFE)

    Code
    ffmpeg -threads 8 -v -10 -y -i "input.dts" -ac 6 -acodec pcm_s16le -f s16le - | sox --ignore-length --buffer 2097152 -S -t raw -e signed-integer -2 -c6 -r48000 - -t wav - remix -m 1v0.2613,3v0.1847,4v0.1847,5v0.1847,6v0.1847 2v0.2613,3v0.1847,4v0.1847,5v-0.1847,6v-0.1847 norm gain -2 treble +2 | aften -v 2 -pad 0 -readtoeof 1 -b 224 - "output.ac3"


    5.1->Stereo (DPL2LFE)

    Code
    ffmpeg -threads 8 -v -10 -y -i "input.dts" -ac 6 -acodec pcm_s16le -f s16le - | sox --ignore-length --buffer 2097152 -S -t raw -e signed-integer -2 -c6 -r48000 - -t wav - remix -m 1v0.2646,3v0.1870,4v0.1870,5v0.2291,6v0.1323 2v0.2646,3v0.1870,4v0.1870,5v-0.1323,6v-0.2291 norm gain -2 treble +2 | aften -v 2 -pad 0 -readtoeof 1 -b 224 - "output.ac3"


    5.1->5.1

    Code
    ffmpeg -threads 8 -v -10 -y -i "input.dts" -ac 6 -acodec pcm_s16le -f s16le - | sox --ignore-length --buffer 2097152 -S -t raw -e signed-integer -2 -c6 -r48000 - -t wav - gain -2 treble +2 | aften -v 2 -pad 0 -readtoeof 1 -b 224 - "output.ac3"

    hier auch mal nur mit ffmpeg&sox:
    5.1->Stereo

    Code
    ffmpeg -threads 8 -v -10 -y -i "input.dts" -ac 6 -acodec pcm_s16le -f s16le - | sox --ignore-length --buffer 2097152 -S -t raw -e signed-integer -2 -c6 -r48000 - -t wav - remix -m 1v0.3694,3v0.2612,5v0.3694 2v0.3694,3v0.2612,6v0.3694 norm gain -2 treble +2 | aften -v 2 -pad 0 -readtoeof 1 -b 224 - "output.ac3"


    5.1->Stereo (DPL)

    Code
    ffmpeg -threads 8 -v -10 -y -i "input.dts" -ac 6 -acodec pcm_s16le -f s16le - | sox --ignore-length --buffer 2097152 -S -t raw -e signed-integer -2 -c6 -r48000 - -t wav - remix -m 1v0.3205,3v0.2265,4v0.2265,5v0.2265 2v0.3205,3v0.2265,4v-0.2265,5v-0.2265 norm gain -2 treble +2 | aften -v 2 -pad 0 -readtoeof 1 -b 224 - "output.ac3"


    5.1->Stereo (DPL2)

    Code
    ffmpeg -threads 8 -v -10 -y -i "input.dts" -ac 6 -acodec pcm_s16le -f s16le - | sox --ignore-length --buffer 2097152 -S -t raw -e signed-integer -2 -c6 -r48000 - -t wav - remix -m 1v0.3254,3v0.2301,5v0.2818,6v0.1627 2v0.3254,3v0.2301,5v-0.1627,6v-0.2818 norm gain -2 treble +2 | aften -v 2 -pad 0 -readtoeof 1 -b 224 - "output.ac3"


    5.1->Stereo (DPLLFE)

    Code
    ffmpeg -threads 8 -v -10 -y -i "input.dts" -ac 6 -acodec pcm_s16le -f s16le - | sox --ignore-length --buffer 2097152 -S -t raw -e signed-integer -2 -c6 -r48000 - -t wav - remix -m 1v0.2613,3v0.1847,4v0.1847,5v0.1847,6v0.1847 2v0.2613,3v0.1847,4v0.1847,5v-0.1847,6v-0.1847 norm gain -2 treble +2 | aften -v 2 -pad 0 -readtoeof 1 -b 224 - "output.ac3"


    5.1->Stereo (DPL2LFE)

    Code
    ffmpeg -threads 8 -v -10 -y -i "input.dts" -ac 6 -acodec pcm_s16le -f s16le - | sox --ignore-length --buffer 2097152 -S -t raw -e signed-integer -2 -c6 -r48000 - -t wav - remix -m 1v0.2646,3v0.1870,4v0.1870,5v0.2291,6v0.1323 2v0.2646,3v0.1870,4v0.1870,5v-0.1323,6v-0.2291 norm gain -2 treble +2 | aften -v 2 -pad 0 -readtoeof 1 -b 224 - "output.ac3"


    5.1->5.1

    Code
    ffmpeg -threads 8 -v -10 -y -i "input.dts" -ac 6 -acodec pcm_s16le -f s16le - | sox --ignore-length --buffer 2097152 -S -t raw -e signed-integer -2 -c6 -r48000 - -t wav - gain -2 treble +2 | aften -v 2 -pad 0 -readtoeof 1 -b 224 - "output.ac3"

    und zu guter Letzt noch nur ffmpeg:
    5.1->5.1

    Code
    ffmpeg -ab 256 -ar 48000 -ac 6 -acodec ac3 -i "input.dts" output.ac3


    stereo->stereo

    Code
    ffmpeg -ab 256 -ar 48000 -ac 2 -acodec ac3 -i "input.dts" output.ac3

    Cu Selur

    Ps.: Wenn man sich http://forum.gleitz.info/showthread.php…dio-up-downmix-.. , http://forum.doom9.org/showthread.php?t=152034 und http://sox.sourceforge.net/sox.html durchliest kann man eventuell nachvollziehen was da gemacht wird und den DownMix auch noch nach dem eigenen Geschmack anpassen.

    PPs.: ein erfahrener ffmpeg User bin ich aber definitiv nicht! hab mir auch nur das nötigste angelesen und durch try&error beigebracht,...

  • Hallo Selur,

    Hab ganz vergessen dir für die Beispiele zu danken. Also, vielen Dank :)

    Gibt es eine Möglichkeit Audiodateien zeitlich zu strecken ? Beispiel wäre eine AC3-Datei die 89 Minuten lang ist, die Videospur ist aber 90 Minuten lang. Kann man die Audiodatei auf 90 Minuten strecken ? Und geht das Ganze auch umgekehrt (Audiodatei verkürzen) ?

    Gerd

  • Ja, ist kein Problem.
    Kannst Du über 'speed', 'tempo' und 'stretch' machen.

    Quote

    speed factor[c]

    Adjust the audio speed (pitch and tempo together). factor is either the ratio of the new speed to the old speed: greater than 1 speeds up, less than 1 slows down, or, if appended with the letter ‘c’, the number of cents (i.e. 100ths of a semitone) by which the pitch (and tempo) should be adjusted: greater than 0 increases, less than 0 decreases.

    By default, the speed change is performed by resampling with the rate effect using its default quality/speed. For higher quality or higher speed resampling, in addition to the speed effect, specify the rate effect with the desired quality option.

    Quelle: http://sox.sourceforge.net/sox.html

    Quelle: http://sox.sourceforge.net/sox.html

    Quote

    stretch factor [window fade shift fading]

    Change the audio duration (but not its pitch). This effect is broadly equivalent to the tempo effect with (factor inverted and) search set to zero, so in general, its results are comparatively poor; it is retained as it can sometimes out-perform tempo for small factors.

    factor of stretching: >1 lengthen, <1 shorten duration. window size is in ms. Default is 20ms. The fade option, can be ‘lin’. shift ratio, in [0 1]. Default depends on stretch factor. 1 to shorten, 0.8 to lengthen. The fading ratio, in [0 0.5]. The amount of a fade’s default depends on factor and shift.

    See also the tempo effect.

    Quelle: http://sox.sourceforge.net/sox.html

    Ob Du speed, tempo oder stretch verwenden willst musst Du selber entscheiden.

    Cu Selur

  • Man kann.

    Dann müsste man aber AC3 in PCM decodieren, das decodierte PCM strecken, und das gestreckte PCM wieder nach AC3 encodieren; der letzte Schritt sorgt aber für völlig andere Dynamikwerte im neu encodierten Material, und dann heulen wieder alle "Das ist aber viel zu leise!".

    Gut, wenn die Quelle dts war und AC3 ohnehin erst durch Konvertierung entstanden ist, spielt das keine so große Rolle. Aber bei AC3 aus dem Tonstudio, mit effektreicher Abmischung, ist es schon ein Unterschied.

  • Mir kommt es so vor, das die Audiobearbeitung komplizierter ist als die Videobearbeitung. Ich stehe zwar immer noch so ziemlich am Anfang, aber in Sachen Videobearbeitung habe ich schon einiges hinbekommen.
    Nur, grundsätzlich einen zügigen Workflow zu finden, bei all diesen Zwischenschritten, ist auch nicht immer so einfach.

    Gerade bei der Audiobearbeitung im Bereich AC3/DTS kann ich gar nicht überprüfen wie das Resultat ist. Mich interessiert es schon sehr AC3 in PCM zu decodieren, zu bearbeiten und dann wieder in das 5.1 Format zu packen. Aber ohne 5.1 Anlage tappe ich im Dunkeln. Vielleicht kauf ich mir so einen 5.1 Kopfhörer. Den kann man ja am Audioout des Computers (Audiokarte) anschliessen.

  • Quote

    Aber ohne 5.1 Anlage tappe ich im Dunkeln


    In Audacity kann man sich die Wellen angucken,.. :) ansonsten ist klar das Du Probleme hast, wenn Du nicht das Equipment hast um das Material ordentlich abzuspielen. Videobearbeitung auf einem 7" scharz/weiß Bildschirm wäre auch kompliziert. ;)

    Quote

    Mir kommt es so vor, das die Audiobearbeitung komplizierter ist als die Videobearbeitung.


    Glaub ich nicht, mit dem Audio beschäftigen sich nur weniger Leute so intensiv weshalb es da weniger 'einfache' und freie Lösungen und Anleitungen gibt.

    Cu Selur

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!