Gertlaub2 Ответов: 2

Как реализовать функциональность видеонаблюдения в .net C# с помощью веб-камер


Всем привет.

Я работаю над системой бронирования, которая работает на устройстве, установленном в автобусе. Новое требование заключается в сохранении видеофайлов на этом устройстве, которое разделено на файлы продолжительностью 1 час. В конце путешествия эти файлы будут синхронизированы обратно через Wi-Fi на складе. В настоящее время мы смотрим как минимум на 2 канала камер, и камеры являются обычными веб-камерами (Microsoft lifecam 3000).Шинное устройство работает под управлением Windows embedded 8, имеет 1,8 ГГц Atom D525, 2 гигабайта оперативной памяти и 120 ГБ SSD. Я изучал использование EMGU CV и Directshow с различными уровнями успеха. Некоторые из проблем и вопросов, которые у меня есть:

1)Лучший кодек для записи. Я перепробовал несколько кодеков, наиболее заметные из которых "x264vfw - H. 264/MPEG-4 AVC codec" и "Xvid MPEG-4 Codec" дали мне небольшой файл,но он требует большой мощности обработки.(98% загрузка процессора). Какой кодек лучше всего использовать, чтобы обеспечить хороший баланс между размером файла/качеством и использованием процессора?

2)Длина видео и синхронизация видео между камерами. Время видеофайла имеет решающее значение. 1 - часовая запись должна производить 1-часовой видеофайл, и длина видеофайлов между камерами должна быть одинаковой. (Я изо всех сил пытаюсь сделать это правильно с помощью Видеописателя Emgu) и с прямым шоу, когда загрузка процессора выровнена на 100%

3)Действительно ли это возможно с веб-камерами или нам нужно идти с IP-камерами?


Извините, я забыл упомянуть. Требуемая частота кадров может составлять 15 кадров в секунду, а разрешение-около 640x480

Любая помощь будет очень признательна.
Спасибо

E.F. Nijboer

Сейчас я не эксперт в этом, но когда я читал ваш вопрос, я думал о том, чтобы объединить два (или более) видеопотока в один. Вы получаете то, что часто видите для камер безопасности, где четыре камеры отображаются на одном дисплее. Таким образом, вы будете уверены, что они хорошо синхронизированы.

SoMad

Я только что видел ваше обновление относительно разрешения и частоты кадров (я предполагаю, что 15 кадров в секунду на камеру). В наши дни это не страшные цифры, но это может быть просто недосягаемо для атома D525.

Сорен Мадсен

2 Ответов

Рейтинг:
1

SoMad

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

На самом деле я не собираюсь отвечать на ваши первые два вопроса, потому что считаю, что вам нужен процессор с лучшей производительностью для достижения вашей цели, и я подозреваю, что процессор Atom продиктован низкими требованиями к мощности или другими причинами, которые вы не можете контролировать.

Честно говоря, если вы будете ограничены процессором Atom, вам лучше использовать камеру с встроенным сжатием. Вы упомянули IP - камеры, и это, безусловно, вариант, но это сделает всю установку более сложной.
Мой совет-попробовать веб-камеру с встроенным сжатием H. 264. Лично я использовал Logitech C920 - это был самый дешевый вариант, который я мог найти со сжатием H. 264. Он действительно стоит больше, чем ваш Microsoft LifeCam 3000, но изображение выглядит великолепно, и я смог найти его по хорошей цене.
Я уверен, что к настоящему времени существуют и другие веб-камеры с аналогичными возможностями, так что начните гуглить что-то подобное. Однако есть веб-камеры, которые рекламируются как имеющие сжатие H. 264, но при ближайшем рассмотрении оказывается, что это делается программным обеспечением, которое будет установлено на ПК, поэтому внимательно прочитайте спецификации!

Сорен Мадсен


Gertlaub2

Привет, Сорен Мадсен, я тоже думаю, что процессор Atom, возможно, недостаточно силен. Можно ли контролировать качество видеовыхода на этих веб-камерах со встроенным компрессоном? (Например, Logitech C920)

SoMad

Это возможно, но поскольку все проходит через DirectShow, это не то, что я считаю простым. Я получил эту ссылку с форума поддержки Logitech - я действительно не знаю, почему они ссылаются на свою собственную страницу через "Wayback Machine", но я предполагаю, что она потеряна по какой-то причине (или форум на самом деле не является официальным форумом Logitech, странно): http://web.archive.org/web/20111026041525/http://www.quickcamteam.net/documentation/faq/can-i-use-logitech-webcams-for-my-own-application[^].

И как вы можете видеть из этой ссылки, это действительно до вас, чтобы покопаться в интерфейсе и выяснить, как настроить камеру: http://forums.logitech.com/t5/Webcams/Taking-full-advantage-of-the-H-264-Logitech-C920-using/td-p/1052709[^].
Я почти уверен, что пользователь, опубликовавший этот вопрос, столкнулся с проблемой, потому что большинство реализаций AMCap, которые вы найдете (похоже, что каждый производитель веб-камер распространяет свою собственную сборку AMCap), не перечисляют все пины.
Если вы столкнетесь с этой проблемой, я могу откопать код, который у меня есть (где-то), который правильно идентифицирует все выходные контакты так же, как пользователь, отправляющий этот вопрос на SO used (ответ внизу упоминает способ изменения скорости передачи битов): http://stackoverflow.com/questions/11695508/how-to-control-bitrate-mediasubtype-h264-directshow[^]

Я не пробовал использовать EMGU CV, но, возможно, было бы проще сделать все это с помощью такой библиотеки.

Сорен Мадсен

Рейтинг:
1

SOHAM_GANDHI


[^]


[^]


[^]



обратитесь к этим статьям