кадрирование (crop)

Ответить
ya
^-^
Сообщения: 3078
Зарегистрирован: 16 дек 2021, 19:56

кадрирование (crop)

Сообщение ya »

Код: Выделить всё

ffmpeg -i input.mp4 -vf "crop=w:h:x:y, scale=1280:720, delogo=x=100:y=50:w=100:h=50" -c:a copy output.mp4
Разбор параметров

crop=w:h:x:y
w и h: Ширина и высота области, которую вы хотите оставить.
x и y: Координаты верхнего левого угла, с которого начнется обрезка.
scale=width:height

Укажите итоговое разрешение (например, 1920:1080 или 1280:-1 для сохранения пропорций).
delogo=x:y:w:h

Внимание: Координаты x и y здесь указываются относительно уже измененного кадра.

show=1: Можно добавить этот параметр (delogo=x:y:w:h:show=1), чтобы увидеть зеленую рамку вокруг области удаления. Это поможет точно подогнать координаты, после чего параметр нужно убрать.

Пример конкретной задачи

Допустим, у вас видео 1920x1080. Вы хотите:Отрезать края, оставив центральную часть 1600x900.Сжать это до 1280x720.Убрать логотип, который на этом этапе находится в углу по координатам $x=50, y=50$ размером $150 \times 60$.

Код: Выделить всё

ffmpeg -hide_banner -ss 10 -t 10 -i input.mp4 -vf "crop=1600:900:160:90, scale=1280:720, delogo=x=50:y=50:w=150:h=60" -c:v libx264 -crf 23 -c:a copy -avoid_negative_ts make_zero output.mp4
Порядок фильтров: Если вы примените delogo до scale, координаты нужно будет высчитывать относительно исходного размера. Обычно удобнее накладывать его в самом конце.

Предпросмотр: Чтобы не перекодировать файл целиком при подборе координат, добавьте -t 10 перед -i, чтобы обработать только первые 10 секунд.

Качество: Параметр -crf 23 отвечает за качество видео (меньше — лучше, обычно от 18 до 28).
Флаг -avoid_negative_ts make_zero помогает выровнять временные метки, чтобы плеер не сходил с ума.
ya
^-^
Сообщения: 3078
Зарегистрирован: 16 дек 2021, 19:56

Re: кадрирование (crop)

Сообщение ya »

в данной команде применено: кадрирование, масштабирование и удаление логотипа

монтаж видео с 9 секунды, и длиной 10 секунд

Код: Выделить всё

ffmpeg -hide_banner -ss 9 -t 10 -i input.mkv -g 1 -vf "crop=1882:1062:3:106, scale=1920:1080, delogo=x=1825:y=4:w=92:h=32" -crf 23 -c:a copy -avoid_negative_ts make_zero output.$(date +%Y.%m.%d_%H-%M-%S).mkv
монтаж видео с 10 секунды, и длиной до конца

Код: Выделить всё

[code]ffmpeg -hide_banner -ss 10 -i input.mkv -g 1 -vf "crop=1882:1062:3:106, scale=1920:1080, delogo=x=1825:y=4:w=92:h=32" -crf 23 -c:a copy -avoid_negative_ts make_zero output.$(date +%Y.%m.%d_%H-%M-%S).mkv
-g 1: Делает каждый кадр ключевым (Intra-only). Это идеально для редактирования, но сильно увеличивает размер файла.
-g 250: Стандартное значение. Обычно FFmpeg и так ставит ключевой кадр в начало при старте кодирования.
Ответить