2

Я хотел бы взять несколько подразделов видео и объединить их, используя фильтр concat ffmpeg. Это похоже на пример в документации FFmpeg, за исключением того, что все клипы взяты из одного и того же исходного видео.

Вот что я пытаюсь:

ffmpeg \
  -ss 1.0 -frames:v 20 -i myInput.mp4 \
  -ss 2.0 -frames:v 20 -i myInput.mp4 \
  -ss 3.0 -frames:v 20 -i myInput.mp4 \
  -filter_complex '[0:0][0:1][1:0][1:1][2:0][2:1]concat=n=3:v=1:a=2[v][a1][a2]' \
  -map '[v]' -map '[a1]' -map '[a2]' myOutput.mp4

Когда я пытаюсь это сделать, я получаю следующую ошибку (полный вывод здесь):

Stream specifier ':0' in filtergraph description [0:0][0:1][1:0][1:1][2:0][2:1]concat=n=3:v=1:a=2[v][a1][a2] matches no streams.

Несколько вещей:

  • Что с ошибкой? Согласно выводу stderr, эти потоки существуют. Что мне не хватает?
  • Не должны ли -ss (и -frames:v) быть отражены в строке "Duration: ... start: ..." вывода stderr при перечислении входов?
  • Будет ли работать опция "-frames:v" для указания продолжительности ввода? (по-видимому, это только для вывода ??) Есть ли способ указать продолжительность ввода с секундами вместо кадров?

Помоги мне, ЛордНекобород - ты моя единственная надежда!

1 ответ1

1
ffmpeg.exe -f concat -safe 0 -i "D:\Clips\concatepath.txt" -c copy "D:\Clips\ConcatinatedVideo.mp4"

Где файл concatepath.txt содержит путь ко всем видео. Вот пример

file 'D:\Clips\video1.mp4'
file 'D:\Clips\video2.mp4'

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