0

そのため、ビデオ ファイルをファイルの最後の 10 秒にカットする方法を探しています。通常は FFMPEG や mencoder を使用しますが、カットするファイルのサイズが毎回異なる場合があります。したがって、ffmpeg を使用して一般的な期間のものをいくつか見つけましたが、問題は、期間を 00:00:00 ではなく秒単位にする必要があるため、-ss に var-10 を使用することです。

うまく説明できたかわかりませんが、簡単に言うと:

実行されるたびに異なる長さのビデオ。新しいファイルの最後の 10 秒のみが必要です。リソースを軽くする必要がありますが、それでも高速です。

答えてくれてありがとう!

4

1 に答える 1

0

簡単ですが、それほど簡単ではなく、確かにそれほど速くはありません。一般的に、あなたが望むものは次のとおりです。

  • ビデオの全長を取得します。これは、ヘッダーから取得するのが非常に簡単な場合もあれば、ファイルに RTP ストリーム ダンプがある場合や、ファイル形式が可変 FPS をサポート (および使用) し、「長さ」フィールドがない場合など、非常に難しい場合もあります。ヘッダー。これらのケースでは、長さを決定するためにファイル全体を再生する必要がある場合があります。

  • この長さの -10 秒より前の最も近いキーフレームをシークします。これは、適切なキーフレームを持つインデックス ファイルの場合は非常に簡単かもしれませんが、上記の場合は難しいかもしれません。唯一のキーフレームが最初のキーフレームである場合もあるため、最後の 10 秒に到達するためだけにストリーム全体をデコードする必要があります。

  • この -10 秒のマークに到達するまで、キーフレームの後の数フレームをデコードします。

  • 残りのフレームを再エンコードします。理論的には、キーフレームが正確に -10 秒のマークにある場合、再エンコードせずにパケットをダンプできますが、それほど幸運ではない可能性があります。

于 2014-04-01T08:37:11.083 に答える