HLS缓存反向代理服务器 0.1.0

HLSCachingReverseProxyServer 0.1.0

Suyeol JeonStyleShare维护。



 
依赖项
GCDWebServer~> 3.5
PINCache>= 3.0.1-beta.3
 

  • Suyeol Jeon

HLSCachingReverseProxyServer

Swift CocoaPods Build Status CodeCov

用于HLS分段缓存的简单本地反向代理服务器。

概念

  1. 用户设置反向代理URL而不是原始URL。
    - https://example.com/vod.m3u8
    + http://127.0.0.1:8080/vod.m3u8?__hls_origin_url=https://example.com/vod.m3u8
  2. AVAsset请求本地反向代理服务器的播放列表(.m3u8)。
  3. 反向代理服务器获取原始播放列表,并将所有URI替换为指向本地反向代理服务器。
      #EXTM3U
      #EXTINF:12.000,
    - vod_00001.ts
    + http://127.0.0.1:8080/vod.m3u8?__hls_origin_url=https://example.com/vod_00001.ts
      #EXTINF:12.000,
    - vod_00002.ts
    + http://127.0.0.1:8080/vod.m3u8?__hls_origin_url=https://example.com/vod_00002.ts
      #EXTINF:12.000,
    - vod_00003.ts
    + http://127.0.0.1:8080/vod.m3u8?__hls_origin_url=https://example.com/vod_00003.ts
  4. AVAsset请求分段(.ts)到本地服务器。
  5. 反向代理服务器获取原始分段并缓存。下一次服务器将返回同一分段的缓存数据。

使用

let server = HLSCachingReverseProxyServer()
server.start(port: 8080)

let playlistURL = URL(string: "http://devstreaming.apple.com/videos/wwdc/2016/102w0bsn0ge83qfv7za/102/0640/0640.m3u8")!
let url = server.reverseProxyURL(from: playlistURL)!
let playerItem = AVPlayerItem(url: url)
self.player.replaceCurrentItem(with: playerItem)

依赖项

安装

Podfile

pod 'HLSCachingReverseProxyServer'

开发

$ make project
$ open HLSCachingReverseProxyServer.xcworkspace

许可协议

HLSCachingReverseProxyServer受MIT许可约束。更多信息请参阅许可文件