
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