Tip: HLS is required (index.m3u8). On iOS Safari the native player is used; on desktop Hls.js is used.
Player state
Idle
Resolution
-
Bitrate
-
Buffered ahead
-
Dropped / Total frames
-
Stream health log
Auto-updates with manifest loads, errors, and Picture-in-Picture.
Viewer chat (shared)
Connect to a WebSocket relay so every viewer can post with their name. Falls back to local preview if not connected.
Local only
Auto-connects to the stream server chat. Change for custom backend.
Keeps separate chats for multiple events.
Step-by-step
Go live from your GoPro + iPhone
Everything you need to stream into the player at the bottom of the page.
- Prep ingest: On your RTMP ingest (Nginx-RTMP), enable HLS at
https://YOUR_DOMAIN/hls/<stream_key>.m3u8. - Point the GoPro: In GoPro Quik on iPhone → Live → RTMP → Custom, enter
rtmp://<SERVER_IP>/live/<stream_key>(or your path). - Start the feed: Go live from the GoPro and wait a few HLS fragments.
- Load the player: Paste the HLS URL above, click Start Stream, and share the page. If the feed stops, hit Stop / Unload then start again.
- Add chat: Start the included chat relay (or your own), paste its WebSocket URL, and click Connect so viewers can post with their name.