2016-09-22 11 views
1

Я разрабатываю приложение IOS, которая способна загрузить m3u8 видео и играть форума по iOS 10 последней функции Offline HLS.HLS с маркером CDN - IOS

Я стараюсь как можно лучше защитить файлы HTTP Live Stream на нашем CDN.

Каждое видео имеет несколько битрейтов, поэтому файлы HLS состоят из манифеста мастера m3u8, который указывает на несколько файлов суб-манифеста, которые, в свою очередь, указывают на файлы (транспортный поток).

Поэтому мне нужно добавить этот токен CDN к URL-адресам master m3u8, sub манифест m3u8 и .ts файлов. Токен будет действителен в течение 60 секунд, поэтому он должен обновиться, и текущий токен должен быть добавлен с URL-адресом.

Как это сделать?

Я пробовал это, но его добавлял только мастер m3u8.

Мой код:

var components = URLComponents(string: playUrl) 
    let token = URLQueryItem(name: "token", value: CDNTokenManager.getCDNToken()) 
    components?.queryItems = [token] 
    let url = components?.url 
    let asset = AVURLAsset(url: url!) 
    let downloadTask = downloadURLSession.makeAssetDownloadTask(asset: asset, 
                  assetTitle: "title", 
                  assetArtworkData: nil, 
                  options: nil) 
    downloadTask?.resume() 

ответ

0

Насколько я знаю, IOS ничего не изменять URL в m3u8 файлы предлагают. Он будет получать их без каких-либо изменений. Поэтому я не думаю, что вы можете решить это полностью на стороне клиента.

В дополнение к вашему коду на стороне клиента вам также потребуется реализовать веб-приложение на стороне сервера, которое генерирует файлы m3u8 по запросу и добавляет токен CDN.

Например, клиент iOS запрашивает главный файл по адресу https://cdn.com/master/fk29x8.m3u8?token=12345, веб-приложение динамически генерирует файл, содержащий URL-адреса, такие как https://cdn.com/sub/fk29x8-1280x720-1823.m3u8?token=12345. Этот URL снова обслуживается веб-приложением и содержит URL-адреса, такие как https://cdn.com/stream/fk29x8-1280x720-1823/mp4-123.ts?token=12345.

Таким образом, задача веб-приложения заключается в том, чтобы прочитать файл шаблона и заменить значение токена на значение, указанное в запрошенном URL-адресе.

+0

Токен необходимо обновить для средств безопасности. Итак, как это будет работать? – Dev

+0

Есть ли способ отслеживать URL-запросы и изменять их, вставляя токен на стороне клиента? – Dev

+0

Я слышал о решениях, где приложение дополнительно работает как прокси-сервер HTTP. Затем прокси-сервер может модифицировать ответы. Я не могу сказать, возможно ли это на iOS и как это будет сделано. – Codo

 Смежные вопросы

  • Нет связанных вопросов^_^