Provided by: dvbsnoop_1.4.50-4ubuntu1_amd64 bug

Name

       dvbsnoop - DVB and MPEG stream analyzer

SYNOPSIS

       dvbsnoop [-s mode] [options] pid

       dvbsnoop [-s mode] [options] -if filename [pid]

       dvbsnoop [-s mode] [options] -b [pid] > binary.file

       dvbsnoop [-s mode] [options]

Description

       DVBSNOOP  is  a  text  based  DVB  and  MPEG  stream analyzer for viewing/debugging stream
       information, e.g. send via digital TV. You may also use dvbsnoop to analyze mpeg compliant
       streams  stored  on DVD or other media.  Dvbsnoop analyzes and displays MPEG, DVB, DSM-CC,
       MHP, etc. data and structures in  human  readable  form.  Possible  stream  types  are  TS
       (tranport  streams), PS (program streams), PES (packetized elementary streams) or SECTIONS
       (service information streams).

       DVBSNOOP also has some additional functionality to analyze  receiver  (set  top  box,  dvb
       card) data, bandwidth of a transport stream, pid scan, etc.

       Using  special  network  programs like netcat (nc), dvbsnoop may also be used to do remote
       sniffing and decoding. For post-processing dvbsnoop output, you may use the full range  of
       unix tools and scripting languages (grep, perl, python, mrtg, gnuplot, etc.).

