Debugging PTS in HLS samples
Qosifire web service allows monitoring HLS streams' availability and consistency.
We see a lot of cases when HLS stream has difference in PTS of audio and video samples. This brings the inconsistency in delivered content and may break the playback for end-users. So one of HLS quality monitoring features of Qosifire is real-time tracking of audio and video timestamps.
Also take a look at the Getting started guide for Qosifire.
Once you're logged into Qosifire, you need to go to Streams list and then select the stream to track.
Scroll down to the Flow section to see what chunklists are being downloaded. If you have several renditions, you can filter the output of the Flow by selecting what sub-stream you need.
Every downloaded chunk has its extended information. You can either click on each individual chunk to see the details, or use a switch called Details to show details for all chunks.
On the right side of chunk details you can see its size and the time which your Qosifire agent spent downloading it.
The main part is a set of timestamps.
- First line shows timestamps of the first and the last samples of video DTS.
- The second line shows timestamps the first and the last samples of video PTS.
- The third line shows timestamps of the first and the last samples for audio PTS.
- The fourth line shows the delta - the modulus of the difference between the last samples of video PTS and audio PTS.
Typically, if the delta is less that half of a second, it should not affect the playback.
If the delta is between half of a second and one second, this is still handled by most players but it's a sign of potential problem. In Qosifire this delta is highlighted in yellow.
If the delta is more than a second, this will probably cause a playback problem. In Qosifire this delta is highlighted in red.
This feature works with all 3 containers supported by Qosifire which are MPEG-TS, fragmented MP4 and audio-only MPEG-TS.
Watch this video so see this feature in action:
This video demonstrates how ABR HLS is tracked real-time: