web-dev-qa-db-ja.com

ffmpegを使用して、長さが指定されていないビデオの先頭からX秒を切り捨てることはできますか?

さまざまな長さの指定されていない一連のFLVレコーディングの最初の1秒または2秒をトリミングする必要があります。ビデオから指定された長さを抽出するためのリソース(30秒のクリップなど)はたくさん見つかりましたが、ビデオの最後まで続けるためのリソースは見つかりませんでした。

これらの試みはどちらも、ビデオのコピーされたバージョンを生成するだけで、必要なトリミングは行いません。

ffmpeg -ss 2 -vcodec copy -acodec copy -i input.flv output.flv

ffmpeg -ss 2 -t 120 -vcodec copy -acodec copy -i input.flv output.flv

2番目のものについての考えは次のとおりでした。おそらく、可能な範囲を超えて長さを指定した場合、それは最後まで行きます。サイコロはありません。

以下は魅力的なので、コーデックの問題やタイムコードの代わりに秒を使用することは問題ではないことを知っています。

ffmpeg -ss 2 -t 5 -vcodec copy -acodec copy -i input.flv output.flv

他のアイデアはありますか?私は他の(Windowsベースの)コマンドラインツールを使用できますが、ffmpegはサムネイルの作成に既に使用していて、使い慣れているので、ffmpegを強く支持しています。

問題がなければ、私の動画はすべて2分未満になります。

UPDATE:

私はメンコーダー( http://www.mplayerhq.hu/ )を使用するように切り替えました。それは、ffmpegが追加のハッカーなしではこれを達成できないようだからです。

私がやろうとしていることを達成するためのMencoder構文は次のとおりです。

mencoder.exe -ss 2 -oac copy -ovc copy input.flv -o output.flv
24
marcelebrate

試してください:

ffmpeg -i input.flv -ss 2 -vcodec copy -acodec copy output.flv

入力パラメータは最初にあるはずだと思います。

19
Dave

このコマンドはwillであり、ビデオを2秒からトリミングします。

ffmpeg -i input.flv -ss 2 -vcodec copy -acodec copy output.flv

問題は、input.flvのキーフレーム間隔にありました。これは5秒に設定されており、ビデオの開始時に3秒分の黒いフレームが生成されました(5-2 = 3)。その後、キーフレーム間隔を1秒に変更しましたが、私の場合は2秒でおそらく望ましい結果が得られます。

PDATE: Daveの回答ごとに-iおよび-ssパラメータの順序を更新しました。

23
marcelebrate

このように-iの前に-ssと-toを使用します。

ffmpeg -ss 00:01:10 -to 00:02:10 -i input -c copy output
0
Bora Savkar

この回答を更新すると、2019年の時点でコマンドは次のようになります。

ffmpeg -i input.flv -ss 2 -c copy output.flv
0
Matt Zabojnik