
我正在嘗試使用 ffmpeg 生成圖像縮圖。該資料夾包含各種不同解析度的 jpeg 檔案。
ffmpeg -y -i input1.jpg -filter_complex "scale=(iw*sar)*max(238/(iw*sar)\,358/ih):ih*max(238/(iw*sar)\,358/ih), crop=238:358" thumbnail.jpg
它適用於資料夾中的大多數影像,但crop=238:358
會根據某些影像解析度而失敗:
input1.jpg: 500x800
調整大小並裁剪成功
input2.jpg: 470x800
調整大小和裁剪失敗:
寬度“238”或高度“358”的尺寸太大或非正數無效
237px
當縮放圖像而不是238px
由於縱橫比縮放時,就會出現問題。
由於這是一個處理一堆文件的腳本,我正在尋找一個可以處理所有圖像解析度的解決方案
答案1
比例過濾器會將表達式的結果截斷為整數,並且表達式可能會產生例如 237.999,它會被截斷為 237。
ffmpeg -y -i input1.jpg -vf "scale=(iw*sar)*max(238.1/(iw*sar)\,358.1/ih):ih*max(238.1/(iw*sar)\,358.1/ih), crop=238:358" thumbnail.jpg