Добавить изображение наложения перед видео с помощью ffmpeg


18

У меня есть много видеороликов, и мне нужно поставить изображение перед ними в течение 5 секунд, но добавление его вручную и рендеринг его каждый раз займет очень много времени, поэтому я спрашивая, можно ли это сделать через ffmpeg, и если бы вы могли, пожалуйста, помогите мне с ним, так как у меня нет опыта работы с ffmpeg. Я уже нашел несколько команд, но никто из них не работал. Это, например.

ffmpeg -itsoffset 5 -i in.mp4 -r 25 -loop 1 -i intro.png -filter_complex "[1:v] fade=out:125:25:alpha=1 [intro]; [0:v][intro] overlay [v]" -map "[v]" -map 0:a -acodec copy out.mp4 
  0

Удалось ли вам скопировать эту команду или написать, что в соответствии с вашими потребностями? Я прошу, потому что эта команда включает в себя такие вещи, как постепенное исчезновение и все другие вещи, которые не рассматриваются в вашем вопросе. Вам просто нужно наложить изображение или вам нужно больше? 07 июл. 142014-07-07 12:18:11

  0

Я скопировал его откуда-то, все, что мне нужно, это просто поставить изображение перед видео. 08 июл. 142014-07-08 09:11:48

25

Вы можете сделать простое наложение изображения, используя следующий синтаксис:

ffmpeg -i input.mp4 -i image.png \ 
-filter_complex "[0:v][1:v] overlay=25:25:enable='between(t,0,20)'" \ 
-pix_fmt yuv420p -c:a copy \ 
output.mp4 

overlay=25:25 означает, что мы хотим позиционировать 25px изображение вправо и 25px вниз, исходящий из верхнего левого угла (0 : 0).

enable='between(t,0,20)' означает, что мы хотим, чтобы изображение, чтобы показать, между вторым 0 и 20.

[0:v][1:v] означает, что мы хотим, чтобы первый видеофайл мы импортируем с -i, в нашем случае input.mp4 или как FFmpeg видит это видео входной файл номер 0, находящийся под видео входным файлом 1, в нашем случае image.png. :v просто означает, что мы хотим видео 0 и видео 1. [0:a] будет означать, что мы хотим первую импортированную звуковую дорожку. Который также поступает из input.mp4, но будет указывать на звуковую дорожку вместо видеодорожки в файле mp4.

Если вы хотите определенное качество изображения/настройки, а не настройки, выбранные ffmpeg, добавьте параметры изображения и/или кодирования звука, которые вы хотите использовать. По умолчанию видеокодер будет x264. Проверьте возможные значения параметров H.264 encoding guide.

-acodec copy/-c:a copy что у вас есть в вашей команде f.e. будет просто повторно использовать аудио из исходного файла. Хотя вы не можете сделать это с видео, конечно (в этом случае), это должно быть перекодировано, потому что мы создаем новый источник видео.

Если вы хотите перекодировать аудио, удалите часть -c:a copy. Возможно, вам придется явно указать кодировщик, например. -c:a aac -strict experimental. См. AAC encoding guide для получения дополнительной информации.

  0

Следующая итерация вышеприведенной команды работала для меня на Android, поскольку исходный текст дает и ошибка, аналогичная aac, является экспериментальной функцией: ffmpeg -i input.mp4 strict -2 -i image.png -filter_complex [0: v] [ 1: v] overlay = 25: 25: enable = 'между (t, 0,20)' output.mp4 20 мар. 152015-03-20 11:11:20

  0

есть в любом случае положение внизу, не зная высоты? или далеко правее, не зная ширины? 26 авг. 162016-08-26 04:08:24

  0

уверен, просто проанализируйте видео с помощью ffprobe и извлеките размеры видео с выхода. Возможно, есть опция, интегрированная в ffmpeg, но я не знаю об этом. 26 авг. 162016-08-26 21:33:06

  0

Есть ли какой-либо метод или расчет, который заставляет изображение отображаться в центре? 26 окт. 162016-10-26 13:22:25

+1

Ваша команда ** заменяет ** фрагмент исходного видеофайла, но пользователь может захотеть ** добавить ** (таким образом увеличивая длину видео) изображение до и/или после видео. Пожалуйста, помогите с этим 04 июн. 172017-06-04 20:47:10

  0

@porton Это вопрос о добавлении наложения, если вам нужна помощь в другой проблеме, не стесняйтесь открывать новый вопрос в правом верхнем углу этой страницы с помощью кнопки «Спросить вопрос». 04 июн. 172017-06-04 21:15:30

  0

Можем ли мы использовать GIF вместо PNG для этой же цели? @PTS 22 авг. 172017-08-22 11:49:09

  0

Конечно, каждый формат поддерживается FFMPEG.Вы также можете использовать видеофайл. 22 авг. 172017-08-22 13:41:30