Wörterbuch

Was ist Karaoke?

Was ist Karaoke? Karaoke ist live gesungen, zu aufgezeichneter Musik, während du den Text auf einem Bildschirm mitliest. In einer Mediendatei ist Karaoke ein Kennzeichen, das einen Stream als Karaoke-Audio markiert.

karaoke

Karaoke ist ein Musiksystem, das eine aufgenommene Begleitung zu einem bekannten Lied abspielt. Eine Person singt das Lied live dazu, meist indem sie den Text auf einem Bildschirm verfolgt. Das Wort bezeichnet auch die Aufführung selbst.

Das japanische Wort verbindet kara, was leer bedeutet, mit einer Kurzform des Wortes für Orchester. Karaoke bedeutet also wörtlich leeres Orchester.

In einem Metadatenbericht ist Karaoke ein Feld mit einer engeren Bedeutung. Der Name stammt von ffprobe, dem Dateileser des FFmpeg-Projekts.

FFmpeg listet jeden Teil einer Datei als eigenen Stream auf. Jeder Stream erhält eine Reihe von Flags, die Disposition genannt werden, zum Beispiel Karaoke und Attached Pic. Die FFmpeg-Dokumentation definiert dieses Flag in wenigen Worten: Der Stream enthält Karaoke-Audio.

Wie die Werte aussehen

Die Option -show_streams des ffprobe-Readers gibt das Flag für jeden Stream aus, auch in Dateien ohne Musik. In dieser Ausgabe hat das Flag 2 Werte:

  • 0: das Flag ist aus
  • 1: das Flag ist an, der Stream ist also als Karaoke-Audio markiert

Die genaue Form hängt vom Bericht ab. Ein JSON-Bericht zeigt "karaoke": 0, und ein Klartextbericht zeigt DISPOSITION:karaoke=0.

Welche Dateien sie enthalten

FFmpeg liest und schreibt dieses Flag in einigen Formaten, aber nicht in allen, wie diese Beispiele zeigen:

  • NUT: Ein Stream kann das Wort karaoke in einem Tag namens Disposition speichern
  • MKV: Die Matroska-Spezifikation hat Flags wie default, forced und commentary, aber kein Karaoke-Flag
  • MP4: Die FFmpeg-Liste der MP4-Trackrollen hat keinen Karaoke-Eintrag
  • AC-3- und E-AC-3-Audio: Die Audiodaten haben einen Service-Typ, und ein Wert bedeutet Karaoke

FFmpeg wandelt den Karaoke-Service-Typ in das Flag um, wenn das Audio 2 oder mehr Kanäle hat, auch in einer MKV- oder MP4-Datei. Bei anderen Audioformaten meldet ein Stream in einer MKV- oder MP4-Datei normalerweise 0, selbst wenn das Lied eine Karaoke-Version ist.

Einige Karaoke-Songs verwenden einen eigenen Dateityp. Die Library of Congress führt die Dateiendung kar für Karaoke-MIDI-Dateien auf.

Wo die Wörter des Liedes gespeichert sind

Das Karaoke-Flag enthält keine Wörter, sondern nur die Zahl 0 oder 1. FFmpeg hat ein eigenes Lyrics-Flag für einen Stream mit Liedtext. Der Text selbst sitzt in jedem Format an einem anderen Ort:

  • MP3: Der ID3v2-Frame USLT enthält die Lyrics ohne Timing, und der Frame SYLT speichert einen Zeitstempel zu jeder Silbe oder Texteinheit
  • MKV: Ein LYRICS-Tag enthält die Wörter, wenn das Timing nicht bekannt ist, oder als Kopie einer Untertitelspur

Woher der Wert kommt

FFmpeg setzt die Flags, wenn es jeden Stream erzeugt, oder später, wenn es den Stream untersucht. Bei einer NUT-Datei liest FFmpeg die Flags aus dem Disposition-Tag. Bei AC-3-Audio liest FFmpeg den Service-Typ aus den Audiodaten.

Mit der FFmpeg-Option -disposition kannst du das Flag selbst setzen. Standardmäßig kopiert FFmpeg die Flags vom Eingabestream in den Ausgabestream.

Ein Flag, das nur der Container hält, gelangt nur dann in die neue Datei, wenn das neue Format es speichern kann. Der FFmpeg-Writer für MKV hat keinen Code für dieses Flag.

Warum es wichtig ist

Eine Datei kann mehrere Audiostreams enthalten, und dieses Flag kann einen davon als Karaoke-Audio markieren. In FFmpeg-Befehlen wählt der Stream-Selektor disp:karaoke die Streams aus, die das Flag haben.

Das Flag ist nur ein Label, es beweist also nicht, was du hörst. Ein Wert von 0 beweist nicht, dass das Lied keine Karaoke-Version oder keinen Liedtext hat.