ffmpeg 同じビデオを複数回切り取る

ffmpeg 同じビデオを複数回切り取る

私は FFmpeg やプログラミングに関してはまったくの初心者なので、この質問はあまりにも愚かすぎるかもしれません... ビデオがあり、それを小さな部分に切り取ってそれぞれをレンダリングしたいので、FOR ループを使用しようとしています。

FOR /l %x IN (0,40,1000) DO ffmpeg -i sample.avi -filter:v "crop=20:20:x:x" outx.avi; done

私が得たものは次のとおりです: [NULL @ 0000000002624220] 'outx.avi;' に適した出力形式が見つかりません outx.avi;: 無効な引数

誰かこれを手伝ってくれませんか?

答え1

どうやら Windows バッチ ファイルを使用しているようです。ここでは、ループには、Bash ループのようにFOR末尾に がありません。; done

Windowsの場合:

FOR ... IN ... DO ...

Bash の下:

for ... in ...; do ...; done

したがって、シェルに適切な構文を使用するようにしてください。


単に指定すると、out.aviffmpeg はビデオ コーデックとオーディオ コーデックとしてそれぞれ MPEG-4 と MP3 を選択し、品質がかなり悪くなる可能性があることに注意してください。理想的には、ビデオ エンコーダとオーディオ エンコーダを指定します。例:

ffmpeg -i <input> -c:v libx264 -crf 23 -c:a aac -b:a 192k out.mp4

読むH.264 エンコーディング ガイド詳細については。

関連情報