FFMPEG. Перегнать видео в формат мобильного телефона. Соблюдение пропорций. Операнд PAD.

Материал из Мои заметки
Перейти к: навигация, поиск

Необходимо перегнать фильм из MKV с размерами 1280 x 536 в размер мобильного телефона с размерами 320 х 240 и сохранить пропорции. В формат mp4 с аудио в ac3 У меня такой способ расчёта пропорций (самый стандартный – математический ):

Если из 1280 должно получиться 320, то надо посчитать коэффициент для расчёта короткой стороны, для этого делим 1280 на 320, получаем 4. Значит, для расчёта короткой стороны мы должны поделить 536 на 4. Получаем 134.

Значит, если мы зададим результирующий размер, то у нас все получится. Как-бы не так!

У телефона экран 320 х 240, а если наше видео 320 х 134 мы запустим на телефоне, то оно растянет короткую сторону в 134 пиксела до 240, то есть у персонажей в нашем кино получатся вытянутые в высоту лица и т.д. Значит надо привести конечный файл к размеру 320 х 240, заполнив недостающие пиксели черным цветом сверху и снизу. Для этого сделан специальный видео фильтр PAD.

Давайте прикинем, сколько нужно добавить к 134 чтобы получилось 240? Очень просто: из 240 вычтем 134, получилось 106. Эти 106 пикселей нужно добавить к нашему видео, чтобы получилось как надо. Но мы же не хотим, чтобы эта полоса высотой в 106 пикселей была только сверху или снизу, для этого мы поделим эти 106 пкс на две полосы по 53 пкс и расположим сверху и снизу.

ffmpeg -i kino.mkv -vcodec mpeg4 -vb 500K -acodec libfaac -ar 44100 -ab 256K -ac 2 -vf «scale=320:135,pad=320:240:0:53:black,unsharp» -vol 700 -y kino.mp4

Расшифровываю -vf «scale=320:135,pad=320:240:0:53:black,unsharp»

  1. scale=320:135 – указываем ПРОПОРЦИОНАЛЬНЫЕ оригинальным размерам фильма размеры выходного файла.
  2. pad=320:240:0:53:black – 320:240 – реальный размер экрана телефона, :0:53 – по шкале Х – сдвиг 0, по шкале Y – сдвиг 53 пикселя.
  3. :black,unsharp – полосы будут черного (black) цвета. Можно добавить четкости unsharp. А можно и не добавлять. У этого фильтра тоже есть настройки. Нужно читать.