TS Info: Difference between revisions

From VideoLAN Wiki
Jump to navigation Jump to search
Gatty (talk | contribs)
→Features: Add wikilinks, including GOP
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
=== Introduction ===
In the Open Source multimedia field there are various choices for multimedia streaming and playback. However analysing and checking validity of [[MPEG-TS]] streams is not really possible. DVBsnoop (http://dvbsnoop.sourceforge.net/) is the only application that is only one that comes near this goal, but it is a commandline utility. This doesn't make it easy to be used.


After some discussion on IRC regarding availability of a Linux utility to display MPEG-TS info from UDP / RTP streams, I have decided to have a go at writing something to do just this.
The goal of TS Info is to be an easy to use MPEG-TS (MPTS/SPTS) analyser with all the information, analysis and validation right under you finger tips.  


I will hopefully be using libdvbpsi for a lot of the parsing duties. I am aware of tools like dvbsnoop, but they don't quite meet the requirements.  I'm looking for something similar to TSReader Lite, without the licensing issues and win32 dependency.
It should also be possible to insert the TS Analyser/TS Monitor in between the client and the server and monitor the stream for the boundaries configured. If the boundaries (or rules) are crossed, then a trigger will be sent to indicate a deviation from the required settings.


So the question is what features would people like to see?  So far I have:
== Features ==


* Ability to read MPEG-TS wrapped in both raw UDP, and RTP/UDP
* Input from TS/RTP/UDP or TS/UDP
* Ability to use linux-dvb devices
* Possible extension to use linux-dvb device (maybe use [[dvblast]] as input)
* Display of a tree hierarchy with PAT / PMT / SID / PID information
* PID list and bandwidths / %age - bargraph
* Display NIT table if it exists
* [[Bitrate]]s (also audio and video separate)
* Calculation of bandwidth of each PID, as well as percentage bandwidth used by each PID
* Mux distance of audio and video packets
* SI table parsing (NIT, PMT, PAT, EIT, CAT, etc.) / descriptor parsing
* Detect scrambled content (check scrambling bits 11, 10, optional 01/00)
* [[I-frame]] gap
* Determine [[GOP]] length
* Detect Open/Closed GOP
* Teletext/closed captioning detection
* CRC errors
* I-frame decoding
* Discontinuity indication
* Subtitle decoding
* EPG grid
* PID selection and forwarding to VLC (via UDP stream?)
* Triggers on deviation from set boundaries (mux distance < 500ms, if not then sent trigger eg: sms/e-mail)
* Mention conformance to which standard and link to it if online source is available


Any wishes or ideas would be welcome at this stage.
== Architecture ==


Gatty.
proposal:
* TS Analyser GUI - user interface to browse the MPEG-TS stream content (information gathered is similar to DVBsnoop)
* TS Analyser    - real-time MPEG-TS analyser that informs the GUI/TS Monitor of features discovered and various measurements
* TS Monitor      - real-time MPEG-TS monitor that triggers on deviations of preferred features in the MPEG-TS stream
<pre>
                                    TS Analyser GUI
                                          |
 
MPEG-TS --------> RTP/UDP input ---> TS Analyser --> RTP/UDP output
(MPTS/SPTS)                                |
                                    TS Monitor --> send trigger if deviation detected
</pre>
== License ==
 
* TS Analyser GUI : GPLv2
* TS Analyser library : LGPLv2.1
* TS Monitor daemon : GPLv2
 
[[Category:Dev Discussions]]

Latest revision as of 05:02, 16 May 2019

In the Open Source multimedia field there are various choices for multimedia streaming and playback. However analysing and checking validity of MPEG-TS streams is not really possible. DVBsnoop (http://dvbsnoop.sourceforge.net/) is the only application that is only one that comes near this goal, but it is a commandline utility. This doesn't make it easy to be used.

The goal of TS Info is to be an easy to use MPEG-TS (MPTS/SPTS) analyser with all the information, analysis and validation right under you finger tips.

It should also be possible to insert the TS Analyser/TS Monitor in between the client and the server and monitor the stream for the boundaries configured. If the boundaries (or rules) are crossed, then a trigger will be sent to indicate a deviation from the required settings.

Features

  • Input from TS/RTP/UDP or TS/UDP
  • Possible extension to use linux-dvb device (maybe use dvblast as input)
  • PID list and bandwidths / %age - bargraph
  • Bitrates (also audio and video separate)
  • Mux distance of audio and video packets
  • SI table parsing (NIT, PMT, PAT, EIT, CAT, etc.) / descriptor parsing
  • Detect scrambled content (check scrambling bits 11, 10, optional 01/00)
  • I-frame gap
  • Determine GOP length
  • Detect Open/Closed GOP
  • Teletext/closed captioning detection
  • CRC errors
  • I-frame decoding
  • Discontinuity indication
  • Subtitle decoding
  • EPG grid
  • PID selection and forwarding to VLC (via UDP stream?)
  • Triggers on deviation from set boundaries (mux distance < 500ms, if not then sent trigger eg: sms/e-mail)
  • Mention conformance to which standard and link to it if online source is available

Architecture

proposal:

  • TS Analyser GUI - user interface to browse the MPEG-TS stream content (information gathered is similar to DVBsnoop)
  • TS Analyser - real-time MPEG-TS analyser that informs the GUI/TS Monitor of features discovered and various measurements
  • TS Monitor - real-time MPEG-TS monitor that triggers on deviations of preferred features in the MPEG-TS stream
                                     TS Analyser GUI
                                           |

MPEG-TS --------> RTP/UDP input ---> TS Analyser --> RTP/UDP output
(MPTS/SPTS)                                |
                                     TS Monitor --> send trigger if deviation detected

License

  • TS Analyser GUI : GPLv2
  • TS Analyser library : LGPLv2.1
  • TS Monitor daemon : GPLv2