dvbsnoop is an open source DVB/MPEG stream analyzer.
Its purpose is to debug, dump or view digital stream information (e.g. digital television broadcasts) send via satellite, cable or terrestrial. Streams can be SI, PES or TS. Basically you can describe dvbsnoop as a "swiss army knife" analyzing program for DVB, MHP, DSM-CC or MPEG - similar to TCP network sniffer programs like the old and famous snoop on Sun Solaris or tcpdump on Linux (which is in fact a kind of a snoop clone). You may also analyze offline mpeg streams, e.g. stored on DVD or mpeg2 movie files.
dvbsnoop is helpful for people interrested in DVB and/or in the technical part of digital television (e.g. if you are a developer of DVB related software). If you are in need to sniff data streams (e.g. tcp/ip, multicasts) send over cable or satellite, dvbsnoop also offers some features and protocol decoding.
In the beginning dvbsnoop was mainly written to learn and understand the DVB protocol structures and streams sent via satellites. Out of this reason, the program ist not highly performance optimized, but it hopefully will do its job. Have a look on the feature list, what dvbsnoop is capable of and what it can do for you...
Dvbsnoop is still under development and will be enhanced in the future (depending on my spare time). Ideas, bug reports, enhancements are welcome. Dvbsnoop is currently part of the tuxbox project and is designed to run on unix based set top boxes, too.
dvbsnoop is based on the linux dvb api. You need the dvb driver installed on your computer to use dvbsnoop. dvbsnoop is text-based, so it should work on any unix based system, which offers shell access and dvb support installed.
dvbsnoop is a commandline tool.
To tune in a transponder, use a proper tuning program like dvbtune.
dvbsnoop [options] pid
pid can be any unsigned number within the legal pid number range.
The PID can be specified in hex, octal or decimal version (using C-syntax -notation).
e.g.: hex: 0x1A, octal: 0722 , decimal: 6932
dvbsnoop tries to decode every data it gets....
E.g. if you try to decode a video or audio stream in section mode - dvbsnoop may assume a section table and will decode wrong data. In this case the decoding will be garbage! Using the '-crc' option should prevent this (if supported at hardware/driver level). Also the '-sync' option is very helpful, when using '-s pes' or '-s ts'. The '-sync' option tries to find TS or PES packet start sync bytes before decoding...
dvbsnoop doesn't do DVB stream validation....
dvbsnoop assumes correct dvb streams. Getting garbage, corrupted streams or streams with wrong semantics (e.g. incorrect length information) will result in wrong decoding output. Because od this, the usage of the options '-crc' and '-sync' is strongly recommended!!
Bugs and wrong decoding:
If you see any odd output, please report this.
Wrong decoding can be mostly avoided, using the options '-crc' and '-sync'.