
Анализ видео файла
#1
Отправлено 23 марта 2011 - 09:50
Есть вариант предварительно заготовить видео файл (с ожидаемым контентом), потом в результате теста получить еще один видео файл, с помощью DirectShow получить фреймы обоих видео файлов и сравнивать их пофреймово. Но не совсем понятно как получить доступ к DirectShow через TestComplete. И не совсем понятно как сравнивать фреймы, так как попиксельное сравнение может выдать, что картинки разные, при том, что визуально они будут идентичны.
Собственнно готов выслушать предложения по предложенной реализации или же какой другой способ.
#2
Отправлено 23 марта 2011 - 10:39
Почему?попиксельное сравнение может выдать, что картинки разные
Я бы, честно говоря, не заморачивался с попиксельным сравнением. Может быть стоит просто сравнивать хеши файлов? По-идее, если файлы созданы в одном и том же редакторе, то и хеши будут совпадать.
#3
Отправлено 23 марта 2011 - 11:35
я не уверен, что хэши всегда будут одинаковые. Тут на миллисекунду скрипт задержался, там на полпикселя надпись сдвинул - и при кодировании видео и при получении хэша можем получить несколько другой результат.Почему?
попиксельное сравнение может выдать, что картинки разные
Я бы, честно говоря, не заморачивался с попиксельным сравнением. Может быть стоит просто сравнивать хеши файлов? По-идее, если файлы созданы в одном и том же редакторе, то и хеши будут совпадать.
я думаю, стоит все же брать кадры и делать нечеткое сравнение изображений. Описания алгоритмов в интернете встречаются, например - http://stackoverflow...-fast-algorithm
#4
Отправлено 23 марта 2011 - 12:25
И? Как это отразится на содержимом видеофайла?Тут на миллисекунду скрипт задержался
Во-первых, почему скрипт должен что-то сдвинуть?там на полпикселя надпись сдвинул
Во-вторых, как попиксельное сравнение позволит вам обойти эту проблему?
#5
Отправлено 23 марта 2011 - 14:11
Надпись на другом кадре - содержимое другоеИ? Как это отразится на содержимом видеофайла?
Тут на миллисекунду скрипт задержался
я как раз не говорил про попиксельное. есть и другие способы сравнения изображенийВо-вторых, как попиксельное сравнение позволит вам обойти эту проблему?
#6
Отправлено 23 марта 2011 - 15:06
Хорошо, может я чего-то не понимаю... Но давайте порассуждаем.Надпись на другом кадре - содержимое другое
И? Как это отразится на содержимом видеофайла?
Тут на миллисекунду скрипт задержалсяя как раз не говорил про попиксельное. есть и другие способы сравнения изображенийВо-вторых, как попиксельное сравнение позволит вам обойти эту проблему?
Автор написал:"Есть некий видеоредактор, в котором на timeline (видеодорожка) добавляется некий контент (аудио, видео, заголовки, еффекты)"
Что это значит? Это значит, что мы редактируем видео, а не записываем. Если я правильно понял слово "timeline", то это значит, что в нашем редакторе есть элементы по которым, во время редактирования, мы можем четко определять текущий кадр. При чем здесь задержка в выполнении скрипта? Разве что вы туда впишите функции типа "тяни ползунок таймлайна влево 2,578 сек"...
Теперь о нечетком сравнении изображений... Ну давайте посмотрим алгоритмы по вашей ссылке.
1. Сравнение по "реперным" пикселям.
Итак, давайте представим, что мы добавили в кадр зеленый прямоугольник. Задались, например, такими координатами:
- верхняя левая точка (x,y)
- высота h
- ширина w
При сравнении, например, проверяем следующие пиксели:
- x+w/2,y
- x+w/2,y+h
- x,y+h/2
- x+w,y+h/2
Допустим, при выполнении теста прямоугольник сдвинулся на 1 пиксель влево по координате x, т.е. в точке x+w,y+h/2 зеленого пикселя уже нет, зато в 3х остальных точках он есть. Это хорошо/плохо, pass/fail?
2. Сравнение по гистограмме.
Хотели нарисовать в тесте зеленый прямоугольник, но получился зеленый квадрат с такой же площадью. Гистограмма вроде бы та же (или незначительно отличается). Pass/fail?
3. SIFT
Вы правда думаете, что эта задача требует реализации вот этого алгоритма? И опять же он неточен. Что считать успешным прохождением теста, а что нет?
З.Ы. Возможно, я что-то упускаю, но из старт поста совсем непонятно, почему кадры, а следовательно и конечный файл (и его хеш) могут отличаться.
#7
Отправлено 04 апреля 2011 - 11:23
Было принято решение, с помощь тестируемой программы получать снапшоты видео файла и сравнивать их с заранее заготовленными снапшотами, проводя попиксельное сравнение, а потом векторное сравнение. Работает более менее адекватно.
Хотя опять же повторюсь, если кто-то знает еще какой-то метод сравнения - пишите, ибо тема весьма интересная.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных