• Ich werde irgendwie nicht richtig schlau aus mkvextract help

    Code
    mkvextract -h


    Wie extrahiere ich den Videostream h.264 (oder anderes) und den Audiostream AC3 (oder anderes) aus einer MKV in der Kommandozeile? Oder am besten einfach alle Spuren die die MKV beinhaltet.
    (mkvextractGUI gibt es nicht für Raspbian)
    Kann mir jmd. helfen?

  • Zuerst alle Spuren auflisten:

    Code
    mkvmerge -i "datei.mkv"


    Beispiel-Rückgabe:

    Code
    File 'datei.mkv': container: MatroskaTrack ID 0: video (MPEG-4p10/AVC/h.264)Track ID 1: audio (AC-3/E-AC-3)

    Die TrackIDs merken für mkvextract:

    Code
    mkvextract tracks "datei.mkv" "0:ausgabe1.264" "1:ausgabe2.ac3"

    Eine integrierte Funktion, um alle Spuren zu extrahieren, gibt es nicht.

  • Kurze Antwort:

    Code
    mkvextract tracks clip.mkv

    (P.S.: Wenn man keine einzelnen Tracks wählt, werden alle extrahiert, oder?!)

    Etwas ausführlicher:

    Welcher Track welche Nummer hat, sollte man vorher mit mkvinfo erfahren können. Ob man einzelne Tracks "roh" extrahieren sollte, hängt von deren Format ab.

  • Wäre dann sicherlich mal ein Verbesserungsvorschlag, zumindest u.U. ein "*" für die Tracknummer und evtl. (wenn überhaupt) eine Dateimaske für automatische Namensgebung... vielleicht gibts den ja schon.
    _

    Hmm, klingt so, als ob Mosu das gar nicht will und das Interpretieren von JSON für eine super Lösung hält. Viel zu kompliziert für jemanden, der noch nicht mal Batch auswendig kann...

  • Fänd ich auch gut, vllt. muss man mbunkus nochmal fragen, habe ihn schon mal angeschrieben wg. ner mkvmerge sache, hat mir prima geholfen. vllt. nochmal nerven ;)
    Extrahieren aller Spuren, Namengebung wäre mir da auch egal, Track1.ac3... , Track2.srt... usw. oder in der Art.

    Code
    mkvextract tracks all video.mkv


    :ja:

  • Wie könnte denn eine Batch aussehen, wenn ich mehrere MKV habe, Spur 0 und 1 jeweils immer?


    [Edit]
    Habs, so funktionierts:

    Code
    for file in *.mkv; do mkvextract tracks "$file" 0:"$file".track1.264 1:"$file".track2.ac3; done
    
    
    oder
    
    
    find -type f -name '*.mkv' -exec mkvextract tracks {} 0:{}.track1.264 1:{}.track2.ac3 \;

    Einmal editiert, zuletzt von _Laui_ (2. Oktober 2017 um 10:04)

Jetzt mitmachen!

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