Dvbinspector
DVB Inspector is an open-source DVB analyzer, written in java
Install / Use
/learn @EricBerendsen/DvbinspectorREADME
DVB Inspector
DVB Inspector is an open-source DVB analyzer, written in java. It can show the logical structure of the DVB SI and PSI data. It also shows bit rate usage data. DVB Inspector can be used to analyse contents; MPEG Video structure, teletext, DVB subtitles, DSM-CC Object carousels, SCTE-35 signaling, etc.

Prerequisites
DVB inspector requires java 21 or higher.
Installation
DVB inspector comes in a single .zip file. It contains all necessary files for running DVB inspector.
Unzip DVBinspector-1.21.0-dist.zip to a directory of your choice. It will create the following directory structure;
Directory structure
- lib directory, contains external libraries that are required.
- src/main/java, this directory contains sources for the java program.
- src/main/resources, contains images needed by DVB Inspector
- src/main/resources/res, contains comma separated resource files for bouquet_id, ca_system_id, data_broadcast_id, original_network, platform_id, oui_registration. The files can be updated if needed, see site.
- COPYING, contains the GPL license
- dvb.bat Dos command script that starts the program. Can be modified if libraries are placed in a different location than default.
- dvb.sh Bash script to start the program using Linux.
- DVBInspector.jar contains the classes for the main program. Can be executed using the dvb.bat or dvb.sh script.
- DVBinspector-1.21.0.jar. Self contained jar that contains all resources and libs. To execute just double click.
Usage
DVBinspector-1.21.0.jar
There are two ways to start DVBInspector. The easiest is to use DVBinspector-1.21.0.jar. This jar contains everything DVBInspector needs (apart from java), so there is no need to set class-paths, etc. On windows just double-click. Or from command line type "DVBinspector-1.21.0.jar" (without the quotes). If you want more control (to set heap size), and see some debug information you can use "java -jar DVBinspector-1.21.0.jar".
dvb.bat
This small windows batch file sets up the environment to start DVB Inspector. It includes the needed libraries in the class path.
dvb.sh
The linux/unix/mac version of dvb.bat. This small batch file sets up the environment to start DVB Inspector. It includes the needed libraries in the class path.
Manual
See the manual for more information on available views and options of the program.
Changelog
List of the most important changes between releases.
Release 1.21.0
Release date: 3/10/2025
- fixed: first packet after discontinuity was not processed
- added: export as .csv file to Bar Chart
- added: export as .csv file to table views in detail panel
- updated: versions of jfreechart and opencsv
- changed: tooltip for temi always shows packetNo instead of time
- added: use ctrl-c to copy tooltiptext in PCR/PTS/DTS view
- added: support for TEMI data in PES packets
- fixed: drawing TEMI timestamps
- fixed: construction of AF Descriptors
- added: M7 OTT_brandID_descriptor
- added: support for ASTRA Service Guide Table (SGT)
- fixed: show teletext data_unit_id=0x03 (subtitle) normal
Release 1.20.0
Release date: 21/04/2025
This release requires Java 21 or newer!
- added: show summary when root node is selected
- changed: update to MJD processing to support 16 bit rollover in 2038. Thanks to Paul Higgs
- added: description of component_descriptor value for T/UWA 005 (HDR Vivid). Thanks to Paul Higgs
- fixed: CarouselIdentifierDescriptor, formatID is optional
- fixed: AACDescriptor, aac_type_flag is optional
- added: support for AVS3 audio and video. Thanks to Paul Higgs
- added: HDR Vivid descriptor according to T/UWA 005-2.1. Thanks to Paul Higgs
- changed: internal refactoring, a.o. KVP now extends DefaultMutableTreeNode so it can be used directly in getJTreeNode()
Release 1.19.2 (bug fix release)
Release date: 11/08/2024
- fixed: displayed time of packets was wrong
Release 1.19.1 (bug fix release)
Release date: 4/08/2024
- fixed: dvb.sh and dvb.bat to use correct dependencies
Release 1.19.0
Release date: 4/08/2024
- added: support for DSMCCStreamEventPayloadBinary in StreamEventDescriptor
- changed: use default lookAndFeel, improve hiDPI scaling and windows startup speed
- fixed: millisecond padding in getPacketShortTime. Thanks to David Evans
- updates from Rec. ITU-T H.222.0 (2021)/Amd.1 (12/2022)
- added: Australian logical channel descriptor
- added: mpeg copyright descriptor
- added: ServiceProminenceDescriptor
- added: support for AVCHD/Blu-ray 192 byte TS-files
Release 1.18.0
Release date: 3/07/2023
- added: support for h.266 (VVC) parsing
- added: labels for Satellite Access Tables PID and table_id
- added: VVCVideoDescriptor
- added: table view for NIT with services per network
- added: multiple detail views per node
- updated: versions of DVB identifiers and OUI list (thanks to lebernie)
Release 1.17.0
Release date: 11/11/2022
This release requires Java 17 or newer!
- improved: faster loading of simple private sections. Thanks to Alen Vrečko
- added: AVS3VideoDescriptor and AVS3 components and stream type. Thanks to Paul Higgs
- added: option to save teletext pages and services as .t42 file
- added: parsing of SMPTE2038. Thanks to Loïc Bienvenu
- added: documentation on how to add a parser. Thanks to Loïc Bienvenu
- added: AlternativeTransferCharacteristicsSei_message. Thanks to Loïc Bienvenu
- added: some Canal+ International private descriptors
- added: jump to tree location from htmlView for EIT, cc_errors
- added: list of packetNo's of continuity errors
- improved: list of packets for PID now shows actual packetNo in range [..]
- added: accelerator keys for tabbed panes (Alt-1 .. Alt-5)
- fixed: Wrong TSID in BAT
- added: Recent Files Menu
- added: JPEG-XS descriptor, decoding of JPEG-XS elementary stream header. Thanks to Simon Provost
Release 1.16.1 (bug fix release)
Release date: 28/01/2022
- fixed: dvb.sh and dvb.bat to use correct dependencies
Release 1.16.0
Release date: 23/01/2022
- added: interpreting PSI tables based on tableID
- added: support for stuffing sections
- added: support for TSDT (Transport stream description table)
- added: DTG ServiceAttributeDescriptor
- added: ServiceAvailabilityDescriptor
- added: Option to show timestamps as seconds.uuu instead of hh:mm:ss.uuu
- updated: dependencies like opencsv, jfreechart, etc.
- fixed: bug in original network id of the TransportProtocolDescriptor
- fixed: bug when getting the objectInfo data in BIOPFileMessage
- fixed: missing fields in TerrestrialDeliverySystemDescriptor
Release 1.15.0 (10th anniversary release)
Release date: 31/01/2021
This release requires Java 11 or newer!
- added: support for AC-4
- added: display preroll time on splice_time for SCTE-35
- added: copy/save buttons to TableView
- fixed: fastscan ONT detection checks for originalNetworkId not actual
- added: fastscan M7 Nagra_brandID_descriptor
- added: support for SlHdrInfo in UserDataRegisteredItuT35Sei_message
- added: support for ST2094-10_data in AuxData
- changed: java version to 11
- fixed: VPS day/country decoding (Thanks to Stefan Pöschel)
- fixed: support for UTF-8 ISO/IEC10646-1
- extended: implementation of PES Header, including support for AD_descriptor in PES_private_data
Release 1.14.0
Release date: 17/10/2020
- fixed: scaling for HiDPI displays
- improved: labeling PIDs shared between services
- fixed: (null) in SDT when service has no service_descriptor
- added: NVOD_reference_descriptor
- added: time_shifted_event_descriptor
- added: more detail for EIT Events
- added: TableView for TOT(sections)
- improved: EIT event HTMLView to group by language
- fixed: labeling PIDs whem multiple versions PMTSection present
- added: some UserDataTypes from ATSC
- added: several (private) stream_type and table_type descriptions
- fixed: reload stream shows progress indicator and can be interrupted
- added: support for TTML, including TtmlSubtitlingDescriptor, Downloadable Font Information Table and XMLView
- fixed: url_extension_byte off by one in TransportProtocolDescriptor (Thanks to Tomi Sarparanta)
- added: .trp to supported file extensions
Release 1.13.0
Release date: 31/05/2020
- added: Tableview for several PSI tables
- updated: lookup files for DVB identifiers, like original_network_id, ca_system_id, etc.
- updated: oui list
- updated: dependencies like opencsv, jfreechart, etc.
- fixed: handling of CA_Descriptor in component descriptors
- fixed: EIT View not complete when spanning multiple tableIds
- improved: show table specific labels in treeview instead of table_id_extension
Release 1.12.0
Release date: 13/04/2020
- updated: stream_type descriptions and MPEG Extension descriptor names based on H.222.0 (2018) Amendment 1
- fixed: a service is not uniquely identified by service_id only, but by original_network_id, transport_stream_id and service_id, chn.
- changed: SDT and EIT tree representation to match the fix for service_id
- updated: M7 Fastscan to v.8.2.0
- added: AC4Descriptor and AudioPreselectionDescriptor (DVBExtensionDescriptors)
- improved: MegaFrameInitializationPacket to support Optional MIP section parameters
- added: Name descriptor and Module link descriptor support for DSM-CC UN-Message
- improved: performance on DSMCCs getTreeNode by using parallel streams
- added: ScramblingDescriptor
- fixed: handle PesPackets without data for subtitling
- add
