{"id":15192051,"url":"https://github.com/davetacker/rtmp-server","last_synced_at":"2026-03-02T22:06:49.702Z","repository":{"id":252453169,"uuid":"813256214","full_name":"DaveTacker/rtmp-server","owner":"DaveTacker","description":"Docker image for video streaming server that supports RTMP, RTMPS, HLS, and DASH streams.","archived":false,"fork":false,"pushed_at":"2024-07-11T20:16:37.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-11T02:18:06.715Z","etag":null,"topics":["docker","dockercompose","nginx","rtmp-server","rtmp-stream","rtmps","stunnel"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/kneeki/rtmp-server","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DaveTacker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-10T19:19:09.000Z","updated_at":"2024-07-11T20:30:45.000Z","dependencies_parsed_at":"2024-08-11T01:45:25.996Z","dependency_job_id":null,"html_url":"https://github.com/DaveTacker/rtmp-server","commit_stats":null,"previous_names":["davetacker/rtmp-server"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DaveTacker%2Frtmp-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DaveTacker%2Frtmp-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DaveTacker%2Frtmp-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DaveTacker%2Frtmp-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DaveTacker","download_url":"https://codeload.github.com/DaveTacker/rtmp-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241110792,"owners_count":19911397,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","dockercompose","nginx","rtmp-server","rtmp-stream","rtmps","stunnel"],"created_at":"2024-09-27T21:04:08.611Z","updated_at":"2026-03-02T22:06:49.639Z","avatar_url":"https://github.com/DaveTacker.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RTMP-HLS Server using NGINX\n\nDocker image for video streaming server that supports RTMP, RTMPS, HLS, and DASH streams.\n\n## Description\n\nThis Docker image can be used to create a video streaming server that supports [**RTMP**](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol), [**HLS**](https://en.wikipedia.org/wiki/HTTP_Live_Streaming), [**DASH**](https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP) out of the box. It also allows adaptive streaming and custom transcoding of video streams. All modules are built from source on Debian and Alpine Linux base images.\n\nCurrent Image is built using:\n * Nginx 1.19.0 (compiled from source)\n * Nginx-rtmp-module 1.2.1 (compiled from source)\n * FFmpeg (compiled from source)\n * Stunnel (installed from apt)\n\nThis image was inspired by similar docker images from [tiangolo](https://hub.docker.com/r/tiangolo/nginx-rtmp/) and [alfg](https://hub.docker.com/r/alfg/nginx-rtmp/). It has small build size, adds support for HTTP-based streams and adaptive streaming using FFmpeg.\n\n## Features\n * The backend is [**Nginx**](http://nginx.org/en/) with [**nginx-rtmp-module**](https://github.com/arut/nginx-rtmp-module).\n * [**FFmpeg**](https://www.ffmpeg.org/) for transcoding and adaptive streaming.\n * [**Stunnel**](https://www.stunnel.org/) for secure RTMP (RTMPS) support.\n * Default settings:\n\t* ✅ RTMP\n\t* ✅ HLS (adaptive, 5 variants)\n\t* ✅ DASH\n\t* Other Nginx configuration files are also provided to allow for RTMP-only streams or no-FFmpeg transcoding.\n * Statistic page of RTMP streams at `http://\u003cserver ip\u003e:\u003cserver port\u003e/stats`.\n * Available web video players (based on [video.js](https://videojs.com/) and [hls.js](https://github.com/video-dev/hls.js/)) at `/usr/local/nginx/html/players`.\n\n## Tips\n\nFor your development convienence a devcontainer was provided utilizing [Ubuntu-22.04 (Jammy)](https://github.com/microsoft/vscode-dev-containers/blob/main/containers/ubuntu/README.md).\n\nUse Docker Compose to build and run the container with the following command:\n```\ndocker-compose up -d\n```\n\n\n## Usage\n\n### To run the server\n```\ndocker run -d -p 1935:1935 -p 8080 kneeki/rtmp-server\n```\n\nTo run with custom conf file where `custom.conf` is the new conf file for Nginx:\n```\ndocker run -d -p 1935:1935 -p 8080 -v custom.conf:/etc/nginx/nginx.conf kneeki/rtmp-server\n```\n\n### To stream to the server\n * **Stream live RTMP content to:**\n\t```\n\trtmp://\u003cserver ip\u003e:1935/live/\u003cstream_key\u003e\n\t```\n\twhere `\u003cstream_key\u003e` is any stream key you specify.\n\n * **Configure [OBS](https://obsproject.com/) to stream content:** \u003cbr /\u003e\nGo to Settings \u003e Stream, choose the following settings:\n   * Service: Custom Streaming Server.\n   * Server: `rtmp://\u003cserver ip\u003e:1935/live`.\n   * Stream key: anything you want, however provided video players assume stream key is `test`\n\n### To view the stream\n * **Using [VLC](https://www.videolan.org/vlc/index.html):**\n\t * Go to Media \u003e Open Network Stream.\n\t * Enter the streaming URL: `rtmp://\u003cserver ip\u003e:1935/live/\u003cstream-key\u003e`\n\t   Replace `\u003cserver ip\u003e` with the IP of where the server is running, and\n\t   `\u003cstream-key\u003e` with the stream key you used when setting up the stream.\n\t * For HLS and DASH, the URLs are of the forms:\n\t `http://\u003cserver ip\u003e/hls/\u003cstream-key\u003e.m3u8` and\n\t `http://\u003cserver ip\u003e/dash/\u003cstream-key\u003e_src.mpd` respectively.\n\t * Click Play.\n\n* **Using provided web players:** \u003cbr/\u003e\nThe provided demo players (`http://localhost/players`) assume the stream-key is called `test` and the player is opened in localhost.\n\t* To play RTMP content (requires Flash): `http://localhost/players/rtmp.html`\n\t* To play HLS content: `http://localhost/players/hls.html`\n\t* To play HLS content using hls.js library: `http://localhost/players/hlsjs.html`\n\t* To play DASH content: `http://localhost/players/dash.html`\n\t* To play RTMP and HLS contents on the same page: `http://localhost/players/rtmp_hls.html`\n\n\t**Notes:**\n\n\t* These web players are hardcoded to play stream key \"test\" at localhost.\n\t* To change the stream source for these players. Download the html files and modify the `src` attribute in the video tag in the html file. You can then mount the modified files to the container as follows:\n\t\t```\n\t\tdocker run -d -p 1935:1935 -p 8080 -v custom_players:/usr/local/nginx/html/players kneeki/rtmp-server\n\t\t```\n\t\twhere `custom_players` is the directory holding the modified html files.\n\n## Copyright\nReleased under MIT license.\n\n## More info\n* **GitHub repo**: \u003chttps://github.com/DaveTacker/rtmp-server.git\u003e\n* **Docker Hub image**: \u003chttps://hub.docker.com/r/kneeki/rtmp-server\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavetacker%2Frtmp-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavetacker%2Frtmp-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavetacker%2Frtmp-server/lists"}