Lesen spezifischer MKV-Metadaten aus avconv

Lesen spezifischer MKV-Metadaten aus avconv

Ich möchte bestimmte Metadaten aus einer MKV-Datei extrahieren und als Dateinamen einer konvertierten Datei verwenden.

Beispiel: Wenn ich laufeavconv -i MyFile.mkv

Ich erhalte die folgende Ausgabe

avconv version 9.18-6:9.18-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers
  built on Mar 16 2015 13:19:10 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
Input #0, matroska,webm, from 'MyFile.mkv':
  Duration: 00:06:49.05, start: 0.000000, bitrate: 9062 kb/s
    Chapter #0.0: start 0.000000, end 409.057000
    Metadata:
      title           : UK Songs
    Stream #0.0: Video: h264 (High), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 1k tbn, 59.94 tbc (default)
    Metadata:
      title           : x264   1280x720   Bitrate=7843 kb/s
...

Ich möchte Metadata -> title- in diesem Fall "UK Songs". Ich kann keine Informationen zum Lesen dieser spezifischen Metadaten und zur Verwendung als Variable in derlibav-Dokumentation

Im Moment konvertiere ich die Datei mit

avconv -i MyFile.mkv -acodec copy MyFile.ac3"

Dadurch erhalte ich eine Datei mit dem Namen „MyFile.ac3“, obwohl ich eine Datei mit dem Namen „UK Songs.ac3“ haben möchte.

Antwort1

Dadurch werden nur die Titelmetadaten ausgegeben:

echo "$(avconv -i MyFile.mkv | grep '^\s*title\s*:' | sed 's/[[:space:]]*title[[:space:]]*:[[:space:]]//')"

Und so wird die Konvertierung in den gewünschten Dateinamen durchgeführt:

avconv -i MyFile.mkv -acodec copy "$(avconv -i MyFile.mkv | grep '^\s*title\s*:' | sed 's/[[:space:]]*title[[:space:]]*:[[:space:]]//').ac3"

Zumindest funktioniert dies hier auf meinem OS X mit Bash. Ich bin nicht 100 % sicher, ob sich sed auf Ihrem Ubuntu erheblich unterscheidet.

Antwort2

Sie können den Titel ffprobeallein mit erhalten (kein grep, sed, awk, usw. erforderlich). Ich bezweifle stark, dass avprobedas geht.

$ ffprobe -v error -show_entries format_tags=title -of default=nw=1:nk=1 in.mkv
  UK Songs

Sie können dieses Beispiel an Ihr bevorzugtes Skript/Ihre bevorzugte Shell/Ihren bevorzugten Befehl anpassen.

verwandte Informationen