WebVTT in live streams

Hello,


I'm trying to understand what will be the correct way to signal X-TIMESTAMP-MAP in live streams.


For VoD (e.g. manifests with EXT-X-ENDLIST), I found to currect way to use a constant local/PTS pair, where the PTS is the the PTS of the IDR of the first segment)

So this mode is working properly and video/subtitles are synched:

frag1:

WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:284722

00:00:36.849 --> 00:00:39.729
-Mina herrar.
-Mr Turner!

00:00:39.889 --> 00:00:43.769
Min far och jag beundrar
detta himmelska verk.

frag2:

WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:284722

00:00:39.889 --> 00:00:43.769
Min far och jag beundrar
detta himmelska verk.

00:00:43.929 --> 00:00:49.689
Minns jag rätt: hade vi lyckan att få
se det på utställningen förra året?

frag3:

WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:284722

00:00:43.929 --> 00:00:49.689
Minns jag rätt: hade vi lyckan att få
se det på utställningen förra året?



However for live it is impossible to rely on a "first" PTS, so I tried the following, which doesn't seem to work:

frag1:

WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:36.000,MPEGTS:3524722

00:00:36.849 --> 00:00:39.729
-Mina herrar.
-Mr Turner!

00:00:39.889 --> 00:00:43.769
Min far och jag beundrar
detta himmelska verk.

frag2:

WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:40.000,MPEGTS:3884722

00:00:39.889 --> 00:00:43.769
Min far och jag beundrar
detta himmelska verk.

00:00:43.929 --> 00:00:49.689
Minns jag rätt: hade vi lyckan att få
se det på utställningen förra året?

frag3:

WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:44.000,MPEGTS:4244722

00:00:43.929 --> 00:00:49.689
Minns jag rätt: hade vi lyckan att få
se det på utställningen förra året?


As you can see the timing is still the same, and LOCAL and MPEGTS keep progressing relativly, but the result is subtitles out of sync.


Can you explain what is the currect behavior of X-TIMESTAMP-MAP (LOCAL vs MPEGTS), especially in live use-case?


(Tests were performed on iPhone native player, iOS 10.1.1).


Thank you

You should only need to adjust the MPEG to time mapping when it changes. That is, once you've put out your first webVTT segment with a particular mapping, you can just keep that value until the mapping changes. The MPEG time need not be a time in the range of the current segment.


But what you are doing seems like it should work. Given that the webVTT seems fine, perhaps the issue is with the durations on the video/audio content?

You didn't indicate how long it takes the subtitles to be out of sync.

WebVTT in live streams
 
 
Q