Информация об изменениях

Сообщение Re[2]: [OpenCv]Получить физ. время фрейма, зная точное время от 25.07.2023 23:01

Изменено 25.07.2023 23:10 Sharov

Re[2]: [OpenCv]Получить физ. время фрейма, зная точное время I-frame'а?
Здравствуйте, Nuzhny, Вы писали:


S>>Вроде все бьется, но не могут ли быть какие-нибудь еще задержки, которые могли бы исказить реальное время фреймов?

N>Вроде бы — да. Точность не гарантирована. Дело в том, что OpenCV для захвата может использовать разные бэкенды, каждый из которых (для h.264 например) возвращает время и продолжительность кадра, начиная с начала видео. Но, как написали ниже, это не точно. Для OpenCV + gstreamer вообще проблема известна.

S>>Может быть, что сеть потеряла некоторые фреймы, что тогда? Будет ли код выше по-прежнему верным?

N>Не будет. К сожалению, даже не все камеры присылают pts/dts.


Правильно ли я понимаю проблему -- пусть у нас получаются фреймы на камере f1,f2,f3,f4,...,f10.
Я их принимаю, но теряю, скажем f3, f1,f2,f4,....,f10. Тогда у меня вроде как получается видео,
но без f3 и когда я начинаю считать время, у меня все съежает на f4, т.к. мы полагаем что он получился
сразу после f2, т.е. через 1/fps, а в реальности 2/fps (ну или как-то так). И вот тут нерешаемы проблемы,
которые только через метаданные для каждого фрейма -- https://gstreamer.freedesktop.org/documentation/application-development/advanced/metadata.html
Re[2]: [OpenCv]Получить физ. время фрейма, зная точное время
Здравствуйте, Nuzhny, Вы писали:


S>>Вроде все бьется, но не могут ли быть какие-нибудь еще задержки, которые могли бы исказить реальное время фреймов?

N>Вроде бы — да. Точность не гарантирована. Дело в том, что OpenCV для захвата может использовать разные бэкенды, каждый из которых (для h.264 например) возвращает время и продолжительность кадра, начиная с начала видео. Но, как написали ниже, это не точно. Для OpenCV + gstreamer вообще проблема известна.

S>>Может быть, что сеть потеряла некоторые фреймы, что тогда? Будет ли код выше по-прежнему верным?

N>Не будет. К сожалению, даже не все камеры присылают pts/dts.


Правильно ли я понимаю проблему -- пусть у нас получаются фреймы на камере f1,f2,f3,f4,...,f10.
Я их принимаю, но теряю, скажем f3, f1,f2,f4,....,f10. Тогда у меня вроде как получается видео,
но без f3 и когда я начинаю считать время, у меня все съежает на f4, т.к. мы полагаем что он получился
сразу после f2, т.е. через 1000/fps, а в реальности 2000/fps (ну или как-то так). И вот тут нерешаемы проблемы,
которые только через метаданные для каждого фрейма -- https://gstreamer.freedesktop.org/documentation/application-development/advanced/metadata.html