zbarcam
Prev | ZBar Barcode Reader - Command Reference | Next

## Name

zbarcam — scan and decode bar codes from a video device

## Synopsis

`zbarcam` [`-qv`] [`--quiet`] [`--nodisplay`] [`--xml`] [`--verbose[=`n`]`] [`--prescale=`W`x`H``] [`-S[`symbology`.]`config`[=`value`]`] [`--set [`symbology`.]`config`[=`value`]`] [`device`]

`zbarcam` { `-h` | `--help` | `--version` }

## Description

zbarcam scans a video4linux video source (eg, a webcam) for bar codes and prints any decoded data to the standard output. The video stream is also displayed to the screen.

`device` is the path to the video4linux (version 1 or 2) character device special file (major number 81 and minor number 0 thru 63). It defaults to `/dev/video0`

The underlying library currently supports EAN-13 (including UPC and ISBN subsets), EAN-8, DataBar, DataBar Expanded, Code 128, Code 93, Code 39, Codabar, Interleaved 2 of 5, QR Code, PCard and PCard2 symbologies. The specific type of each detected symbol is printed with the decoded data.

PCard and PCard2 decodings are supported by the underlying library, but they are not enabled by default for zbarcam. To scan PCard symbols explicitly use `-Spcard.enable=1` or `--set pcard.enable=1`.

## Options

This program follows the usual GNU command line syntax. Single letter options may be bundled, long options start with two dashes (`-').

`-h`, `--help`
  Print a short help message describing command line options to standard output and exit
`--version`
  Print program version information to standard output and exit
`-v`, `--verbose[=`n`]`
  Increase debug output level. Multiple `-v` options create more spew. Alternatively specify `n` to set the debug level directly
`-S[`symbology`.]`config`[=`value`]`, `--set [`symbology`.]`config`[=`value`]`

  Set decoder configuration option `config` for `symbology` to `value`. `value` defaults to 1 if omitted. `symbology` is one of `ean13`, `ean8`, `upca`, `upce`, `isbn13`, `isbn10`, `i25`, `codabar`, `code39`, `code93`, `code128`, `qrcode`, `pcard`, `pcard2` or the special value `*`. If `symbology` is omitted or `*`, the `config` will be set for all applicable symbologies. These are the currently recognized `config`s. Prefix a config with "no-" to negate it. Not all configs are appropriate for every symbology.

  `enable`
    Control decoding/reporting of a symbology. For symbologies which are just subsets of `ean13` (`upca`, `upce`, `isbn13`, `isbn10`), this config controls whether the subsets are detected and reported as such. These special cases are disabled by default. PCard and PCard2 are also disabled by default in the scanner. All other symbologies default to enabled.
  `disable`
    Antonym for `enable`
  `emit-check`
    Control whether check digits are included in the decoded output. Enabled by default. This config does not apply for `code128`, which never returns the check digit. It also not apply for cases where the check digit is disabled (see `add-check`). Check digits are currently not implemented for `i25` or `code39`. `pcard` and `pcard2` have no checking at all.
  `add-check`
    Enable decode and verification of a check digit for symbologies where it is optional: this will include `code39` and `i25`, neither of which implements the check digit yet
  `ascii`
    Enable escape sequences that encode the full ASCII character set. This would apply to `code39`, except that it's not implemented either...
  `position`
    Enable collection of symbol position information. Enabled by default. Currently, the position information is unusable, so you can save a few cycles by disabling this.
  `min-length=`n``, `max-length=`n``
    Bound the number of decoded characters in a valid symbol. If a decode result is outside the configured min/max range (inclusive), it will not be reported. Set to 0 to disable the corresponding check. This setting applies to variable-length symbologies: `i25`, `codabar`, `code39`, `code128` and `pdf417`. `min-length` defaults to 6 for `i25` and 1 for `code39` (per Code 39 autodiscrimination recommendation); all others default to 0
  `x-density=`n``, `y-density=`n``
    Adjust the density of the scanner passes. Lower values scan more of the image at the cost of decreased performance. Setting to 0 disables scanning along that axis. Defaults are both 1.
`-q`, `--quiet`
  Quiet operation; disable the audible beep otherwise emitted when a symbol is decoded
`--nodisplay`
  Disable output video window. Video input will be scanned until the program is interrupted or otherwise signaled
`--xml`
  Stream results using an XML output format. This format wraps the raw data from the symbol with information about the scan in an easy to parse format. The latest schema is available from http://zbar.sourceforge.net/2008/barcode.xsd
`--raw`
  Use raw symbol data output format. This format prints symbol data separated by newlines without the additional symbology type information that is printed by default
`--prescale=`W`x`H``
  Request video input scaling from the camera driver. Possibly useful for reducing huge frames to achieve a higher frame rate. Note that the driver may adjust or completely ignore the scaling request

## Examples

Scan for barcodes using the second video device and pipe the resulting data through a script that searches for each code in a database and does something useful with them:

    zbarcam /dev/video1 | upcrpc.py

The upcrpc.py example script included in the `examples/` subdirectory of the distribution will make an XMLRPC call to a popular internet UPC database and print the product description if found.

Scan for barcodes using the default video device and stream results to stdout in XML format, also disable recognition of Interleaved 2 of 5 codes to prevent confusion with other symbologies or background noise:

    zbarcam --xml -Si25.disable

Scan only for Code 39, without using the preview window - maybe for a fixed installation. To enable only Code 39, first all symbologies are disabled, then Code 39 is re-enabled:

    zbarcam --nodisplay -Sdisable -Scode39.enable

To enable PCard decoding (or PCard2 by analogy), use:

    zbarcam --nodisplay -Spcard.enable=1

## Exit Status

zbarcam returns an exit code to indicate the status of the program execution. Current exit codes are:

0

  Successful program completion.

1

  An error occurred. This includes bad arguments and I/O errors.

2

  A fatal error occurred.

## Notes on specific symbologies

PCard
  PCard refers to barcoded playing cards, type WIN. Every card has 2 barcodes: one at the top and one at the bottom of a card, the bottom positioned upside-down. To avoid confusion zbar assumes that symbols are presented in standard orientation, where the top of a card is at the top of a picture. Only the upper barcode should be presented to the scanner, because the other barcode (being upside-down) may denote a different card. If for example the whole card 2 of spades is shown, the scanner would report 2 cards: S5 and S2, because the S5 barcode read upside-down denotes S2.
PCard2

  PCard2 is similar to PCard in most aspects. A barcode consists of 4 bars. The widths are 1 or 2 units, the same with white bars.

  PCard and PCard2 should not be enabled in the same time. The issue it would cause is not due to barcodes themselves, but due to card images. The king of clubs in PCard has a sword, which matches the PCard2 barcode of ten of hearts. Both codes would be detected which may interfere with subsequent processing.

## See Also

zbarimg(1)

http://zbar.sf.net/

## Bugs

See http://sf.net/tracker/?group_id=189236&atid=928515

Prev | Up | Next
ZBar Barcode Reader - Command Reference | Home | zbarimg