Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
dvbsnoop(1)		  DVB Analyzer,	MPEG Analyzer		   dvbsnoop(1)

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/de-
       bugging stream information, e.g.	send via digital TV. You may also  use
       dvbsnoop	 to  analyze mpeg compliant streams stored on DVD or other me-
       dia.  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 functionallity 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 lan-
       guages (grep, perl, python, mrtg, gnuplot, etc.).

Usage
       Dvbsnoop	provides an online and offline input and  different  snoop/de-
       coding 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.
		 bandwith = bandwidth messurement 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  val-
	      ues.  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	putput 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 op-
	      tion 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 plat-
       forms 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 buffersize	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 de-
	      coding mode this might be	transport stream, packetized  elemtary
	      stream  or  sections.  Please aware, that	you cannot e.g.	use -s
	      pes or -s	sec on a saved transport stream.  The  decoding/snoop-
	      ing 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'	decod-
       ing 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	filtervalues 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 filtervalues  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  in-
	      stead of CRC.

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

       -softcrc
	      Do  soft	CRC  checking,	when  reading  section	data.	 Hard-
	      ware/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 recursivly 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 sup-
	      ported. 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  cal-
	      culating 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'  dis-
       play  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
	 reveiving 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 -

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	decod-
       ing 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://dvb-
       snoop.sourceforge.net'.

Rainer Scherg (rasc)						   dvbsnoop(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=dvbsnoop&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help