scale в ffmpeg

iccup
На сайте с 01.05.2016
Offline
195
227
ffmpeg -i "/disk2/mp4/80003.mp4" -vf scale=iw/2:ih/2 "/disk2/thmp4/80003.mp4"
ffmpeg -i "/disk2/mp4/80003.mp4" -vf scale=720:-1 "/disk2/thmp4/80003.mp4"

Согласно мануалам 1-е выражение должно уменьшить стороны видео в 2 раза, а 2-е выражение сделает ширину 720 пикселей, а высоту подгонит под пропорции оригинала. Однако, эти команды отдают ошибки когда ввожу их в консоль centos.

Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

Да что не так?

Есть еще одна строчка

height not divisible by 2 (720x509)
кажется теперь понятно -  высота не делится на 2 (720x509), и как решить проблему?


kimsufi.com ( https://www.kimsufi.com ) очень дешевые и качественные дедики https://clck.ru/gvF9p - антибот, использую уже 3 года.
P0
На сайте с 17.06.2010
Offline
94
#1

Насколько помню, делается через костыль - высчитывается остаток от деления на 2 (1 или 0) и это значение прибавляется/отнимается от оригинального размера.

Для примера:

-vf scale=w=$width:h=$height:force_original_aspect_ratio=decrease,pad='iw+mod(iw\\,2)':'ih+mod(ih\\,2)'

Можно и через другие функции попробовать, например round /ceil.

https://ffmpeg.org/ffmpeg-utils.html#Expression-Evaluation

https://kinobox.tv/ - бесплатный плеер с фильмами для киносайта.
Д
На сайте с 01.04.2012
Offline
133
#2

scale="'w=if(gt(a,16/9),640,-2):h=if(gt(a,16/9),-2,360)'"
указывает на то, что видео будет масштабироваться так чтобы картинка и лица не растягивались, то-есть сохранять пропорции. 
VPN/SSD VPS в любой локации на выбор ( https://cp.inferno.name/cart.php ). Скидка 25% для новых заказов по промо-коду VESNA2024

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий