Итак, моя задача заключается в следующем:

  1. Разрезать видео на N частей.
    • ffmpeg -i in.mpg -ss 10 -t 10 -codec copy part1.mpg
    • ffmpeg -i in.mpg -ss 30 -t 10 -codc copy part2.mpg
    • ...
  2. Кошка эти части вместе
    • cat part1.mpg part2.mpg ...> temp.mpg
    • Этот файл работает нормально, но длительность и т.д. Искажены из-за неверных значений PTS.
  3. Запустите его через FFmpeg
    • ffmpeg -i temp.mpg -codec copy out.mpg
    • Этот файл также работает нормально, но для точной продолжительности сокращений теперь есть черное пространство. PTS является фиксированным, но он учитывает также удаленные кадры.

Как я могу исправить значения PTS?

Редактировать: я вынужден использовать более старую версию FFmpeg (следовательно, не использовать фильтры, такие как trim или concat demuxer).

1 ответ1

3

Каждый раз, когда вы запускаете команду для разделения видео, вы должны использовать фильтр setpts , например:

ffmpeg -i input.mpg -ss 10 -t 10 -vf "setpts=PTS-STARTPTS" -c copy part1.mpg

Тогда, вероятно, это сработает, но использование cat для видео не очень хорошая идея.

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