table of contents
- Name
- SYNOPSIS
- Description
- Usage
- Basic Decoding Selection Mode Command Line Options
- General Command Line Options
- General Decoding Output Command Line Options
- Device Selection Command Line Options
- SECTION Mode (SEC) Specific Command Line Options
- Transport Stream (TS) Mode Specific Command Line Options
- PES or PS Mode Specific Command Line Options
- PID Scan Mode Specific Command Line Options
- Bandwidth Mode Specific Command Line Options
- Signal Mode Specific Command Line Options
- Frontend Info Mode Specific Command Line Options
- Examples
- NOTES
- SIGNALS
- BUGS
- SEE ALSO
- Acknowledgments
| dvbsnoop(1) | DVB Analyzer, MPEG Analyzer | dvbsnoop(1) |
Name¶
dvbsnoop - DVB and MPEG stream analyzerSYNOPSIS¶
dvbsnoop [-s mode] [options] pidDescription¶
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).Usage ¶
Dvbsnoop provides an online and offline input and different snoop/decoding modes (see below).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: 0x11If -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 | ./myprogramThere 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:dvbsnoop -s sec -nph -n 10 0x12
dvbsnoop -s sec -ph 3 -n 10 -crc 0x12
dvbsnoop -s sec -spiderpid -privateprovider premiere.de 0x00
dvbsnoop -s sec -spiderpid -timeout 15000 0x00
dvbsnoop -s ts -pd 4 -tssubdecode -nph 0x00
dvbsnoop -s pes 0x28F
dvbsnoop -s pes 0x28F -b > pes.bin.file
dvbsnoop -if hdtv_ps_file.mpg -s ps -ph 0 -nohexdumpbuffer -n 30
dvbsnoop -s signal
dvbsnoop -s signal -pd 9 -n 100 -timeout 100
dvbsnoop -s bandwidth -n 1000 -pd 2 0x1FF
dvbsnoop -s bandwidth -buffersize 256 -n 1000 0x1FF
dvbsnoop -s pidscan -pd 1
dvbsnoop -s pidscan -pd 6
dvbsnoop -s pidscan -pd 9 -maxdmx 12
dvbsnoop -s feinfo -pd 9
dvbsnoop -nohexdumpbuffer -spiderpid -n 2 0x0000
dvbsnoop -b -n 1000 -s ts 0x200 > ts_file.pid0x200.bin
dvbsnoop -b -n 1000 -s ts -tsraw > ts_file.bin
dvbsnoop -s ts -if ts_stream.bin
dvbsnoop -s ts -if ts_file.pid0x200.bin 0x200
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
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'
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
dvbsnoop -s pes 0x28F -b nc -q ServerName 31337
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 -
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).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.SEE ALSO¶
dvbtune (1), dvbstream (1).Acknowledgments¶
DVBSNOOP was written by Rainer Scherg (rasc).| Rainer Scherg (rasc) |