Wie Sie kontrollieren, key-frame-generation von ffmpeg?

Mache ich ein segmenter intervenieren ffmpeg write_frame-Funktion und Ausgabe von Daten in separaten Dateien. Jedes segmentierte Datei enthält segment von etwa 3 Sekunden video.

Den code tut Folgendes:

1 - Get transcoded packet  
2 - Check if it contains key frame data, if yes goto 3. 
3 - Check the duration of current segment, if it exceed 3 seconds, goto 4 
4 - Close file, and create new segment, write packet to segment file, goto-1

Allgemein gesprochen, jedes segment enthält mindestens 3 Sekunden video-Daten, und es beginnt mit einem Schlüssel-frame.

Das problem ist, dass der video-Ausgang ist Dauer sind sehr unterschiedlich, einige enthalten 3 Sekunden, einige enthalten 5 oder 6.

Ich vermute, dass das problem auf, wie ffmpeg generieren der key-frames bei der umcodierung. Wenn der "Abstand" zwischen zwei benachbarten keyframes sind 6s, ich habe 6 Sekunden-segment.

Hier meine Fragen:

  1. ist wahr, dass ffmpeg keyframes erzeugen in unregelmäßigen Abständen (und die Intervall-Zeit kann bis zu einigen Sekunden (zB. 6)?

  2. Wie können wir kontrollieren die ffmpeg-key-frame-generation? (ich denke, es sollte eine ffmpeg-Befehl argument für diese, -force_key_frames vielleicht, aber ich bin mir nicht sicher)

  • Hi jAckOdE, hast du das Problem behoben? Ich stehe vor das gleiche Problem jetzt.
  • Es ist schon einige Jahr her, ich kann mich nicht erinnern, was genau ich getan hatte. Aber die Idee ist zu spielen, um mit zwingen Schlüssel-frame generiert werden, in einem bestimmten interval (bitte google -force_key_frame) FFmpeg kann sich geändert haben, da bist du dann besser beziehen sich auf die Letzte Dokument. Hoffe, es hilft
  • Ok werde ich prüfen, danke jAckOdE
InformationsquelleAutor jAckOdE | 2013-01-02
Schreibe einen Kommentar