FFmpeg chapter setzen?

  • Weiß jemand wie ich mit ffmpeg Kapitel in meinem Output (mp4) setzen kann, wenn der Input nicht bereits die Chapter besitzt?
    Habe: .264 stream und ein Chapter file.
    Will: .mp4 file mit Chapter drinnen.
    (weiß wie es mit MP4Box geht, aber keine Ahnung wie man das mit ffmpeg macht)

    Cu Selur

  • Folgende zwei Befehle bewirken das gleiche, in die MP4 werden Nero- und Quicktime-Kapitel geschrieben:

    Code
    ffmpeg -i title01.mp4 -i title01.txt -c copy -map_metadata 1 title01m.mp4ffmpeg -i title01.mp4 -i title01.txt -c copy -map_chapters 1 title01c.mp4


    Der Parameter hinter -map_metadata bzw. -map_chapters bezeichnet den Index der Kapiteldatei in den Inputdateien beginnend mit "0".

    Um nur Quicktime-Kapitel zu schreiben fügt man -movflags disable_chpl ein.

    Code
    ffmpeg -i title01.mp4 -i title01.txt -c copy -map_metadata 1 -movflags disable_chpl title01m1.mp4ffmpeg -i title01.mp4 -i title01.txt -c copy -map_chapters 1 -movflags disable_chpl title01c1.mp4

    Die Kapiteldatei muss folgendes Format aufweisen:

    Code
    ;FFMETADATA1[CHAPTER]TIMEBASE=1/1000START=0#chapter ends at 0:01:00END=60000title=chapter \#1

    Hier noch ein Beispiel:

    Code
    ;FFMETADATA1[CHAPTER]TIMEBASE=1/1000000000START=0END=447000000000title=Chapter 01[CHAPTER]TIMEBASE=1/1000000000START=447000000000END=681320000000title=Chapter 02[CHAPTER]TIMEBASE=1/1000000000START=681320000000END=905320000000title=Chapter 03[CHAPTER]TIMEBASE=1/1000000000START=905320000000END=1125280000000title=Chapter 04[CHAPTER]TIMEBASE=1/1000000000START=1125280000000END=1243240000000title=Chapter 05[CHAPTER]TIMEBASE=1/1000000000START=1243240000000END=1458640000000title=Chapter 06[CHAPTER]TIMEBASE=1/1000000000START=1458640000000END=1657360000000title=Chapter 07

    Und das sagt mediainfo dazu:


    Menu #1 ist Quicktime, Menu #2 Nero.

    http://ffmpeg.org/ffmpeg-formats.html

  • ...

    Die Kapiteldatei muss folgendes Format aufweisen:

    Code
    ;FFMETADATA1[CHAPTER]TIMEBASE=1/1000START=0#chapter ends at 0:01:00END=60000title=chapter \#1

    Hier noch ein Beispiel:


    Dieses chapter format, wie, woher kommt das? kann das bei einem export erstellt werden oder muss man das manuell machen.
    Würde es auch zum chapterEditor hinzufügen wollen.

  • Manuell machen. Wobei die Timebase i.d.R. wohl overkill ist.


    autsch, sowas manuell zu machen kann anstrengend werden.

    die Timebase wird mit start/edn zeit multipliziert und man erhält die sekunden, soweit ich das verstehe.
    dann macht die timebase schon bissl sinn. aber obs nötig ist weis ich auch nicht.


    willst du das für dein Hybrid tool einbauen?

  • Zitat

    willst du das für dein Hybrid tool einbauen?


    Hab ich schon (lokal, hier :D), damit man alternativ zu MP4Box auch ffmpeg nutzen kann um .mp4 files zu erstellen. :)
    Time base gibt quasi an wie viele stellen nach dem Sekunden-Komma man es genau braucht. ;)

  • Dieses chapter format, wie, woher kommt das? kann das bei einem export erstellt werden oder muss man das manuell machen.
    Würde es auch zum chapterEditor hinzufügen wollen.

    Wenn Kapitel vorhanden sind, erstellt ffmpeg die Kapiteldatei.

    Code
    ffmpeg -i "InputFile" -f ffmetadata "MetaFile"

    Die angezeigte Warnung kann ignoriert werden.

    Code
    Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)

    Für jedes Kapitel wird ein [CHAPTER]-Abschnitt erzeugt.

Jetzt mitmachen!

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