Short
Я хотел бы добавить сдвиг времени в проигрывателе потокового видео с использованием PTS, но не знаю, как правильно выполнить преобразование из единиц в секунды.
Long
Я пытаюсь создать простой проигрыватель потокового видео, используя hls.js , и я хотел бы показать в браузере разницу между реальным временем начала потокового воспроизведения и временем, когда пользователь подключается к потоку.Например, потоковое видео длится 2 минуты 15 секунд, если теперь пользователь открывает мой проигрыватель, он должен показывать не «0 - 36» (36 - время для нескольких уже загруженных фрагментов), а «2:15 - 2:51».Проще говоря, я хотел бы добавить сдвиг времени в видеоплеере.Поскольку это MPEG-TS, он содержит PTS в заголовке PES, который подключен к таймеру 90 кГц.В hls.js уже проделали работу с получением PTS из пакетов.Таким образом, должно быть легко установить новую переменную равной PTS после проверок и побитовых операций и преобразовать новую переменную из единиц в секунды.И есть моя проблема - я не знаю, как правильно сделать конвертацию.Я попытался разделить полученный PTS на 90000, но полученное значение больше, чем время видео на 1,46 секунды, и увеличивается с продолжительностью видео (я проверял видео до 2,5 часов, и в конце видео оно было примерно на 6 секунд больше, чем реальное видео)).В этом случае я думаю, что из-за деления я всегда получу значение, которое больше, чем реальное за 1 секунду, - можно установить костыль путем вычитания на 1 в коде.Но это не решает проблему роста времени.
С самого начала это дает мне:
PTS = 132000
Далее я пытаюсь разделить его на 90 кГц:
132000/90000 = 1,466666667 sec
Помогите пожалуйста, что я делаю не так?