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] 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
-
- -hideproginfo
- Do not print dvbsnoop header (version, etc.).
General Decoding Output Command Line Options¶
- -pd <mode>
-
- -npd
-
- -ph <mode>
-
0=no hexdump output, 1=hex output, 2=hex line,
3=ascii line, 4=alternate hex output. (default is 4)
- -hexdumpbuffer
- -nohexdumpbuffer
-
- -nph
-
- -t<mode>
-
-tf = full timestamp
-td = delta timestamp mode,
-tn = no time stamp.
- -b
-
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>
-
- -dvr <device>
-
- -frontend <device>
-
- -adapter <n>
-
- -devnr <n>
-
- -buffersize <kb>
-
- -n <value>
-
- -if <file>
-
<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
-
- -timeout <ms>
-
- -f <filter>
-
- -m <mask>
-
- -N <value>
-
- -crc
-
- -nocrc
-
- -softcrc
-
- -nosoftcrc
-
- -spiderpid
-
- -privateprovider <id>
-
Transport Stream (TS) Mode Specific Command Line Options¶
The following command line options are special to the 'Transport Stream' decoding mode:- -s ts
-
- -sync
-
- -nosync
-
- -tssubdecode
-
- -tsraw
-
- -N <value>
-
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
-
- -sync
-
- -nosync
-
PID Scan Mode Specific Command Line Options¶
The following command line options are special to the 'PID Scan' discovery mode:- -s pidscan
-
- -maxdmx <n>
-
Bandwidth Mode Specific Command Line Options¶
There are no special command line options for the 'Bandwidth' display mode.- -s bandwidth
-
Signal Mode Specific Command Line Options¶
There are no special command line options for the 'Signal Strength' display mode.- -s signal
-
- -timeout <ms>
-
Frontend Info Mode Specific Command Line Options¶
There are no special command line options for the 'Frontend Info' display mode.- -s feinfo
-
Examples¶
Examples how to use dvbsnoop: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).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) |