|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.10.2014, 15:11 | #1 |
Пользователь
Регистрация: 17.10.2014
Сообщений: 17
|
Как выяснить точное время, когда был захвачен кадр
Пишу программу захвата видео. Для моих задач нужно в заголовок файла вписывать точное время захвата первого кадра (в идеале с точностью до кадра). Не могу понять - как его выяснить. Захват данных идёт через SampleGrabber.
Попытался в callback'е фикисировать время через банальный Now(). Результат совершенно неудовлетворительный - ошибка достигает нескольких секунд (!). Есть ли какой-то способ вычислить точно - в какое время был захвачен первый кадр видео? |
18.10.2014, 22:29 | #2 |
Пользователь
Регистрация: 17.10.2014
Сообщений: 17
|
Забавно, но оказывается Date()+Time() даёт на порядок более точный результат чем Now(). Погрешность уменьшилась до пары кадров. Но всё равно интересно - может есть какой более точный вариант?
|
18.10.2014, 22:40 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Что-то придумали. Все три функции идентично обращаются к GetLocalTime и только по разному результат формируют. Загляньте SysUtils
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
18.10.2014, 23:01 | #4 |
Пользователь
Регистрация: 17.10.2014
Сообщений: 17
|
Сам удивился. Delphi 7.0, результат замены просто налицо. Завтра проверю еще раз.
|
20.10.2014, 18:51 | #5 |
Пользователь
Регистрация: 17.10.2014
Сообщений: 17
|
Нда, очень странно. Один и тот же код, при одном запуске даёт разбег +/-1 кадр, при другом вдруг начинает колбасить туда/сюда до пары секунд. Жалко, что семпл не таймстемпится - в таймстемпах у семплграббера только время от начала записи (в семплах или 0,1 микросекундах). Ладно, пойдёт и так, что поделаешь...
|
24.10.2014, 13:32 | #6 |
Пользователь
Регистрация: 17.10.2014
Сообщений: 17
|
Тут вопрос возник, спрошу в "своей" теме
Предположим, что я хочу в одном графе использовать два samplegrabber'а. Коллбек на оба для простоты кода ставлю один и тот же. Как мне различать - из какого граббера пришёл коллбек? Хотел проверить MediaType у семпла, но GetMediaType отдаёт корректный MediaType только для первого семпла - у остальных он тот же, поэтому он отдаёт nil. Какие еще методы можно придумать? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужен программист на паскаль, который был бы оннлайн в нужное время на +- 20 минут. | tysovwik | Фриланс | 0 | 24.05.2012 19:11 |
Вставить в ячейку время когда была заполнена другая ячейка | mr.beginner | Microsoft Office Excel | 7 | 23.05.2011 11:45 |
как получить один кадр с камеры? | Пепел Феникса | Java Мобильная разработка (Android) | 2 | 09.01.2011 16:43 |
Как узнать когда был изменен (создан) интерфейс версии IPv6. | Crazyman | Работа с сетью в Delphi | 0 | 15.12.2008 00:51 |
Как узнать когда браузер скачивает, а когда нет? | iPod | Работа с сетью в Delphi | 1 | 07.05.2007 15:16 |