4

У меня есть видео с разрешением 480x360 , я хочу увеличить это видео до 1280:720 и не потерять пропорции исходного видео (почтовый ящик слева и справа)

Так что я знаю, что люди могут решить эту задачу с помощью ffmpeg, но пока я не могу этого сделать

Так может кто-нибудь поделиться со мной похвалы ffmpeg ??

Большое спасибо за Вашу помощь

1 ответ1

13
ffmpeg -i input.mp4 -vf "scale=(iw*sar)*min(1280/(iw*sar)\,720/ih):ih*min(1280/(iw*sar)\,720/ih), pad=1280:720:(1280-iw*min(1280/iw\,720/ih))/2:(720-ih*min(1280/iw\,720/ih))/2" output.mp4

Позвольте мне сломать эту команду для вас:

ffmpeg -i input.mp4

Это стандартный метод ввода для ffmpeg. Замените «input.mp4» на имя вашего входного файла.

-vf

Указывает, что некоторые видеофильтры следуют в команде. Указанные видеофильтры применяются последовательно к каждому кадру.

scale=(iw*sar)*min(1280/(iw*sar)\,720/ih):ih*min(1280/(iw*sar)\,720/ih)

Первый фильтр - это фильтр масштаба. Масштабный фильтр является мощным, потому что он может выполнять подстановку значений и математику. В этом случае математика вычисляет новую масштабированную ширину и высоту. Он масштабирует входное изображение в соответствии с шириной и / или высотой желаемого выходного формата без искажения изображения. Вам не нужно вносить какие-либо изменения в параметры масштаба, потому что он автоматически подставит фактические значения для "iw", "sar" и "ih". В вашем случае, так как ваше входное видео 4x3, мы знаем, что математика будет работать в масштабе до 720, но ширина меньше 1280. Дополнительная информация: https://ffmpeg.org/ffmpeg-filters.html#scale-1

pad=1280:720:(1280-iw*min(1280/iw\,720/ih))/2:(720-ih*min(1280/iw\,720/ih))/2

Второй фильтр - это пэд-фильтр. Он имеет те же математические функции, что и функция масштабирования. Так что он выяснит точные цифры для вас. Вам не нужно ничего менять, чтобы это работало. Параметры говорят пэд-фильтру сделать вывод 720х1280 и разместить входное изображение в центре кадра. Фильтр пэдов заполнит выходное изображение черным в любом месте, которое не будет покрывать входное изображение. В случае вашего ввода мы знаем, что фильтр масштабирования масштабировал высоту до 720, но ширина меньше 1280. Таким образом, черные полосы будут добавлены по сторонам, чтобы компенсировать разницу. Дополнительная информация: https://ffmpeg.org/ffmpeg-filters.html#pad

output.mp4

Это указывает выходной файл, в который ffmpeg поместит результаты. Вам может понадобиться добавить все виды параметров для формата, битрейта и т.д., Чтобы удовлетворить ваши точные потребности.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .