Как объединить JPG изображение с MP4 видео с помощью Ffmpeg: пошаговая инструкция

Как объединить изображение JPG с клипом MP4 на Windows 10 с помощью FFmpeg

Если вам нужно добавить изображение к вашему видео, чтобы оно отображалось в течение первых 5 секунд, а затем продолжать воспроизведение оригинального клипа, FFmpeg может стать вашим верным помощником. В этой статье мы рассмотрим, как это сделать, не перекодируя ваши видео, чтобы сэкономить время при обработке большого количества клипов.

Подготовка к работе с FFmpeg

FFmpeg — это мощный инструмент командной строки для обработки видео и аудио. Для начала убедитесь, что у вас установлена последняя версия FFmpeg, так как некоторые функции могут зависеть от обновлений.

Начальный код для объединения изображений и видео

Для простого объединения изображения и видео можно использовать следующий код:

ffmpeg -y -loop 1 -t 5 -i %1.jpg -f lavfi -t 1 -i anullsrc -i %1.mp4 -filter_complex "[0:v][2:v]scale2ref[logo]; [logo]setsar=sar=1[logo]; [logo][1:a][2:a]concat=n=2:v=1:a=1" %1-output.mp4

Этот код позволяет вам добавлять изображение JPG в начале видео. Однако могут возникнуть проблемы с зависанием FFmpeg на определенных кадрах.

Проблема с зависанием FFmpeg

Если ваш FFmpeg зависает на 69-м кадре и не продвигается дальше, это может быть связано с несоответствием частоты кадров между видео и изображением. В некоторых версиях FFmpeg, включая 7.1, присутствуют ошибки, которые могут привести к подобному поведению.

Альтернативный подход без зависания

Чтобы избежать зависания и несоответствия частоты кадров, мы можем использовать другие фильтры, такие как tpad и overlay. Вот обновленный код:

ffmpeg -y -i 1.jpg -f lavfi -t 5 -i anullsrc -i 1.mp4 -filter_complex "[2:v]tpad=start_duration=5[pv];[0:v][pv]scale=rw:rh[logo];[logo]setsar=sar=1[logo];[logo]overlay=enable=between(t\,0\,5)[outv];[1:a][2:a]concat=n=2:v=0:a=1[outa]" -map "[outv]" -map "[outa]" 1-output.mp4

Пояснение параметров команды

  1. tpad=start_duration=5: добавляет черные рамки в начале видео в течение 5 секунд.
  2. scale=rw:rh: масштабирует изображение до размера видео.
  3. overlay=enable=between(t\,0\,5): накладывает изображение на видео в течение первых 5 секунд.
  4. concat=n=2:v=0:a=1: объединяет 5 секунд пустого звука с оригинальным аудиотреком.

Тестирование кода на примере

Для тестирования вы можете создать образцы видео и изображений. Вот команды, которые помогут вам это сделать:

# Создание тестового изображения
ffmpeg -y -f lavfi -i testsrc=s=100x100:r=1:d=1 -frames:v 1 -update 1 1.jpg

# Создание тестового видео
ffmpeg -y -f lavfi -i testsrc=size=192x108:rate=10 -f lavfi -i sine=frequency=200 -acodec aac -t 30 1.mp4

Затем вы можете протестировать ваше видео с использованием одной из приведенных ранее команд.

Заключение

Объединение изображений и видео с помощью FFmpeg может показаться сложным, особенно при обработке большого объема файлов. Однако, следуя правильным шагам и используя предложенные команды, вы сможете легко добавить изображения к вашим клипам, не теряя времени на перекодирование. Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь задавать их сообществу.

Источник

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *