私はffmpegのwrite_frame関数に介入し、出力データを別々のファイルに書き込むセグメンタを作っています。セグメント化された各ファイルには、約3秒のビデオセグメントが含まれています。ffmpegのキーフレーム生成を制御する方法は?
コードは以下のん:
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
一般的に言って、すべてのセグメントは、少なくとも3秒の映像データが含まれており、それがキーフレームで始まります。
問題は、出力ビデオの期間が、いくつかは、3秒が含まれている、非常に異なっているいくつかの問題がその原因ffmpegのは、トランスコーディング中にキーフレームを生成する方法に5または6
私は疑いを含有していることです。隣接する2つのキーフレーム間の「距離」が6秒の場合、6秒のセグメントが得られます。ここで
は私の質問です:。
は真のffmpegのは、不規則な間隔(インターバル時間にキーフレームを生成することが例えば(第2数6)までにできることである
どうやってできますか?
こんにちはjAckOdE、この問題を修正しましたか?私は今この同じ問題に直面している。 –
数年前になって、私は何をしたのか思い出すことができません。しかし、アイデアはキーフレームを強制的に特定の間隔で生成するようにしています(-force_key_frameのためにgoogleをお願いします)。FFmpegはその後変更されている可能性があります。希望する – jAckOdE
私は確認します、ありがとうjAckOdE –