Размер обрезки FFMPEG всегда неправильный - PullRequest
0 голосов
/ 19 апреля 2020

Мне нужно, чтобы куча видео была ТОЧНО 1024x512 (мощность 2 видео), не на пиксель меньше, не на пиксель больше ..

Я сначала масштабирую их до ширины 1024

Затем обрезаем их до 1024x512

Проблема заключается в том, что

результат всегда заканчивается на 1 пиксель больше или на 2 пикселя меньше по ширине et c ...

Source dimension : 1624 × 1080
Output dimension : 1022 × 512
Source dimension : 1264 × 720
Output dimension : 1025 × 512
rm -R ./output

mkdir output

cd input

for i in *.mp4;

  do name=`echo "$i" | cut -d'.' -f1`

  FILE="${name}"

  TMP="temp.mp4"

  INPUT="${FILE}.mp4"

  OUT_PUT="../output/${FILE}.mp4"

  JPEG_OUTPUT="../output/${FILE}.jpg"

  echo FILE

  echo INPUT

  ffmpeg -i $INPUT -filter:v scale=1024:-2 -c:a copy ${TMP}

  ffmpeg -i ${TMP} -filter:v "crop=1024:512:exact=1" -c:a copy ${OUT_PUT}

  # ffmpeg -loglevel panic -i $OUT_PUT -vframes 1 -f image2 $JPEG_OUTPUT

  rm ${TMP}

done

1 Ответ

1 голос
/ 19 апреля 2020

Использование

ffmpeg -i $INPUT -filter:v "scale=1024:-2,crop=1024:512:exact=1,setsar=1" -c:a copy ${TMP}

Из-за настройки фильтра масштаба на SAR вполне вероятно, что средство проверки мультимедиа сообщает о разрешении, исправленном не SAR без единицы измерения. Фильтр setsar сбрасывает SAR на 1, чтобы предотвратить это.

...