Can I use a camcorder as V4L2src in gstreamer? Simply can I use a camcorder as a webcam in Linux? If so what models are sported? Thanks in advance.
there are a few different video-acquisition APIs out there, noteably
- v4l2 (that's the general video api on linux; it covers almost everything but the following two)
- iidc (that's the industrial "video over ieee1394" protocol, usually not found in consumer-grade hardware)
- dv (that's the "A/V-signal over ieee1394" you usally find in consumer grade "firewire camcorders"; most likely this is what you mean by "camcorder"
depending on your flavour of your "camcorder", you can use one (or some, or none) of these.
since ages, any decent camcorder comes with an anlog out (e.g. "composite").
in order to use that on any computer, you have to digitise the signal first, which is usually done via a framegrabber card in the computer.
bttv (bt878) and connexant based grabber PCI(e)-cards are very good supported on linux (others are probably well, but i never used them), and in my experience this is still the way to go if you need low-latency, but unfortunately these cards are getting sparse.
those cards are usually covered by the v4l2-API, so
v4l2src will work fine.
v4l2src ! ...
external analog2usb and analog2dv grabbers are on the market, see below.
digital out (USB)
that's where all the webcams come into play, probably some external analog2usb devices, maybe some "camcorders". whether your device is supported depends on the chipsets in use. if it is supported, these will usually use the v4l2-API, so again something like this will work:
v4l2src ! ...
digital out (DV/HDV)
these devices are not covered by v4l2, but instead there is a separate API. a DV-stream contains both audio and video, so in order to get an image you have to first grab the DV-stream then split the two (audio and video) streams apart (aka "demultiplex/demux them") and then decode the resulting video-stream. something like this should do:
dv1394src ! dvdemux ! dvdec ! ...
if you are getting an HDV-stream (which is really an MPEG-TS stream over ieee1394), there is a separte
hdv1394src ! decodebin ! ...
digital out (IIDC)
industrial firewire cameras (mostly used for image-recognition and the like; there is no "camcorder" on the market using this protocol, so i only add it for completeness sake) used a protocol called "IIDC".
in order to use it with gstreamer, simply do:
dc1394src ! ...
most other protocols you will found out there (e.g.
GigE) are proprietary, industrial grade procolls (and don't offer "camcorder" hardware)