Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jdkula/HLSStreamer
iOS app that allows you to stream your screen over HLS, no external server necessary
https://github.com/jdkula/HLSStreamer
Last synced: 9 days ago
JSON representation
iOS app that allows you to stream your screen over HLS, no external server necessary
- Host: GitHub
- URL: https://github.com/jdkula/HLSStreamer
- Owner: jdkula
- Created: 2022-11-01T07:39:37.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2022-11-04T11:39:04.000Z (about 2 years ago)
- Last Synced: 2024-08-01T13:38:41.602Z (3 months ago)
- Language: Swift
- Size: 1.6 MB
- Stars: 11
- Watchers: 1
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# HLSStreamer
iOS app that allows you to stream your screen over HLS, no external server or desktop-side applications necessary.## Building
Clone the repo and open `HLSStreamer.xcodeproj` in Xcode. It will run on iOS devices running iOS/iPadOS 15 or later.
## Usage
While streaming to the app, your iDevice will host a server by default at port `8888`, providing the following endpoints:
- `/`: A simple webpage with a Video.js player that will play back the livestream. This is suitable for use in OBS.
- `/orientation`: Will return the string `up`, `down`, `left`, or `right` depending on the orientation of your iDevice.
If your iDevice is right-side-up, it will be `up`.
- `/index.m3u8`: The HLS stream playlist. You can open this in VLC or embed it elsewhere and it will play correctly.
- `/video/:file`: The video segments themselvesThe UI provides a couple options:
- `Port`: You can adjust what port the server runs on.
- `Segment Duration`: The higher this is, the more reliable the stream, but the longer the delay.
- `Video Bitrate (Mbps)`: The higher this is, the higher quality the streams but the higher the bandwidth
they use. In my testing, adjusting this hasn't seemed to do much.Files are stored in your iDevice's temporary storage and deleted when they leave the HLS sliding window (see below).
They are also cleared when you stop streaming.## Details
Generates an HLS stream in fMP4 fragments (`header.mp4` and `\(sequenceNumber).m4s`) that are served from the
iDevice in a sliding window lasting approx. 60 seconds. System audio and video are captured, but the user
microphone is not (even if that option is selected while attempting to broadcast to `HLSStreamer`.## Demo
Recorded on Chrome, streaming from iPad (stream delay of approx. 5 seconds)
https://user-images.githubusercontent.com/4166625/199675929-ec517b69-efc2-45b9-89e0-a85d95f286e7.mp4
## Attributions
The HTTP server is provided by [Swifter](https://github.com/httpswift/swifter)