нет судьбы
С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204
|
Добавлено: 15/03/11 в 01:09 |
Реально ли средствми ffmpeg любой ролик подогнать под фиксированый размер с растягиванием или обрезанием лишних краёв?
|
|
|
|
С нами с 21.06.05
Сообщения: 1788
Рейтинг: 1579
|
Добавлено: 15/03/11 в 13:02 |
|
|
|
|
нет судьбы
С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204
|
Добавлено: 15/03/11 в 16:18 |
А реально ли сначала подогнать размер изображения кропом одной из сторон до пропорционального (требуемого) размера, а затем масштабировать в нужный размер пропорционально?
например, на входе бывают разные мувики с размерами 1920x1080, 640x480, ... А в результате нужно получить 516x380 . Тоеесть хотелось бы зазумить пропорционально меньшую сторону исходника, а большую срезать по центру..
По сути формула ясна, но она применима, если все исходники больше, например только по ширене. Мы составляя пропорцию, получаем
516 х
--- = --------- , где х = 516*ВысотаИсх./380
380 ВысотаИсх.
x - это та виличина до которой нужно откропить Ширину исходника, чтобы он стал пропорционален 516x380
Но проблема в том, что исходник может оказаться "вытянутым" и кропить надо не ширину, а высоту, а это уже условие и реализуется только предварительным скриптом.
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7615
Рейтинг: 5760
|
Добавлено: 15/03/11 в 19:03 |
не забывай о "правиле 16"
|
|
|
|
нет судьбы
С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204
|
Добавлено: 15/03/11 в 19:19 |
Да я то не забуду, только и без него не знаю как быть?..
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7615
Рейтинг: 5760
|
Добавлено: 15/03/11 в 21:38 |
сторона видео любая должна быть кратна 16
|
|
|
|
нет судьбы
С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204
|
Добавлено: 15/03/11 в 22:41 |
И как это сможет помочь?
Что будет, если не кратна 16?
|
|
|
|
С нами с 21.06.05
Сообщения: 1788
Рейтинг: 1579
|
Добавлено: 15/03/11 в 23:09 |
Vyacheslav писал: | А реально ли сначала подогнать размер изображения кропом одной из сторон до пропорционального (требуемого) размера, а затем масштабировать в нужный размер пропорционально? |
По-моему, такой возможности в ffmpeg изначально нет. Тебе нужно написать bash-скрипт, который на первом шаге получит размер видео, на втором - сделает ресайз с кропом.
|
|
|
|
С нами с 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;
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |