Sign inSign up

brobrune/rtmp

By brobrune

•Updated about 9 years ago

Nginx + rtmp module

Image
0

362

brobrune/rtmp repository overview

⁠Dockerfile:

FROM debian:stretch-slim

RUN apt-get update && apt-get upgrade -y &&\
    apt-get install ed gcc make zlib1g-dev libssl-dev openssl libpcre3 \
    libpcre3-dev wget git -y && mkdir /tmp/nginx && cd /tmp/nginx && \
    wget http://nginx.org/download/nginx-1.13.4.tar.gz && tar -xzvf nginx-1.13.4.tar.gz && \ 
    git clone https://github.com/arut/nginx-rtmp-module.git && cd ./nginx-1.13.4 && \
    ./configure --prefix=/usr \
                --add-module=../nginx-rtmp-module \
                --pid-path=/var/run/nginx.pid \
                --conf-path=/etc/nginx/nginx.conf \
                --error-log-path=/var/log/nginx/error.log  \
                --http-log-path=/var/log/nginx/access.log --with-http_ssl_module && \
    make && make install && cp /tmp/nginx/nginx-rtmp-module/stat.xsl /etc/nginx/ && mkdir /etc/nginx/conf.d  && \
    rm -rf /tmp/nginx && apt-get -y purge wget git && apt-get -y autoremove && apt-get clean 

ADD ./nginx.conf /etc/nginx/nginx.conf
ADD ./entrypoint.sh /var/www/entrypoint.sh
ADD ./rtmp.conf /etc/nginx/conf.d/rtmp.conf

RUN ln -sf /dev/stdout /var/log/nginx/access.log && \
    ln -sf /dev/stderr /var/log/nginx/error.log && \
    chmod 777 /var/www/entrypoint.sh

WORKDIR /var/www

EXPOSE 1935

ENTRYPOINT ["/var/www/entrypoint.sh"]

⁠entrypoint.sh:

#!/usr/bin/env bash
STR=""
IFS=',' read -ra ADDR <<< "$STREAMS"
for i in "${ADDR[@]}"; do
    STR="$STR push $i;\n"
done

sed -i "13i$STR" /etc/nginx/conf.d/rtmp.conf

nginx -g "daemon off;"

⁠nginx.conf:

worker_processes 1;
 
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
 
events {
  worker_connections 1024;
}

http {
  include /etc/nginx/mime.types;
  default_type application/octet-stream;
 
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  '$status $body_bytes_sent "$http_referer" '
  '"$http_user_agent" "$http_x_forwarded_for"';
 
  access_log /var/log/nginx/access.log main;
  sendfile on;

  #tcp_nopush on;
  keepalive_timeout 65;

  #gzip on;
 
  server {
    listen 80;

    location /stat {
      rtmp_stat all;
      rtmp_stat_stylesheet stat.xsl;
    }
 
    location /stat.xsl {
      root /etc/nginx/;
    }
 
    location / {
      rtmp_control all;
    }
 
    error_page 500 502 503 504 /50x.html;

    location = /50x.html {
      root html;
    }
  }
}

include /etc/nginx/conf.d/rtmp.conf;

⁠rtmp.conf

rtmp {
  access_log /var/log/nginx/rtmp_access.log;

  server {
    listen 1935;
    chunk_size 8192;

    application stream {
      live on;
      meta copy;

      # push rtmp://...
      
    }
  }
}

Tag summary

Content type

Image

Digest

Size

74.7 MB

Last updated

about 9 years ago

docker pull brobrune/rtmp