FAQ
Tuesday, March 31, 2020 5:24 AMМне необходимо чтобы пиринг был доступен на всех доменах третьего уровня, т. е. *.example.com
. Возможно ли это?
Да, это возможно. По умолчанию, Web API ключи полученные в личном кабинете имеют доступ на все поддомены третьего уровня. Так же в целях отладки вы можете запустить Teleport JS SDK на локальной машине (домен localhost
).
Я настроил всё по инструкции, но пиринг не работает. В чём дело?
Проблема может быть в том что плеер получает ссылку на манифест с уникальной информацией в своём составе (ID сессии или временная метка). Либо ссылки на сегменты могут содержать подобную уникальную информацию. Для того чтобы решить эту проблему можно воспользоваться параметром urlCleaner
(описание в документации к API). Это коллбек функция которая указывается в момент инициализации Teleport JS SDK.
К примеру, есть ссылка на сегмент вида https://live.cdn.ru/stream:133529/hls/1523025486/EN1YiLD1wkwT5PiUuSVDFA/live/133529_3/media-uh440gdhf_12275.ts
, тогда инициализация может быть такой:
teleport.initialize({
apiKey: "YOUR_API_KEY",
loader: {
type: "PLUGIN_ID",
params: {
urlCleaner: function (url) {
if (url.indexOf(".m3u8") === -1) {
var pathname = (new URL(url)).pathname;
return pathname.replace(/(\/\d+\/[^\\]+\/live)|(media-\w+_)/g, "");
}
return url;
}
}
}
});
После преобразования этой функцией URL сегмента станет таким: /stream:133529/hls/133529_3/12275.ts
. При написании этой функции нужно сделить за тем чтобы не было удалено информации о ID сегмента, качестве или ID стрима. Эта же функция может помочь в том случае, если у вас несколько CDN серверов на разных доменах.