我完全是 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 批次檔。這裡,FOR
循環不像 Bash 循環那樣有尾隨; done
。
在Windows下:
FOR ... IN ... DO ...
在重擊下:
for ... in ...; do ...; done
因此,請確保您的 shell 使用正確的語法。
請注意,簡單地指定out.avi
將使 ffmpeg 分別選擇 MPEG-4 和 MP3 作為視訊和音訊編解碼器,並且您的品質可能會很差。理想情況下,指定視訊和音訊編碼器,例如:
ffmpeg -i <input> -c:v libx264 -crf 23 -c:a aac -b:a 192k out.mp4
閱讀H.264編碼指南了解更多。