# Owncast — Self-Hosted Live Streaming Server > An open source, self-hosted, decentralized live video streaming and chat server that gives you full control over your broadcasts. ## Install Save in your project root: # Owncast — Self-Hosted Live Streaming Server ## Quick Use ```bash # Quick install script curl -s https://owncast.online/install.sh | bash # Or run with Docker docker run -d --name owncast -p 8080:8080 -p 1935:1935 -v owncast-data:/app/data owncast/owncast:latest # Point OBS or any RTMP client to: # rtmp://your-server:1935/live # Stream key: abc123 (change in admin) # View at http://your-server:8080 ``` ## Introduction Owncast is a self-hosted live streaming server that provides video broadcasting and built-in chat in a single binary. It accepts RTMP input from standard streaming software like OBS, transcodes the video into multiple quality levels using FFmpeg, and serves it to viewers via HLS. You own the infrastructure, the content, and the audience relationship. ## What Owncast Does - Accepts RTMP streams from OBS, Streamlabs, and other broadcasting software - Transcodes to multiple HLS quality variants for adaptive bitrate playback - Provides a built-in live chat with moderation tools and custom emotes - Federates with the Fediverse (Mastodon, Pixelfed) so followers get stream notifications - Offers a web admin panel for stream configuration, chat management, and analytics ## Architecture Overview Owncast is a single Go binary that embeds an RTMP ingest server, an FFmpeg transcoding pipeline, an HLS segment server, a chat system backed by SQLite, and a React-based frontend. When a stream starts, the RTMP input is piped to FFmpeg processes that produce HLS segments at configured quality levels. Viewers connect via the built-in web player or any HLS-compatible client. The chat system uses WebSockets for real-time messaging and stores history in the embedded database. ## Self-Hosting & Configuration - Run the single binary or Docker container on any Linux server - Configure video output quality variants in the admin panel (resolution, bitrate, codec) - Set your stream key and server name through the web-based admin at `/admin` - Point a domain with TLS (via Caddy or Nginx) for HTTPS viewer access - Adjust S3-compatible storage for offloading HLS segments if needed ## Key Features - Single binary deployment with zero external dependencies - Adaptive bitrate streaming serves viewers on slow and fast connections alike - Built-in chat supports custom emotes, slow mode, and user banning - ActivityPub integration lets Fediverse followers see when you go live - Embeddable player and chat widgets for integrating streams into other websites ## Comparison with Similar Tools - **PeerTube** — federated video platform focused on on-demand content, not live streaming - **Restream** — cloud service that multicasts to platforms but you don't own the infrastructure - **Nginx-RTMP** — raw RTMP/HLS module without built-in chat, admin UI, or transcoding management - **AVideo (AVideo Platform)** — broader video CMS with live and VOD but more complex to deploy ## FAQ **Q: What hardware do I need for transcoding?** A: A 4-core CPU handles one or two output quality variants. Hardware encoding (NVIDIA NVENC, VA-API) significantly reduces CPU load for multiple variants. **Q: Can viewers watch without an account?** A: Yes. The stream page is public by default. Chat can optionally require authentication. **Q: Does Owncast support recording streams?** A: Not natively, but you can configure FFmpeg to save the input stream to disk, or use OBS's local recording feature alongside streaming. **Q: How many concurrent viewers can it handle?** A: Bandwidth is the main limit. A server with 1 Gbps can serve hundreds of viewers at typical bitrates. Use a CDN or S3 storage for larger audiences. ## Sources - https://github.com/owncast/owncast - https://owncast.online/docs/ --- Source: https://tokrepo.com/en/workflows/3fc500bf-3e48-11f1-9bc6-00163e2b0d79 Author: AI Open Source