Измените длительность видео mp4 с помощью FFMPEG

#ffmpeg #video-processing

#ffmpeg #обработка видео

Вопрос:

Я пытаюсь изменить продолжительность видео с помощью FFMPEG. Я не считаю, что это связано с метаданными, а скорее как-то кодируется в начале видео. Кто-нибудь знает, возможно ли изменить это значение ..?

  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    title           : “test_title"
    encoder         : Lavf55.19.104
 Duration: 00:57:51.81, start: 0.000000, bitrate: 1289 kb/s
 Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 1157 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
 Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 126 kb/s (default)
  

Спасибо

Ответ №1:

На самом деле в их вики есть сообщение: https://trac.ffmpeg.org/wiki/How to speed up / slow down a video

Цитирование:

Ускорение / замедление видео

Вы можете изменить скорость вашего видео с помощью setpts видеофильтра. […]

Чтобы ускорить просмотр видео, вы можете ввести:

 ffmpeg -i input.mkv -filter:v "setpts=0.5*PTS" output.mkv
  

Обратите внимание, что этот метод приведет к удалению кадров для достижения желаемой скорости. Вы можете избежать пропуска кадров, указав более высокую «выходную частоту кадров», чем на входе, например, для перехода от ввода 4 к тому, который ускорен в 4 раза (16 кадров в секунду):

 ffmpeg -i input.mkv -r 16 -filter:v "setpts=0.25*PTS" -an output.mkv
  

Чтобы замедлить видео, вы должны использовать множитель больше 1:

 ffmpeg -i input.mkv -filter:v "setpts=2.0*PTS" output.mkv
  

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

1. Привет, спасибо, я должен был быть более конкретным. Я хочу отредактировать значение длины видео в заголовочном файле видео, но не изменять сам фильм.

2. Длительность — это количество кадров * частота кадров. Если вы хотите изменить длительность, вам необходимо изменить частоту кадров. Это то, чего вы хотите?

3. Нет, я действительно не хотел менять частоту кадров. Я думаю, что это невозможно без этого.

4. каковы были ваши намерения?

Ответ №2:

Невозможно изменить длительность, отображаемую в медиаплеере, не влияя на фактическую продолжительность. Это потому, что проигрыватель сам вычисляет длительность, и она не закодирована в фактическом файле.

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

1. нет, можно изменить метаданные тайм-кода, однако не все проигрыватели поддерживают его отображение.