Sign inSign up

ocano/streampod_engine

By ocano

•Updated over 4 years ago

RTMP, HLS, DASH video streaming server with adaptive streaming.

Image
2

1.0K

ocano/streampod_engine repository overview

⁠StreamPod Engine

** Dockerized Video streaming engine that supports RTMP, HLS, and DASH streams.**

Docker Automated build Build Status

⁠Description

This Docker image can be used to create a video streaming server that supports RTMP⁠, HLS⁠, DASH⁠ 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.

⁠Features

  • The backend is Nginx⁠ with nginx-rtmp-module⁠.
  • FFmpeg⁠ for transcoding and adaptive streaming.
  • Default settings:
    • RTMP is ON
    • HLS is ON (adaptive, 5 variants)
    • DASH is ON
    • Other Nginx configuration files are also provided to allow for RTMP-only streams or no-FFmpeg transcoding.
  • Statistic page of RTMP streams at http://<server ip>:<server port>/stats.
  • Available web video players (based on video.js⁠ and hls.js⁠) at /usr/local/nginx/html/players.

Current Image is built using:

  • Nginx 1.17.5 (compiled from source)
  • Nginx-rtmp-module 1.2.1 (compiled from source)
  • FFmpeg 4.2.1 (compiled from source)

This image was inspired by similar docker images from tiangolo⁠ and alfg⁠. It has small build size, adds support for HTTP-based streams and adaptive streaming using FFmpeg.

⁠Usage

⁠To run the server
docker run -d -p 1935:1935 -p 8080:8080 ocano/streampod_engine

For Alpine-based Image use:

docker run -d -p 1935:1935 -p 8080:8080 ocano/streampod_engine:latest-alpine

To run with custom conf file:

docker run -d -p 1935:1935 -p 8080:8080 -v custom.conf:/etc/nginx/nginx.conf ocano/streampod_engine

where custom.conf is the new conf file for Nginx.

⁠To stream to the server
  • Stream live RTMP content to:

    rtmp://<server ip>:1935/live/<stream_key>
    

    where <stream_key> is any stream key you specify.

  • Configure OBS⁠ to stream content:
    Go to Settings > Stream, choose the following settings:

    • Service: Custom Streaming Server.
    • Server: rtmp://<server ip>:1935/live.
    • Stream key: anything you want, however provided video players assume stream key is test
⁠To view the stream
  • Using VLC⁠:
    • Go to Media > Open Network Stream.
    • Enter the streaming URL: rtmp://<server ip>:1935/live/<stream-key> Replace <server ip> with the IP of where the server is running, and <stream-key> with the stream key you used when setting up the stream.
    • For HLS and DASH, the URLs are of the forms: http://<server ip>:8080/hls/<stream-key>.m3u8 and http://<server ip>:8080/dash/<stream-key>_src.mpd respectively.
    • Click Play.

Released under MIT license.

⁠Credits

⁠More info

Tag summary

Content type

Image

Digest

Size

66 MB

Last updated

over 4 years ago

docker pull ocano/streampod_engine