Usage

       Dvbsnoop  provides  an  online  and  offline input and different snoop/decoding modes (see
       below).

       Using dvbsnoop 'online' requires dvb-api  compliant  devices  (http://www.linuxtv.org)  to
       grab  live  stream  information  from e.g. satellite or cable tv or data streams. You will
       also need DVB compliant hardware (e.g. DVB-S pci card or a  linux  based  setop  box  like
       dbox2  or  Dreambox) to receive DVB data streams. To tune into a transponder or frequency,
       please use a program like 'szap',  'dvbtune'  or  a  DVB-GUI  like  'Enigma',  'Neutrino',
       'MythTV', 'VDR', etc..

       The 'offline' mode enables you to analyze binary stream files (e.g. transport stream files
       or PES files).

       Some options are specific for the selected modes. You may try  different  combinations  of
       command line options to get best results.

       A   short  FAQ  for  common  questions  and  example  decoding  output  can  be  found  at
       http://dvbsnoop.sourceforge.net.

Basic Decoding Selection Mode Command Line Options

       -s [ts|ps|pes|sec|pidscan|bandwidth|signal|feinfo]
               Basic snoop mode selection.
                 sec      = SI mode (SECTIONS)
                 ts       = transport stream mode
                 ps       = program stream mode (same as PES mode)
                 pes      = packetized elementary stream mode,
                             e.g. teletext, audio, video, data
                 pidscan  = scan and display PIDs on tuned
                             transponder/frequency.
                 bandwidth = bandwidth measurement mode
                             for selected pid.
                 signal   = display tuner signal reception info.
                 feinfo   = display tuner data (frontend info).

              The modes 'sec', "ps" or "pes" require the selection  of  a  PID.   The  mode  'ts'
              requires either a PID specified or the option -tsraw.

              A  PID  can  be  specified  using  octal, decimal or hexadecimal values.  Examples:
              octal: 021, decimal: 17, hexadecimal: 0x11

              If -s option is omitted, default mode is "-s sec" (Section mode).

General Command Line Options

       -help
              Print help text with command line options.

       -hideproginfo
              Do not print dvbsnoop header (version, etc.).

General Decoding Output Command Line Options

       -pd <mode>
              Specify print decoding verbose mode. Specify 0 for  no  output.   9  will  be  very
              verbose. Default is 6.

       -npd
              Same as -pd 0.

       -ph <mode>
              Specify print hex output verbose mode:
               0=no hexdump output, 1=hex output, 2=hex line,
               3=ascii line, 4=alternate hex output. (default is 4)

       -hexdumpbuffer

       -nohexdumpbuffer
              Switch  on/off  hexdump of stream input buffer.  May be used to enhance -ph option.
              (e.g. -ph 4 -nohexdumpbuffer)

       -nph
              Obsolete, same as -nohexdumpbuffer.

       -t<mode>
              Timestamp output mode:
                 -tf = full timestamp
                 -td = delta timestamp mode,
                 -tn = no time stamp.

       -b
              Binary output of packets (disables other output).  Use this  option  to  store  raw
              data in file or chain data to another program.
                 E.g.:  dvbsnoop -s ts 0x00 -b > file
                        dvbsnoop -s pes 0x3FF -b | ./myprogram

              There  might  be a file limit on your system (mostly 2 GB) when writing files using
              '>'.

Device Selection Command Line Options

       Dvbsnoop uses default devices, defined by the DVB API.  On  some  platforms  or  if  using
       multiple  dvb cards, you may want to override default settings, e.g. to select a different
       tuner.

       -demux <device>
              Specify <device> for demux.  If not specified, dvbsnoop uses the  device  specified
              by the linux  dvb-api.

       -dvr <device>
              Specify  <device> for dvr.  If not specified, dvbsnoop uses the device specified by
              the linux  dvb-api.

       -frontend <device>
              Specify <device>  for  frontend.   If  not  specified,  dvbsnoop  uses  the  device
              specified by the linux  dvb-api.

       -adapter <n>
              Specify  DVB  adapter/card  by  number  <n>  (0-9) using default path pattern (e.g.
              /dev/dvb/adapter1/...). If not specified, dvbsnoop uses the default adapter/card  -
              usually 0.

       -devnr <n>
              Specify  DVB  device  number  <n>  (0-9)  on  a DVB adapter/card using default path
              pattern (e.g.  /dev/dvb/adapt.../demux1).  If  not  specified,  dvbsnoop  uses  the
              default device number - usually 0.

       -buffersize <kb>
              Set demux read buffer size in KBytes.  Default is 0 (use internal default value).

       -n <value>
              Stop after reading <value> packets. Use this to limit the read process.  Default is
              0 (no limit).

       -if <file>
              Read binary stream data from file instead of the demux device.
                <file> = '-' reads from standard input.  Depending  on  the  decoding  mode  this
              might be transport stream, packetized elementary stream or sections.  Please aware,
              that you cannot e.g. use -s pes or  -s  sec  on  a  saved  transport  stream.   The
              decoding/snooping mode has to match the saved stream format!

SECTION Mode (SEC) Specific Command Line Options

       The following command line options are special to the 'SECTION' decoding mode:

       -s sec
              Section mode.

       -timeout <ms>
              Section read timeout in ms. Default is 0 (no timeout).

       -f <filter>
              Filter  value  for  filtering  section  data e.g. table id's.  Value may be decimal
              (49), octal (037) or hexadecimal (0x4F).   You  may  use  multibyte  filters  like:
              0x4E.01.20.FF  The filter comprises e.g. 16 bytes covering byte 0 and byte 3..17 in
              a section, thus excluding bytes 1 and 2 (the length field of a section).  To  check
              the filter values use -pd 9.

       -m <mask>
              Mask  value  to  use  for  filters.   Value  may  be  decimal  (49), octal (037) or
              hexadecimal (0x4F).  You may use multibyte filters like: 0xFF.F0.FE.FF  The  filter
              comprises e.g. 16 bytes covering byte 0 and byte 3..17 in a section, thus excluding
              bytes 1 and 2 (the length field of a section).  To check the filter values use  -pd
              9.

       -N <value>
              Stop after decoding <value> packets. Use this to limit the packet decoding process.
              Useful, when reading stream data from file.  -n limits the read packet process,  -N
              limits the decoding process. Using dvb hardware filters -n would be the same as -N.
              Default is 0 (no limit).

       -crc
              Do CRC checking,  when  reading  section  data.   Default  is  off.  This  is  only
              supported,  if  your  DVB  hardware/firmware  supports  CRC checking.  Remark: Some
              section types may use Checksum instead of CRC.

       -nocrc
              Don't do hardware/firmware CRC, when reading section  data   (default).   Some  DVB
              sections do not have proper CRC set!

       -softcrc
              Do  soft  CRC checking, when reading section data.  Hardware/firmware CRC should be
              preferred. Default is -nosoftcrc.  Remark: Some  section  types  may  use  Checksum
              instead of CRC.

       -nosoftcrc
              Don't do soft CRC, when reading sections. (default)

       -spiderpid
              Snoop  referenced  section PIDs.  This option recursively reads all PIDs referenced
              by a section. This option also sets number of packets to be read to 1 (sets -n  1).
              To read more packets for a pid, use -n <count> after specifying -spiderpid.

       -privateprovider <id>
              Set  provider  <id>  string for decoding of special private tables and descriptors.
              Use -help to display provider currently supported. If omitted, private data will be
              displayed  as  hexdump depending on -ph option. (If you have information on private
              data structures, currently not supported by dvbsnoop, please let us know!)

Transport Stream (TS) Mode Specific Command Line Options

       The following command line options are special to the 'Transport Stream'  decoding mode:

       -s ts
              Transport Stream mode.

       -sync
              (obsolete as of 1.4.10, -sync is default. This option enforces software packet sync
              for TS and PS/PES).

       -nosync
              (obsolete as of 1.4.10).

       -tssubdecode
              Sub-decode  SI  data (sections) or PS/PES data from transport stream decoding. This
              reads transport stream packets and tries to decode its content.  Useful  to  decode
              PES or SI data from a transport stream file.

       -tsraw
              Read  full transport stream (all pids).  Your hardware/firmware has to support this
              mode.

       -N <value>
              Stop after decoding <value> packets. Use this to limit the packet decoding process.
              Useful,  when reading stream data from file.  -n limits the read packet process, -N
              limits the decoding process. Using dvb hardware filters -n would be the same as -N.
              Default is 0 (no limit).

PES or PS Mode Specific Command Line Options

       The following command line options are special to the 'PES' (packetized elementary stream)
       or 'PS' (program stream) decoding mode:

       -s ps  Program Stream mode.

       -s pes
              Packetized Elementary Stream mode.

       -sync
              (obsolete as of 1.4.10, -sync is default. This option enforces software packet sync
              for TS and PS/PES).

       -nosync
              (obsolete as of 1.4.10).

       PID Scan Mode Specific Command Line Options
              The following command line options are special to the 'PID Scan' discovery mode:

       -s pidscan
              Scan PIDs on transponder/frequency.

       -maxdmx <n>
              Set maximum use of DMX filters.  Default is 0 (use all possible filters).

Bandwidth Mode Specific Command Line Options

       There are no special command line options for the 'Bandwidth' display mode.

       -s bandwidth
              Determine  bandwidth for a dvb stream. This will be done by calculating received ts
              packets in a timeslot.

Signal Mode Specific Command Line Options

       There are no special command line options for the 'Signal Strength'  display mode.

       -s signal
              Poll frontend signal status.

       -timeout <ms>
              Poll timing in msec.

Frontend Info Mode Specific Command Line Options

       There are no special command line options for the 'Frontend Info' display  mode.

       -s feinfo
              Display frontend information.

Examples

       Examples how to use dvbsnoop:

       Display EPG, 10 sections:
          dvbsnoop -s sec -nph  -n 10  0x12
          dvbsnoop -s sec -ph 3 -n 10 -crc  0x12

       Display sections tree (1 packet each) using private provider data:
          dvbsnoop -s sec -spiderpid -privateprovider premiere.de  0x00

       Display sections tree (1 packet each) skipping "empty" pids:
          dvbsnoop -s sec -spiderpid -timeout 15000  0x00

       Display PAT transport stream (ts) and do subdecoding of sections and descriptors:
          dvbsnoop -s ts -pd 4 -tssubdecode -nph  0x00

       Read PES (e.g. Videotext, Video, Audio) stream:
          dvbsnoop -s pes 0x28F
          dvbsnoop -s pes 0x28F -b > pes.bin.file

       Read PS from file and do not show hex dump:
          dvbsnoop -if hdtv_ps_file.mpg -s ps -ph 0 -nohexdumpbuffer -n 30

       Show current signal strength:
          dvbsnoop -s signal
          dvbsnoop -s signal -pd 9 -n 100 -timeout 100

       Show bandwidth usage of a PID  0x1FF:
          dvbsnoop -s bandwidth -n 1000 -pd 2 0x1FF
          dvbsnoop -s bandwidth -buffersize 256 -n 1000  0x1FF

       Do PID scan of a tuned transponder (different display levels):
          dvbsnoop -s pidscan -pd 1
          dvbsnoop -s pidscan -pd 6
          dvbsnoop -s pidscan -pd 9 -maxdmx 12

       Show frontend info:
          dvbsnoop -s feinfo -pd 9

       Try to scan all sections, read 2 packets per PID:
          dvbsnoop -nohexdumpbuffer -spiderpid -n 2  0x0000

       Save 1000 packets of a transport stream to a file:
          dvbsnoop -b -n 1000 -s ts  0x200  > ts_file.pid0x200.bin
          dvbsnoop -b -n 1000 -s ts -tsraw  > ts_file.bin

       Read transport stream (ts) from file and decode:
          dvbsnoop -s ts -if ts_stream.bin
          dvbsnoop -s ts -if ts_file.pid0x200.bin   0x200

       Simple filter for some PID values, some examples:
          dvbsnoop -n 5 -nph 0x00 | grep -i "PID: "
          dvbsnoop -spiderpid -nph -n 10  0x00 | grep -i "PID: " | sort | uniq
          dvbsnoop -s signal -pd 9 | ./perl-statistics-prog.pl

       Other simple filter examples:
          dvbsnoop -s sec -f 0x4E -m 0xFF  0x12
          dvbsnoop -s sec -f 0x4E.34.00 -m 0xFF.FF.0F  0x12
          dvbsnoop -s sec -f 16.00 -m 255.255  0x12
          dvbsnoop -s sec -nph -n 5 0x10 | grep -i "frequency"
          dvbsnoop -s ts -nph 0x100 | grep -i 'Transport_error\|^PID'

       Selecting devices:
          dvbsnoop -s feinfo -pd 9 -frontend /dev/dvb/adapter0/frontend1
          dvbsnoop -s feinfo -pd 9 -adapter 0 -devnr 1
          dvbsnoop -s feinfo -pd 9 -adapter 2

       Sending dvbsnoop data over network, using netcat:
          dvbsnoop -s pes 0x28F -b    nc -q  ServerName 31337

       Do remote decoding of dvb data over network using dvbsnoop and netcat:
         streaming site:
             dvbsnoop -s ts 0x0065 -b    nc -q  ServerName 31000
         receiving site:
             nc -l -p 31000    dvbsnoop -nph -s ts -tssubdecode -if -

         You may also use e.g. dvbtools for sending dvb data over a network:
             dvbstream ....  -->  dumprtp  dvbsnoop -s ts -if -

       For    more    examples    and    example    output    of    dvbsnoop,    please     visit
       http://dvbsnoop.sourceforge.net.

NOTES

       dvbsnoop tries to decode all of the data it receives, e.g. if you try to decode a video or
       audio stream in section mode, dvbsnoop may assume a section table and will decode the data
       wrong.  In  this case the decoding will be garbage. Using the '-crc' option should prevent
       this (if supported at the hardware/driver level).
       dvbsnoop does not do  DVB  stream  validation.   dvbsnoop  assumes  correct  DVB  streams.
       Corrupted streams or streams with wrong semantics (e.g. incorrect length information) will
       result in wrong decoding output. For this reason, the use of '-crc'  options  is  strongly
       recommended.
       Depending  on  the  firmware  of your dvb card, dvbsnoop may not be able to sniff on pids,
       which are occupied by other processes. This is no bug, this is a driver/firmware issue.

SIGNALS

       dvbsnoop  catches signals to provide smooth program termination.
          SIGHUP, SIGQUIT and SIGTERM  will terminate dvbsnoop smoothly.
          SIGABORT will abort at once after flushing buffers.
          SIGKILL  will just kill down dvbsnoop (OS specific).

BUGS

       Please check http://dvbsnoop.sourceforge.net for bug reports.
       Bug reports: http://sourceforge.net/tracker/?group_id=85040

SEE ALSO

       dvbtune (1), dvbstream (1).

Acknowledgments

       DVBSNOOP was written by Rainer Scherg (rasc).
       Copyright (c) 2001-2006  Rainer Scherg

       Additional patches and bugfixes/-reports were provided by members of the tuxbox project  -
       bringing  digital  TV  to linux based set top boxes (e.g. "dbox2" digital tv receiver) and
       also by users of dvbsnoop (see the ChangeLog file for credits).
       For more information about DVBSNOOP please visit 'http://dvbsnoop.sourceforge.net'.