Реклама на сайте Advertise with us

Ffmpeg и сохранение пропоций

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

нет судьбы

С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204


Передовик Master-X (16.07.2011) Передовик Master-X (16.10.2011) Передовик Master-X (01.11.2011) Передовик Master-X (16.11.2011) Передовик Master-X (01.01.2012) Ветеран трепа Master-X (16.02.2012)
Ссылка на сообщениеДобавлено: 15/03/11 в 01:09       Ответить с цитатойцитата 

Реально ли средствми ffmpeg любой ролик подогнать под фиксированый размер с растягиванием или обрезанием лишних краёв?

®

0
 



С нами с 21.06.05
Сообщения: 1788
Рейтинг: 1579

Ссылка на сообщениеДобавлено: 15/03/11 в 13:02       Ответить с цитатойцитата 

http://www.ffmpeg.org/ffmpeg-doc.html#SEC6

Цитата:
`-s size'
Set frame size. The format is `wxh' (ffserver default = 160x128, ffmpeg default = same as source)

http://www.ffmpeg.org/ffmpeg-doc.html#SEC74

Цитата:
Crop the input video to out_w:out_h:x:y.

http://www.ffmpeg.org/ffmpeg-doc.html#SEC75

Цитата:
Auto-detect crop size.

Calculate necessary cropping parameters and prints the recommended parameters through the logging system. The detected dimensions correspond to the non-black area of the input video.


Последний раз редактировалось: samedi (15/03/11 в 23:17), всего редактировалось 1 раз

ВОСТОРГ ЗНАЧИТ BMW

0
 

нет судьбы

С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204


Передовик Master-X (16.07.2011) Передовик Master-X (16.10.2011) Передовик Master-X (01.11.2011) Передовик Master-X (16.11.2011) Передовик Master-X (01.01.2012) Ветеран трепа Master-X (16.02.2012)
Ссылка на сообщениеДобавлено: 15/03/11 в 16:18       Ответить с цитатойцитата 

А реально ли сначала подогнать размер изображения кропом одной из сторон до пропорционального (требуемого) размера, а затем масштабировать в нужный размер пропорционально?

например, на входе бывают разные мувики с размерами 1920x1080, 640x480, ... А в результате нужно получить 516x380 . Тоеесть хотелось бы зазумить пропорционально меньшую сторону исходника, а большую срезать по центру..

По сути формула ясна, но она применима, если все исходники больше, например только по ширене. Мы составляя пропорцию, получаем
516 х
--- = --------- , где х = 516*ВысотаИсх./380
380 ВысотаИсх.

x - это та виличина до которой нужно откропить Ширину исходника, чтобы он стал пропорционален 516x380
Но проблема в том, что исходник может оказаться "вытянутым" и кропить надо не ширину, а высоту, а это уже условие и реализуется только предварительным скриптом.

®

0
 

programmer

С нами с 08.12.02
Сообщения: 7607
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 15/03/11 в 19:03       Ответить с цитатойцитата 

не забывай о "правиле 16"

крипта на ByBit

0
 

нет судьбы

С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204


Передовик Master-X (16.07.2011) Передовик Master-X (16.10.2011) Передовик Master-X (01.11.2011) Передовик Master-X (16.11.2011) Передовик Master-X (01.01.2012) Ветеран трепа Master-X (16.02.2012)
Ссылка на сообщениеДобавлено: 15/03/11 в 19:19       Ответить с цитатойцитата 

Да я то не забуду, только и без него не знаю как быть?..

®

0
 

programmer

С нами с 08.12.02
Сообщения: 7607
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 15/03/11 в 21:38       Ответить с цитатойцитата 

сторона видео любая должна быть кратна 16

крипта на ByBit

0
 

нет судьбы

С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204


Передовик Master-X (16.07.2011) Передовик Master-X (16.10.2011) Передовик Master-X (01.11.2011) Передовик Master-X (16.11.2011) Передовик Master-X (01.01.2012) Ветеран трепа Master-X (16.02.2012)
Ссылка на сообщениеДобавлено: 15/03/11 в 22:41       Ответить с цитатойцитата 

И как это сможет помочь?
Что будет, если не кратна 16?

®

0
 



С нами с 21.06.05
Сообщения: 1788
Рейтинг: 1579

Ссылка на сообщениеДобавлено: 15/03/11 в 23:09       Ответить с цитатойцитата 

Vyacheslav писал:
А реально ли сначала подогнать размер изображения кропом одной из сторон до пропорционального (требуемого) размера, а затем масштабировать в нужный размер пропорционально?


По-моему, такой возможности в ffmpeg изначально нет. Тебе нужно написать bash-скрипт, который на первом шаге получит размер видео, на втором - сделает ресайз с кропом.

ВОСТОРГ ЗНАЧИТ BMW

0
 



С нами с 07.11.05
Сообщения: 329
Рейтинг: 300

Ссылка на сообщениеДобавлено: 20/03/11 в 02:10       Ответить с цитатойцитата 

можно сделать как то так:
получаем данные о файле
exec("/usr/local/bin/ffmpeg -i $movie_file 2>&1", $out);
preg_match выдергиваем данные о размере кадра
preg_match('/Video:.*([0-9]{1,5})x([0-9]{1,5})/iU', $out, $matches);
width=$matches[1]
height=$matches[2]
определяешь соотношение сторон, вычисляешь нужное новое соотношение
$new_width=твоя ширина;
$height_x=round($new_width * $height / $width /16, 0);
$new_height=16*$height_x;

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »