Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Пользуйтесь video4linux библиотекой. Я использовал его с программой C++, и смог получить кадры веб-камеры приблизительно в течение часа. (Очень простой в использовании и установка)
Существует приложение гнома сыра. Действительно простой использовать. Не слишком много показывает, просто видеосъемка.
Существуют "изолированные" решения для камеры там с мини-веб-серверами и портом Ethernet на спине. Просто включите его к сети, установите ее IP и откройте браузер... в Linux или везде, где
Если Вы хотите получить в Linux, у меня когда-то была дешевая веб-камера, получая единственные кадры в сценарии жемчуга, который, возможно, был изменен в течение реального времени - хотя это было приблизительно 10 лет назад. Так или иначе, его возможное :-/
Как упомянуто, Использование dvgrab для получения от интерфейса Firewire от камеры, затем используют инструменты, такие как ffmpeg (командная строка) или kino (простой gui видео редактор) для обработки видео по мере необходимости. PCI базировался, карты Firewire относительно недороги и легки найти.
Вот некоторые примеры:
непрерывное получение от firewire, авторазделение каждые несколько минут
dvgrab --size 500 --autosplit <filename>
смотрите камеру в прямом эфире
dvgrab - | mplayer -
Знайте, что некоторые недавние дистрибутивы (например, Fedora8) используют новые но непродуманные firewire драйверы. Однако Ubuntu работает отлично.
Если необходимо программировать, Вы являетесь лучшими от использования GStreamer, мультимедийной платформы в соответствии с Linux.
Сыр, упомянутый jackbravo, основан на GStreamer, как Flumotion, сервер потоковой передачи, я продолжаю работать.
Другая опция состоит в том, чтобы использовать Firewire (IEEE1394) камеры, такие как наиболее распространенные цифровые видеокамеры. Они имеют тенденцию работать действительно хорошо и давать намного лучшее видео, чем дешевые веб-камеры, и существует множество инструментов в Linux для работы с dv видео, таких как dvgrab.
openCV позволит Вам получать отдельные кадры от камеры и сохранять на диск. Если бы необходимо затем управлять ими для создания видео, я предложил бы netpbm, довольно мощный набор инструментов командной строки, которые можно использовать с некоторыми сценариями оболочки, чтобы сделать видео или сделать независимо от того, что это - Вы потребность.
При использовании Java v4l4j делает очень простым получить кадры от любого устройства V4L. Это также позволяет Вам управлять устройством от Java. Я использовал его с веб-камерой PTZ (Logitech quickam орбита), и я мог управлять обычными бедрами как яркость, насыщенность и автобаланс белого, но также и наклон и панорамирование камеры. Очень удобный!