Я пытался выяснить это сам, но множество вариантов просто сбивает меня с толку.
В идеале я хочу использовать ffmpeg
или mencoder
(или что-то еще, но те два, которые я знаю, у меня есть работа), чтобы конвертировать любое входящее видео в фиксированный размер экрана.
Если видео шире или слишком короткое для него, обрежьте видео по центру. Если это неправильный размер, измените размер вверх или вниз, чтобы он соответствовал фиксированному размеру экрана.
Последнее, что мне нужно, это 720x480 в XVid AVI с аудиодорожкой MP3.
Я нашел много страниц, показывающих, как изменить размер до максимального разрешения, но мне нужно, чтобы видео имело именно такое разрешение (с обрезанными лишними частями, без черных полос).
Может кто-нибудь сказать мне командную строку для запуска - или, по крайней мере, получить мне / большую часть пути туда? Если это должно быть несколько командных строк (запустите X, чтобы получить разрешение, выполните это вычисление, а затем запустите Y с выводом этого вычисления), я могу написать это.
Примечание: Исходный ответ был отправлен в этой ссылке: Как я могу обрезать видео с ffmpeg? который первоначально отправленный мной и редактируемый несколько раз для обновления его к новейшим опциям в новых версиях ffmpeg. Большое спасибо slhck, Jonathan., Anton Rudeshko, LordNeckbeard и будущие специалисты по обслуживанию.
В последних версиях FFmpeg используйте crop
фильтр:
ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4
Где опции следующие:
out_w
ширина выходного прямоугольникаout_h
высота выходного прямоугольникаx
и y
укажите верхний левый угол выходного прямоугольника
Исходное 320x240 изображение
Обрезать 80×60 раздел, начинающий с положения (200, 100):
ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4
Обрезать нижнюю правую четверть:
ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4
Это совпадает с:
ffmpeg -i in.mp4 -filter:v "crop=320/2:240/2:320/2:240/2" -c:a copy out.mp4
Который совпадает с:
ffmpeg -i in.mp4 -filter:v "crop=240:120:240:120" -c:a copy out.mp4
in_w
и in_h
как показано в этом первом примере. Выходная ширина и высота могут также использоваться с out_w
и out_h
.Обрежьте 20 пикселей от вершины, и 20 от нижней части:
ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4
x
и y
опущены такой как в этом примере.Можно взять обрезку (heh heh) и предварительно просмотреть ее живой с ffplay
:
ffplay -i input -vf "crop=in_w:in_h-40"
Таким образом, можно экспериментировать и скорректировать обрезку без потребности закодировать, просмотреть, повториться.
Кодер по умолчанию для MP4 libx264
(Видео H.264) или mpeg4
(Видео части 2 MPEG-4) в зависимости от Вашего ffmpeg
сборка. См. Wiki FFmpeg: Видео H.264, Кодирующее Руководство для большего количества информации.
Вместо того, чтобы обрезать и повторно закодировать, рассмотрите обрезку после воспроизведения. Это возможно с любым плеером, который стоит использовать.
Древний ffmpeg
сборки используются -croptop
, -cropbottom
, -cropleft
, -cropright
опции вместо crop
фильтр. Если это верно, для Вас затем получают современное ffmpeg
. Разработка очень активна и нет никакой причины использовать старинные вещи.