Was bedeutet das Flag „-movflags frag_keyframe+empty_moov“?

Was bedeutet das Flag „-movflags frag_keyframe+empty_moov“?

Beim Kodieren von Videos verwende ich FFMPEG -movflags frag_keyframe+empty_moov– ich habe es irgendwo im Internet gefunden – und es ermöglicht mir, einen MP4-Videostream zu erhalten (ohne es erhalte ich Could not write header for output file #0 (incorrect codec parameters ?)eine Fehlermeldung, wenn ich die Ausgabe irgendwohin streamen möchte, aber es funktioniert, wenn ich beispielsweise den Ausgabedateinamen übergebe out.mp4). Ich frage, weil dieses Flag auch irgendwie mein Video durcheinander bringt und ich es beispielsweise nicht auf Twitter hochladen kann, wenn ich dieses Flag verwende (ohne es akzeptiert Twitter mein Video). Es bringt also die Kodierung/das Format oder etwas anderes durcheinander … gibt es eine Problemumgehung?

Antwort1

Wie hier angegeben:https://stackoverflow.com/questions/8616855/how-to-output-fragmented-mp4-with-ffmpeg

  • frag_keyframe verursacht fragmentierte Ausgabe,
  • empty_moov führt zu einer 100% fragmentierten Ausgabe; ohne diese Option wird das erste Fragment als Kurzfilm gemultiplext (mit moov), gefolgt vom Rest des Mediums in Fragmenten.

Und in den FFmpeg-Dokumenten finden Sie eine Erklärung, was Fragmentierung ist:https://www.ffmpeg.org/ffmpeg-formats.html#mov_002c-mp4_002c-ismv

Normalerweise sind in einer MOV/MP4-Datei alle Metadaten zu allen Paketen an einem Ort gespeichert (am Ende der Datei, kann aber zur besseren Wiedergabe an den Anfang verschoben werden, indem den Movflags Faststart hinzugefügt wird oder das Tool qt-faststart verwendet wird). Eine fragmentierte Datei besteht aus mehreren Fragmenten, in denen Pakete und Metadaten zu diesen Paketen zusammen gespeichert sind. Das Schreiben einer fragmentierten Datei hat den Vorteil, dass die Datei auch dann dekodiert werden kann, wenn der Schreibvorgang unterbrochen wird (während eine normale MOV/MP4-Datei nicht dekodiert werden kann, wenn sie nicht richtig abgeschlossen wird), und es erfordert weniger Speicher beim Schreiben sehr langer Dateien (da beim Schreiben normaler MOV/MP4-Dateien Informationen zu jedem einzelnen Paket im Speicher gespeichert werden, bis die Datei geschlossen wird). Der Nachteil ist, dass es weniger kompatibel mit anderen Anwendungen ist.

Antwort2

Versuchen Sie stattdessen Folgendes:

-movflags faststart

verwandte Informationen