Ffmpeg, как ограничить входные FPS

1550
cool

Я сохраняю поток rtsp в файл с помощью ffmpeg.

Я вижу, что даже поток составляет 30 кадров в секунду, ffmpeg скачать его на 40-50-33 кадров в секунду.

Как я могу ограничить входной кадр в секунду?

Я пытался, ffmpeg -r 30 -i rtsp://ipVideo out.h264 но это не помогло

Я не хочу, чтобы только выходной файл был 30 кадров в секунду, я хочу, чтобы ffmpeg не загружал больше, чем X кадров в секунду

0

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

1
slhck

Используйте параметр -reввода:

-re (input)

Чтение ввода с частотой кадров. В основном используется для имитации устройства захвата или живого потока ввода (например, при чтении из файла). Не следует использовать с реальными устройствами захвата или живыми входными потоками (где это может привести к потере пакетов). По умолчанию ffmpeg пытается читать ввод (ы) как можно быстрее. Эта опция будет замедлять чтение входных данных до исходной частоты кадров входных данных. Это полезно для вывода в реальном времени (например, прямой эфир).

Следовательно:

ffmpeg -re -i rtsp://ipVideo … 
спасибо за ваш ответ, но я не хочу использовать -re, потому что я должен использовать -preset ultrafast, и если я использую это, это не работает хорошо с ультрабыстрым (я не уверен почему) cool 6 лет назад 0
Если вы хотите ограничить скорость загрузки, то имеет смысл использовать быструю предварительную настройку, только если естественная скорость обработки с этой предварительной настройкой меньше, чем X fps. Тем не менее, попробуйте метод на https://stackoverflow.com/a/46602882/5726027 Gyan 6 лет назад 0
@Mulvya Я использую предустановленные сверхбыстрые, потому что, если нет, я потерял пакеты, а затем декодировал ошибку. я думаю, что ffmpeg / my cpu недостаточно быстр, чтобы перекодировать поток, поэтому я должен использовать предустановку сверхбыстрого. (Я не нахожу другого решения, как это исправить, потому что я хочу декодировать кодировать поток, если я хочу наложить / обрезать его) cool 6 лет назад 0

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