2

Могу ли я использовать видеокамеру как V4L2src в gstreamer? Просто я могу использовать видеокамеру в качестве веб-камеры в Linux? Если да, то какие модели спортированы? Заранее спасибо.

1 ответ1

4

есть несколько различных API для сбора видео, что примечательно

  • v4l2 (это общий видео API на Linux; он охватывает почти все, кроме следующих двух)
  • iidc (это промышленный протокол "video over ieee1394", обычно не встречающийся в оборудовании потребительского уровня)
  • DV (это «A /V-сигнал поверх ieee1394», который вы обычно найдете в потребительских "камкордерах firewire"; скорее всего, это то, что вы подразумеваете под "видеокамерой")

в зависимости от вашего вида вашей "видеокамеры", вы можете использовать один (или несколько, или ни одного) из них.

аналоговый выход

с незапамятных времен любая приличная видеокамера поставляется с анлогом (например, "композитный"). чтобы использовать его на любом компьютере, сначала нужно оцифровать сигнал, что обычно делается через фрейм-граббер на компьютере. PCI-карты bbtv (bt878) и карты на базе коннексанта очень хорошо поддерживаются в Linux (другие, вероятно, хорошо, но я никогда не использовал их), и, по моему опыту, это все еще путь, если вам нужна низкая задержка Но, к сожалению, эти карты становятся редкими. эти карты обычно поддерживаются API v4l2, поэтому v4l2src будет работать нормально.

v4l2src ! ...

внешние грабберы аналоговые2usb и аналоговые2dv на рынке, см. ниже.

цифровой выход (USB)

вот где все веб-камеры вступают в игру, возможно, некоторые внешние аналоговые2usb устройства, возможно, некоторые "видеокамеры". поддерживается ли ваше устройство, зависит от используемых чипсетов. если она поддерживается, то они, как правило , используют v4l2-API, так что опять что - то , как это будет работать:

v4l2src ! ...

цифровой выход (DV/HDV)

эти устройства не охвачены версией v4l2, но вместо этого есть отдельный API. DV-поток содержит как аудио, так и видео, поэтому для получения изображения вам нужно сначала захватить DV-поток, а затем разделить два (аудио и видео) потока на части (также называемые «demultiplex /demux them») и затем декодировать результирующий видео-поток. что-то вроде этого должно сделать:

dv1394src ! dvdemux ! dvdec ! ...

если вы получаете HDV-поток (который действительно является потоком MPEG-TS по сравнению с ieee1394), существует отдельный объект hdv1394src :

 hdv1394src ! decodebin ! ...

цифровой выход (IIDC)

промышленные FireWire-камеры (в основном используются для распознавания изображений и т. п .; на рынке не существует "видеокамер", использующих этот протокол, поэтому я добавляю его только для полноты картины), использующих протокол "IIDC".

чтобы использовать его с gstreamer, просто выполните:

dc1394src ! ...

другие

большинство других протоколов, которые вы там обнаружите (например, GigE), являются проприетарными, промышленными протоколами (и не предлагают аппаратное обеспечение "видеокамеры")

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .