0

How can I know what fragment number is currently playing and buffered in videoJS?

For example, with fragments of 6s, and player is in 31s currently playing, current segment is id=6 but how can I know it without know that segment size is 6s?

Also, while videos is in playback, others segments are downloaded. How can I know what segments is currently in buffer?

1 Answers1

0

You can get the URL of the current segment from the segment metadata track

let tracks = player.textTracks();
let segmentMetadataTrack;

for (let i = 0; i < tracks.length; i++) {
  if (tracks[i].label === 'segment-metadata') {
    segmentMetadataTrack = tracks[i];
  }
}

if (segmentMetadataTrack) {
  segmentMetadataTrack.on('cuechange', function() {
    let activeCue = segmentMetadataTrack.activeCues[0];

    if (activeCue) {
      console.log(activeCue.url);
    }
  });
}

https://github.com/videojs/http-streaming#segment-metadata

This only works where HLS is played with MSE rather than with a browser's native playback.

misterben
  • 7,455
  • 2
  • 26
  • 47