Как установить FPS с помощью ffmpeg

5627
John M.

Я пытаюсь сохранить свой поток видеонаблюдения в сегментах по 300 секунд с FPS, равным 7. Вот моя команда:

ffmpeg -r 7 -i rtsp://192.168.1.100/...stream=0.sdp -acodec aac -strict -2 -vcodec copy -f segment -segment_time 300 -segment_format mp4 "mon1-%03d.mp4" 

Выходной файл не соответствует команде '-r 7' (для FPS = 7). Кто-нибудь знает, как настроить FPS на выходе?

0

1 ответ на вопрос

0
slhck

Когда вы ставите аргумент ранее -i, он будет применен только к следующему входу.

Переместите -rаргумент где-нибудь между входным и выходным файлами.

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

Я пытался поставить его перед именем файла, но fps на выходе все еще 20. John M. 6 лет назад 0
@slhck - с контейнерами, имеющими временные метки, ввод `r` не изменяет интервалы PTS в режиме копирования. Работает с необработанными битовыми потоками. Gyan 6 лет назад 0
@Mulvya Не видел копию в вопросе ОП, конечно, вы правы. slhck 6 лет назад 0
@John Кажется, вам нужно перекодировать видео, поскольку вы не можете просто произвольно изменить FPS. Удалите параметр копирования и установите какой-либо параметр качества для вывода (например, `-crf 23`). slhck 6 лет назад 0

Похожие вопросы