1

Я учусь разделять и объединять видео с помощью ffmpeg . В настоящее время я тренируюсь на 799 КБ MP4, one_through_ten-timestamped.mp4, где каждый кадр имеет записанный "номер кадра" (до кадра 40, записанное число опережает только каждый второй кадр).

Команда, которую я использую:

ffmpeg -f concat -i one_through_ten_edit_list.txt -c copy one_through_ten_edited.mp4

Где one_through_ten_edit_list.txt :

file one_through_ten-timestamped.mp4
inpoint 00:00:01.500
outpoint 00:00:05.000
file one_through_ten-timestamped.mp4
inpoint 00:00:09.500
outpoint 00:00:13.000

Когда я выполняю эту команду в ffmpeg у выходного видео есть несколько проблем:

  1. Выход начинается с начала исходного видео, а не через 1,5 с.
  2. Звук после объединения второго входного видео задерживается (при воспроизведении в QuickTime Player. Это нормально на ffplay).

Когда я выполняю те же правки в MPEG Streamclip, результирующее видео воспроизводится, как и ожидалось. Вот некоторые табличные выходные данные ffprobe для one_through_ten-timestamped.mp4 которые показывают, где видео ffmpeg и MPEG Streamclip различаются по своим точкам конкатенации:

начало первого сегмента конец первого сегмента mpeg streamclip start 1st начало второго сегмента конец второго сегмента

Обратите внимание, что ffmpeg и MPEG Streamclip обрабатывают второй сегмент примерно одинаково, однако ffmpeg , похоже, не inpoint в первом входном видео. Обратите внимание, что в моем MP4 есть один пакет на кадр.

ffmpeg вел себя так с версии 2.8 (возможно, до) до версии 3.3.3. Я пропускаю опцию командной строки или списка редактирования? Конечно, другие успешно используют ffmpeg для разделения и объединения видео (без повторного сжатия).

0