Я пытаюсь создать сайт с псевдопотоком, на котором есть синхронизированные субтитры для видеофайлов h264, которые обслуживаются через nginx_mod_h264_streaming + JW Player. Субтитры автоматически преобразуются в формат, который может прочитать проигрыватель JW, который представляет собой сценарий PHP, который берет текущее местоположение зрителя в видео и выплевывает XML-подобный файл, который имеет строки субтитров и их начальные + конечные временные метки относительно того, где зритель.
Всякий раз, когда зритель загружает страницу потока, видео автоматически перемещается в нужное место относительно времени начала, сохраненного в базе данных MySQL, и субтитры также перемещаются вперед должным образом. Пользователь ничего этого не видит; он или она просто видит себя в нужном месте видео.
Моя проблема в том, что временные метки субтитров должны быть довольно точными, и что nginx_mod_h264_streaming может искать только ближайший ключевой кадр в видео, который довольно часто смещается на значительный промежуток времени с того места, где следует искать пользователя. У меня сложилось впечатление, что это не проблема, которую действительно можно исправить; вы можете действительно искать ключевой кадр только в том случае, если хотите правильно отображать видео.
Мне интересно вот что: есть ли способ узнать время, в которое на самом деле ищут видео, или, может быть, даже номер ключевого кадра, чтобы я мог, по крайней мере, правильно отображать субтитры? Я не могу найти ничего в документации JW Player, чтобы указать способ сделать это; если другой игрок на это способен, я буду открыт для переключения.
Большое спасибо за помощь!
Я считаю, что для этого можно использовать javascript:
jwplayer("container").getPosition();
Где контейнер - это идентификатор элемента контейнера JWPlayer или без него, если на странице есть только один JW Player:
jwplayer().getPosition();