私は 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.avi
ffmpeg はビデオ コーデックとオーディオ コーデックとしてそれぞれ MPEG-4 と MP3 を選択し、品質がかなり悪くなる可能性があることに注意してください。理想的には、ビデオ エンコーダとオーディオ エンコーダを指定します。例:
ffmpeg -i <input> -c:v libx264 -crf 23 -c:a aac -b:a 192k out.mp4
読むH.264 エンコーディング ガイド詳細については。