stream-server/README.md

22 lines
1.4 KiB
Markdown
Raw Normal View History

2023-08-24 14:40:57 +05:00
# stream-server
Extremely basic live stream server
2023-09-23 20:50:07 +05:00
Currently implements a degraded subset of RTMP and SRT for ingest. Encryption for SRT is implemented with AES-CTR with hardcoded passphrase "srttestpass". Only 16-byte keys have been tested, but nothing should stop the implementation from having problems in principle
2023-08-24 14:40:57 +05:00
Uses the std lib http server implementation for the http serving side.
2023-09-23 20:50:07 +05:00
**Not intended for actual use**. The stream key use is not secure and is used to handle directories without a user db system, than to provide auth. Same goes for the SRT passphrase. Also just accepts connections so will get DDOS'd immediately.
2023-08-24 14:40:57 +05:00
2023-09-22 14:58:26 +05:00
Limits to a single stream at a time, mostly for the lack of db to handle connections and user information rather than concurrency problems.
2023-08-24 14:40:57 +05:00
2023-09-22 14:58:26 +05:00
Currently always transcodes to vp9 + opus, segments to fragmented mp4. Creates one segment playlist, no manifest. Uses ffmpeg
2023-08-24 14:40:57 +05:00
2023-09-23 20:50:07 +05:00
HTTP streaming relies on hls-player-js. Will be broken for standard hls players until I figure out how to modify the `EXT-X-MAP:URI` field to prepend a path prefix without changing directories. Or finish the transcoder project
2023-08-24 14:40:57 +05:00
2023-09-22 14:58:26 +05:00
Currently produces no logs nor debug info. Will just abandon a connection if there is a problem. Will not send any RTMP replies since flash server docs seem dead and abort messages are netStream commands.
2023-08-24 14:40:57 +05:00
Ports are hard-coded into main.go. Modify if needed
Run with `go run main.go`. Could also build if you prefer that instead.