Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Comparison with other tools

streamtop overlaps with several established tools. None of them is a replacement for the others; they answer different questions. This page tries to be factual about where each one fits. Corrections are welcome as issues or pull requests.

Summary

streamtopTSDuckffprobethreefiveiptv-checker
Main jobLive HLS/DASH monitoring over timeMPEG-TS analysis and processingContainer and codec inspectionSCTE-35 decode and encodeCheck links in IPTV playlists
LanguageRustC++C (FFmpeg)PythonNode.js
InterfaceTUI and CLICLI (tsp plugins and utilities)CLICLI and libraryCLI and library
HLS / DASH playlistsPolls live playlists continuouslyHLS input pluginReads them as inputsParses SCTE-35 in HLS; DASH SCTE-214 supportUses ffprobe per link
MPEG-TS depthProbe window only (TR 101 290 P1/P2)Whole-stream analysis, PSI/SI tables, PCR and continuity checks, many pluginsDemux and decodeSCTE-35 sections in TSNone
UDP / multicast / SRTNoYesYes (via FFmpeg protocols)UDP and multicast for TSNo
Media decodeNoNo (transport level)YesNoVia ffprobe
SCTE-35Decodes HLS tags and DASH emsg live, flags mismatches; streamtop scte35 decodes one cueSplice monitoring and injection pluginsExposes data streams, no SCTE-35 semanticsFull decode and encode, the main purposeNo
CDN / HTTP timingDNS, TCP, TLS, TTFB, CDN HIT/MISS per segmentNoNoNoNo
Prometheus / OTLPYesNoNoNoNo
CI verdictsPASS/FAIL JSON, SARIF, budgetsExit codes from scriptsExit codes from scriptsNoResults written to an output directory

When to use which

Use TSDuck when the problem is inside the transport stream: PSI/SI tables, PID mapping, PCR and continuity analysis over the whole stream, multicast or DVB input, remultiplexing, or SCTE-35 injection. TSDuck works at the MPEG-TS level and is far deeper there than streamtop. streamtop only inspects the first bytes of each segment.

Use ffprobe when you need exact codec and container parameters from one file or URL, or anything that needs decoding. ffprobe reads a snapshot; it does not track a live playlist over time, and it does not report HTTP timing or CDN behavior.

Use threefive when the job is SCTE-35 itself: decoding cues from TS, HLS, base64, hex, or XML, encoding new cues, or injecting them. streamtop decodes the cues it finds while monitoring, and streamtop scte35 decodes a single Base64 or hex cue, but it does not encode, inject, or verify the CRC.

Use iptv-checker when you want per-channel status plus ffprobe stream metadata (codecs, resolution) for a playlist, with retries, delays, and proxy support. streamtop check probes reachability and segment TTFB without ffprobe, prints a table, JSON, or CSV, and can write the working entries to a new M3U with --alive-out.

Use streamtop when you are watching a live HLS or DASH channel over minutes or hours and want to see segment timing, CDN edge behavior, stalls, ABR ladder versus bitstream mismatches, and ad markers in one terminal view, or when you want that as Prometheus metrics or a CI gate.

Other tools

  • Eyevinn hls-monitor: HTTP service that monitors HLS streams for errors.
  • DASH-IF Conformance: the reference conformance validator for MPEG-DASH. Use it for spec conformance; streamtop does not validate full DASH conformance.
  • Apple mediastreamvalidator: the reference HLS validator, macOS only.