Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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.

share|improve this question

migrated from stackoverflow.com Oct 22 '12 at 5:11

This question came from our site for professional and enthusiast programmers.

    
what is a "camcorder"? the question is a bit like "can i use harddisks" with my laptop, and the answer is "of course you can" until you notice that your given harddisk is a SCSI-disk and your laptop only has S-ATA plugs, so in fact you cannot usethis particular harddisk on that particular machine... –  umläute Oct 22 '12 at 8:25
add comment

1 Answer 1

up vote 2 down vote accepted

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.

analog out

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 object:

 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 ! ...

others

most other protocols you will found out there (e.g. GigE) are proprietary, industrial grade procolls (and don't offer "camcorder" hardware)

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.