All Projects → StyleShare → HLSCachingReverseProxyServer

StyleShare / HLSCachingReverseProxyServer

Licence: MIT license
A simple local reverse proxy server for HLS segment cache

Programming Languages

swift
15916 projects
ruby
36898 projects - #4 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to HLSCachingReverseProxyServer

mock-hls-server
Fake a live/event HLS stream from a VOD one. Useful for testing. Supports looping.
Stars: ✭ 61 (-38.38%)
Mutual labels:  segment, hls
shaka-player-react
A simple React component wrapper for shaka-player
Stars: ✭ 79 (-20.2%)
Mutual labels:  hls
terraform-provider-segment
A Terraform provider for Segment
Stars: ✭ 29 (-70.71%)
Mutual labels:  segment
Android-hls
最近公司产品需要,调研hls(m3u8) aes-128 解密播放 . 分析 51Cto, 慕课
Stars: ✭ 73 (-26.26%)
Mutual labels:  hls
analytics.js-integrations
Monorepo housing Segment's analytics.js integrations
Stars: ✭ 107 (+8.08%)
Mutual labels:  segment
demuxer
A tool for demux ts/mp4/flv by typescript. Support HEVC/AVC/AAC codec
Stars: ✭ 108 (+9.09%)
Mutual labels:  hls
webcam-stream
Webcam HLS streaming tutorial with raspberry pi
Stars: ✭ 25 (-74.75%)
Mutual labels:  hls
docker-wyze-bridge
RTMP/RTSP/LL-HLS bridge for Wyze cams in a docker container
Stars: ✭ 1,146 (+1057.58%)
Mutual labels:  hls
colorsys-go
🎃 colorsys-go is a go package(or lib) for everyone to transform one color system to another. The transformation is among RGB, YIQ, HLS and HSV.
Stars: ✭ 75 (-24.24%)
Mutual labels:  hls
streamer
Go Package built around spinning up streaming processes
Stars: ✭ 37 (-62.63%)
Mutual labels:  hls
hls-downloader
Download all video files from HLS (HTTP Live Streaming) VoD (Video on Demand) m3u8 playlist for local playback
Stars: ✭ 121 (+22.22%)
Mutual labels:  hls
react-native-segment-control
Swipeable SegmentedControl component for React Native apps
Stars: ✭ 21 (-78.79%)
Mutual labels:  segment
megacubo
A intuitive, multi-language and cross-platform IPTV player. Available for Windows, Android, Linux & macOS.
Stars: ✭ 134 (+35.35%)
Mutual labels:  hls
hlswatch
keep track of hls viewer stats
Stars: ✭ 44 (-55.56%)
Mutual labels:  hls
Trackie
A Chrome extension to enhance debugging of some frequently-used tag management platforms (Google Tag Manager, Tealium, Commanders Act, DTM) in combination with some frequently-used tags (Google Analytics, Google Analytics 4, GA Audiences, Ddm, Criteo, Adobe Analytics/Omniture, Floodlight, Comscore, Facebook, Bluekai, Youbora, Kinesis, Webtrekk, …
Stars: ✭ 23 (-76.77%)
Mutual labels:  segment
alpine-dash-hls
A ready-prepared video transcoding pipeline to create DASH/ HLS compatible video files & playlists
Stars: ✭ 43 (-56.57%)
Mutual labels:  hls
Radium
Synced stream and video playback with VOD capabilities utilizing HLS. Developed for movie nights but has many use cases.
Stars: ✭ 172 (+73.74%)
Mutual labels:  hls
hms-video-demo-android
HUAWEI Video Kit supports streaming media in 3GP, MP4, or TS format and compliant with HTTP/HTTPS, HLS, or DASH. The Kit also provides abundant playback controls, delivering personalized video experiences to users.
Stars: ✭ 22 (-77.78%)
Mutual labels:  hls
morsel
📇 Swift library for creating HLS playlists and fragmented mp4 files. Works on Linux and iOS.
Stars: ✭ 26 (-73.74%)
Mutual labels:  hls
wyzecam-hls
Converts MP4 files from WyzeCam NFS to HLS stream. Much more stable alternative to RTSP firmware.
Stars: ✭ 58 (-41.41%)
Mutual labels:  hls

HLSCachingReverseProxyServer

Swift CocoaPods Build Status CodeCov

A simple local reverse proxy server for HLS segment cache.

How it works

HLSCachingReverseProxyServer Concept

  1. User sets a reverse proxy url to the AVPlayer instead of the origin url.
    - https://example.com/vod.m3u8
    + http://127.0.0.1:8080/vod.m3u8?__hls_origin_url=https://example.com/vod.m3u8
  2. AVPlayer requests a playlist(.m3u8) to the local reverse proxy server.
  3. Reverse proxy server fetches the origin playlist and replaces all URIs to point the localhost.
      #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. AVPlayer requests segments(.ts) to the local reverse proxy server.
  5. Reverse proxy server fetches the origin segment and caches it. Next time the server will return the cached data for the same segment.

Usage

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

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

Dependencies

Installation

Use CocoaPods with Podfile:

pod 'HLSCachingReverseProxyServer'

Development

$ make project
$ open HLSCachingReverseProxyServer.xcworkspace

License

HLSCachingReverseProxyServer is under MIT license. See the LICENSE for more info.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].