ffmpeg 자르기: '너비가 너무 크거나 양수가 아닌 크기가 잘못되었습니다.'

ffmpeg 자르기: '너비가 너무 크거나 양수가 아닌 크기가 잘못되었습니다.'

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

관련 정보