2

У меня есть два видео, которые я хочу обрезать, а затем объединить обрезанный вывод. Они все одинакового размера / кодека, поэтому я бы хотел сделать это без перекодирования. Но если я сделаю:

ffmpeg -i clip1.mp4 -ss 1.2 -t 2.0 -c copy clip1.trimmed.mp4
ffmpeg -i clip2.mp4 -ss 0.2 -t 2.0 -c copy clip2.trimmed.mp4
ffmpeg -filter_complex '[0:0] [0:1] [1:0] [1:1] concat=n=2:v=1:a=1 [v] [a]'\
-map [v] -map [a] -c:v libx264 merge.mp4

У объединенного видео есть проблемы с аудио / видео синхронизацией. Этого не произойдет, если я заменю -c copy на -vcodec libx264 в команде обрезки. Возможно ли, что, не перекодировав, что-то пойдет не так с синхронизацией?


Правильный ответ, от Mulvya:

ffmpeg -ss 1.2 -t 2.0 -i clip1.mp4 -ss 0.2 -t 2.0 -i clip2.mp4 \
   -filter_complex '[0:v] [0:a] [1:v] [1:a] concat=n=2:v=1:a=1 [v] [a]" \
   -map [v] -map [a] -c:v libx264 merge.mp4

В случае, если это поможет, я бы добавил, что синтаксис для добавления определенных клиповых фильтров выглядит так:

ffmpeg -ss 1.2 -t 2.0 -i clip1.mp4 -ss 0.2 -t 2.0 -i clip2.mp4 \
   -filter_complex '[0:v]scale=1920:960[v0]; [v0] [0:a] [1:v] [1:a] concat=n=2:v=1:a=1 [v] [a]" \
   -map [v] -map [a] -c:v libx264 merge.mp4

2 ответа2

2

Так как вы в конечном итоге перекодируете объединенные сегменты, просто сделайте это одной командой,

ffmpeg -ss 1.2 -t 2.0 -i clip1.mp4 -ss 0.2 -t 2.0 -i clip2.mp4 \
       -filter_complex '[0:v] [0:a] [1:v] [1:a] concat=n=2:v=1:a=1 [v] [a]" \
       -map [v] -map [a] -c:v libx264 merge.mp4
1

Слияние видео без перекодирования возможно и описано в ответах на этот другой вопрос.

Разделение видео без перекодирования возможно только для форматов без потерь. Кодеки с потерями, такие как h264 (обычно), используют ряд ключевых кадров, а затем кодируют промежуточные кадры в виде различий между текущим и предыдущим кадрами. (Вот почему вы получаете этот странный дрейф в испорченном видео, почему он исчезает при смене сцены.)

Теоретически, вы можете разделить видео, если вырезать перед ключевым кадром. Выяснить, где находятся эти ключевые кадры и как сделать разрез, - это за мной.

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