Почему следующая команда ffmpeg выводит видео продолжительностью одиннадцать минут?

#ffmpeg

#ffmpeg

Вопрос:

Почему следующая команда ffmpeg выводит видео продолжительностью одиннадцать минут?

  ffmpeg -ss 600 -i 01x01TheStrongestMan.mp4 -to 660 -vcodec copy -acodec copy -y outputxxx.mp4
  

Я хочу нарезать видео с 600 секунды до 660 секунды, на выходе должно получиться видео длиной в 1 минуту.
Как я могу это сделать и почему моя команда неверна?

Спасибо.

Комментарии:

1. Оба -ss и -to должны быть на одной стороне ввода. Поместите -to перед -i .

2. @Gyan на самом деле оба -ss и -to должны быть после -я публикую ваш ответ, и я выберу его как принятый.

3. Не требуется. Точность отличается, поскольку метод поиска кадров отличается.

Ответ №1:

Вот несколько небольших тестовых примеров, которые я сделал, которые могут пролить некоторый свет.

Искать раньше: (Быстрее, но менее точно)

 ffmpeg -ss 600 -to 660 -i movie.mkv -vcodec copy -acodec copy -y output1.mp4
  

Ищите после: (медленнее, но точнее)

 ffmpeg -i movie.mkv -ss 600 -to 660 -vcodec copy -acodec copy -y output2.mp4
  

Поиск до и после: (быстрый и точный)

 ffmpeg -ss 500 -i movie.mkv -ss 100 -to 160 -vcodec copy -acodec copy -y output3.mp4
  

Однако……..

В зависимости от того, какие кадры какие, вы не всегда получите точные вырезы / обрезки. Вы также получите разные результаты или найдете один метод лучше другого, в зависимости от того, просто ли вы копируете потоки или кодируете.