Audio konvertieren channel data fehlt

bul

Cadet 4th Year
Registriert
Juni 2013
Beiträge
106
Hallo Zusammen,

ich habe bemerkt, dass bei Audiokonvertierungen von Film-Audiotracks bei mir im Endergebnis am Fernseher schlecht ist.
Die Hintergrundmusik ist gefühlt zu laut und die Dialoge im Verhältnis zu leise.
Jetzt bin ich auf diese Audiometadaten/Channeldaten gestoßen, die in der konvertierten Version fehlen (vgl. Bild).

Quelleformat ist alles mögliche von AC3 eac oder truehd. Zielformat ist Opus.

Kennt jemand von euch ein (kostenloses) (Konvertier-)Programm, was diese Metadaten überträgt?
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    62,3 KB · Aufrufe: 85
Das Problem kennt wahrscheinlich jeder, der öfter Filme konvertiert: Musik zu laut, Sprache zu leise – gerade bei Downmix auf Stereo oder bei Umwandlung in Formate wie Opus. Die fehlenden Metadaten (wie z.B. Channel Layouts oder Dialnorm) können da eine Rolle spielen, vor allem wenn der Player (bzw. der TV) diese Infos nutzt, um die Lautstärkeverhältnisse anzupassen. FFmpeg kann das zwar grundsätzlich, aber du musst explizit dafür sorgen, dass z.B. Channel Layouts und andere Infos sauber mit übertragen oder nachgebaut werden.

Als Ansatz:
ffmpeg -i input.mkv -c:v copy -c:a libopus -map_metadata 0 -disposition:a:0 default output.mkv

Passendes Channel-Layout:
-af "channelmap=channel_layout=5.1"
oder 2.0 je nach Quelle

Leider übernimmt FFmpeg manche Metadaten nicht automatisch beim Wechsel auf andere Codecs (wie Opus), weil die Formate das teilweise auch nicht sauber unterstützen. Bei TrueHD oder EAC3 gehen oft auch Features wie Dialnorm verloren. Tools mit GUI wie Shutter Encoder oder XMedia Recode können helfen, aber auch da ist's Glückssache, ob Metadaten korrekt übernommen werden. Wenn du verlustfrei arbeitest und Metadaten erhalten willst, ist MKVToolNix auch nützlich – damit kannst du prüfen, ob beim Remuxen Infos verloren gehen. 100 % sauber ist’s selten. Willst du’s einfach, nutz libopus mit expliziten Channel-Angaben in FFmpeg – und bei wichtigen Tonspuren vielleicht einfach AC3 beibehalten.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: bul
Das wäre dann also für 5.1 das Folgende?
ffmpeg -i input.mkv -c:v copy -c:a libopus -af "channelmap=channel_layout=5.1" -map_metadata 0 -disposition:a:0 default output.mkv

Und für 2.0 oder 7.1 dann entsprechend den channel_Layout-String anpassen?
Hmm, mal sehen wie ich das mache, denn in einigen MKVs sind 7.1, 5.1 und teilweise Stereo schon dabei. Da passt so eine generelle Commandline eher nicht, aber danke für den Way Ahead!
 
Das channelmap-Filter in FFmpeg ist primär dafür da, Kanäle umzuleiten (z.B. wenn du Center auf Left legen willst), weniger um einfach nur ein Channel Layout zu setzen. Wenn du nur das Layout korrekt setzen willst reicht meist:
ffmpeg -i input.mkv -c:v copy -c:a libopus -map_metadata 0 -disposition:a:0 default -channel_layout 5.1 output.mkv

Für 2.0 oder 7.1 dann entsprechend -channel_layout stereo bzw. -channel_layout 7.1.
Wenn du mehrere Tonspuren drin hast, brauchst du pro Spur die passende -c:a:x + -channel_layout-Angabe.
Und ja, wenn’s bunt gemischt ist (manchmal 5.1, manchmal 2.0 usw.), dann hilft leider nur ein Script, das vorher ffprobe nutzt, um das Channel Layout zu prüfen, und dann entsprechend die Kommandozeile zusammenbaut. Sonst wird’s bei Batch-Verarbeitung schnell unsauber.
 
bul schrieb:
im Endergebnis am Fernseher schlecht ist.
Kurz... wenn Du Multichannel beibehalten möchtest, lass es so. Kopiere die Tonspuren unangetastet. Da stecken mehr Metadaten drin (die für eine korrekte Wiedergabe essentiell wichtig sind) als man auf den ersten Blick vermuten würde. Wenn keine vorgefertigte Stereospur (immer beste Wahl) vorhanden ist und Du selbst runterkonvertieren willst, schau dich im Netz um nach ffmpeg Beispielen. Da sind meist -3dB für die hinteren Kanäle involviert. Der Rest ergibt sich aus der Addition. Damit wird der Dynamikumfang auf ein erträgliches Level gebracht. Versuche nicht 5.1 nach 5.1 zu transkodieren, nur um ein paar Bytes zu sparen. Das ist es nicht wert und das Potenzial zu hoch, dass man die dynamische Kompression komplett vergeigt.
 
Zuletzt bearbeitet:
Ich mache mir die Stereoversion jetzt mit foobar 2000 und einem plugin. Gibts halt nur als 32bit, aber funktioniert ganz gut.
 

Anhänge

  • 0foomix.png
    0foomix.png
    35,6 KB · Aufrufe: 8
Zurück
Oben