web-dev-qa-db-ja.com

ビデオの終わりからのffmpeg-videoトリム

期間の異なるビデオがいくつかあります。すべてのビデオの最後の5秒間をカット(削除)したいのですが、「ffmpeg」をループで使用してビデオをトリミングできますか?.

3
user241329

これにより、ファイルの長さが数秒で取得できます。

let A=$(avprobe input.webm 2>&1 | grep "^ *Duration: " | sed "s/^ *Duration: \\([0-9:]*\\).*/(((\\1)/" | sed "s/0\\([0-9]\\)/\\1/g" | sed "s/:/)*60+/g")

avprobeは秒の小数部を返しますが、bashは小数部を処理しません。だから私はただ1秒未満のすべてをドロップしています。

その後、次のようなことを簡単に行うことができます。

let A=$A-5
avconv -i input.webm -t $A -c:v copy -c:a copy output.webm

ffmpegを使用しないでごめんなさい。しばらく前にavconvに切り替えましたが、オプションは同じである必要があると信じています。そうでない場合は、必要に応じてそれらを書き換えるのは簡単です。

この後の質問は、forループで全体をラップし、すべてのファイルを一度に実行することだけです。

2
v010dya