eac3to dts Konvertierung zu leise wegen Normalisierung?

  • Hallo zusammen,

    ich habe hier einen dts Track den ich mit eac3to nach AAC (qaac) convertiere.

    Code
    "C:\Program Files (x86)\Video Tools\eac3to-3.31\eac3to.exe" track_1.dts stdout.wav -normalize| "C:\Program Files (x86)\Video Tools\qaac_2.58\qaac_2.58\x64\qaac64.exe" --ignorelength --no-delay -q 2 -V 91 - -o track_1.mp4

    Nun, das Problem ist das track_1.mp4 sehr sehr leise ist, und das obwohl (oder vielleicht gerade deshalb) "-normalize" eingeschaltet ist.
    Oder fehlt da noch was in der eac3to Befehlszeile ?

    Nachtrag: Ich haben den ArcSoft DTS Decoder (1.1.0.8) installiert

    Einmal editiert, zuletzt von may24 (2. November 2016 um 12:15)

  • ok, anderer Ansatz:

    Ich hab mal die neuste FFmpeg Version gebaut und den .dts Track nach AAC gecoded. Gleiches Ergebnis. Viel zu leise!
    Schätzungsweise müsste der Pegel so um +10dB angehoben werden ...

    Meine Idee ist das Ganze durch Sox zu pipen und dort die Korrektur zu machen.
    Nur weiß ich nicht wie das geht ?
    Kann Sox mit DRC umgehen .. und wenn ja wie ?

  • Richtet sich die eac3to-Normalisierung nicht nach dem Peak? Eine extrem laute Stelle und die ganze Spur würde relativ leise. Aus dem Log müßtest Du sehen können, wie genau eac3to die Lautstärke ändert. Alternativ gibt es in ffmpeg noch "dynaudnorm", welcher die Lautstärke glättet. Such mal danach, wurde auch hier im Forum mal drüber gesprochen.

    2 Mal editiert, zuletzt von sneaker2 (4. November 2016 um 12:30)

  • Also das "dynaudnorm" hat - wenn überhaupt - nur Nuancen verändert aber bei weitem nicht wie ich mir das vorgestellt habe.
    Öffne ich das Ganze mal in Goldwave sehe ich praktisch keine Veränderungen.

    Der Einfachheit wegen hab ich jetzt pauschal +10dB draufgelklatscht:

    Code
    /opt/ffmpeg/bin/ffmpeg -i "Track_01.dts" -c:a libfdk_aac -vbr 4 -af "volume=10dB" Track_01.mp4

    Erst mal ok, aber die Lösung ist doch eher "unschön" ...
    'ne echte "Dynamic Compression" wäre schon besser ... aber wie ?

    Soweit mir bekannt, liefert doch .dts DRC Information mit ... (?) Kann ich mir die irgendwie/irgendwo ansehen ... und sollte ffmpeg damit nicht umgehen können ?

  • Da verwechselst du AC3 mit dts. In AC3 (Dolby Digital) gibt es bessere Unterstützung für größere Dynamik als in dts. Bei DVD Video gilt die Veranschaulichung, dass man mit dts nur 6-Kanal in 16 bit Auflösung auf die Bitrate von 1- oder 2-Kanal 16 bit PCM quetschen wollte, wobei der Verlust durch Psychoakustik-Filterung eher gering ausfallen sollte. Es sind also noch eher viele kaum hörbare Frequenzanteile enthalten, dafür aber in geringerer Auflösung. Dagegen erlaubt Dolby Digital größeren Dynamikumfang (Auflösung bis etwa 24 bit), filtert aber die wahrscheinlich unhörbaren Frequenzanteile.

    Bei einem Downmix mit Normalisierung wird versucht, Übersteuerung während der gewichteten Summenbildung zu vermeiden. Dafür gibt es mehrere mögliche Methoden: Pessimistisch = 1/6, weil ja alle Kanäle gleichzeitig maximal ausgesteuert sein könnten; vernünftig = Quadratwurzel(1/6), weil das praktisch durch Kanalkupplung nicht vorkommt und in den gewichteten Summen ja auch negative Summanden sind; 2-pass = erst nach dem Maximum suchen, dann dieses als Verstärkungsfaktor benutzen. Welches dieser drei Verfahren eac3to (bzw. der ArcSoft-Decoder dieser speziellen Version) verwendet, weiß ich nicht genau. Aber wenn du +10 dB brauchst, möglicherweise das pessimistische. Allerdings wäre so eine pauschale Normalisierung auch nur bei einem Downmix (6 auf 2 Kanäle) sinnvoll. 2-pass-Normalisierung würde in jedem Fall optimal den Wertebereich ausschöpfen, aber eben nur für das eine lauteste Sample der gesamten Spieldauer.

    Dynamikkomprimierung führt zur Lautstärkeanhebung leiser Szenen. In einem gut steuerbaren AC3-Decoder wie azid (in BeSweet enthalten) lässt sich das nach Bedarf in unterschiedlicher Stärke aktivieren. Auch viele A/V-Receiver unterstützen einen "Midnight Mode". Weil in Dolby Digital fließkomma-artige Speicherformate verwendet werden (Mantisse + Exponent), lässt sich am Exponenten schon eine Größenordnung der Lautstärke ablesen, so wird eine Dynamikkomprimierung technisch recht einfach.

  • Also das "dynaudnorm" hat - wenn überhaupt - nur Nuancen verändert aber bei weitem nicht wie ich mir das vorgestellt habe.
    Öffne ich das Ganze mal in Goldwave sehe ich praktisch keine Veränderungen.
    [...]
    'ne echte "Dynamic Compression" wäre schon besser ... aber wie ?


    Kann dynaudnorm doch? Mußt halt mit den Einstellungen experimentieren.
    https://ffmpeg.org/ffmpeg-filters.html#toc-dynaudnorm

  • Hm ffmpeg macht hier sehr komische Sachen !
    Nach der Kovertierung sagt mir Mediainfo:

    Wieviele Kanäle hab ich denn jetzt ???

  • ja, aber damals gings um qaac ... und das hier ist ffmpeg (mit libfdk_aac)
    Ich timme eher mal auf 5.1 ... aber da muß ich erst den RAW Stream genauer inspizieren.

  • http://forum.gleitz.info/showthread.php…ll=1#post456695

    Code
    /opt/ffmpeg/bin/ffmpeg -i "Track_01.dts" -c:a libfdk_aac -vbr 4 -af "volume=10dB" Track_01.mp4


    Nachtrag: Gibt's eigentlich die Möglichkeit einen AAC Multichannel Stream in seine Mono Teile zu zerlegen ?
    Ich hab hier was gefunden ... aber so wie das aussieht würde alles erst mal in wav konvertiert - was dann wieder re-codiert werden müßte.

    2 Mal editiert, zuletzt von may24 (10. November 2016 um 14:21)

  • Siehe hier: Manipulating audio channels with ffmpeg

    amerge-Filter
    channelsplit-Filter
    channelmap-Filter


    aber so wie das aussieht würde alles erst mal in wav konvertiert - was dann wieder re-codiert werden müßte.

    Eigentlich nicht, aber über einen Filtergraphen kann man nicht "kopieren", Beispiel:

    3 Mal editiert, zuletzt von Endoro (10. November 2016 um 15:30) aus folgendem Grund: Ergänzungen

  • Effiziente Audioformate (dazu zähle ich AAC auf jeden Fall) verwenden ein "Channel Coupling"; einfachste Form davon ist die Mid/Side-Codierung in MP3, die also die Summe und die Differenz des ehemals linken und rechten Kanals speichert, weil die Differenz oft relativ gering ist, daran kann man Bitrate sparen und an die Summe delegieren. Ohne Decodierung könnte man da die Kanalinhalte nicht voneinander trennen. Erst recht nicht bei Mehrkanalton, wenn deren Kanal-Abhängigkeiten untereinander noch stärker sind.

    Bei einigen HD-Audioformaten existiert aber oft ein Kern, der noch abwärtskompatibel zur Generation DVD Video ist und daher maximal 5.1 speichert, und darüber hinaus zusätzliche Daten. Die verbreiteten Formate kann eac3to aufspalten (über den Parameter "-core" oder spezifische Dateiendungen). Das sind dann aber auch keine einzelnen Kanäle.

Jetzt mitmachen!

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