Skip to content

Parsing and surfacing prft mp4 box information via player events #4382

@dave-nicholas

Description

@dave-nicholas

Have you read the FAQ and checked for duplicate open issues?
Yes

Additional context

We (SKY) would like to propose a change to the streaming engine in where we would parse and surface prft mp4 box information via a player event. We are happy to raise the PR.

Is your feature request related to a problem? Please describe.

We have a requirement for seeking to an exact date time within a live event (a goal for example).
To do this we need to know the program start date (ProducerReferenceTime).
We want to be able to deduce the program start date of a live event using PRFT boxes.

Describe the solution you'd like

The PRFT box contains ntp_timestamp (a UTC time in NTP format corresponding to decoding_time) and media_time (the same time as ntp_timestamp, but in the time units used for the reference track, and is measured on this media clock as the media is produced.), we can use these values in conjunction with the timescale to calculate the program start date.

Program start date = (ConvertToUTC(ntp_timestamp) - (media_time / timescale))
  • Shaka will surface a new player event prft
  • The prft event will contain
{
 wallclocktime, // a utc timestamp representation of the ntp_timestamp
 mediaTime, // media_time
 timescale, // the current timescale 
}
  • Only the first video PRFT box would need to be surfaced
  • To know the timescale we would need to add this value to the segment reference.
  • The feature will be subscribe-able via feature flag on the streaming config

example solution in our own fork

Describe alternatives you've considered

N/A

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions