Skip to content

Commit

Permalink
ADD v0.1.0-rc.7
Browse files Browse the repository at this point in the history
  • Loading branch information
Jan Stabenow committed Mar 25, 2016
1 parent 74bfafb commit 22a7c6f
Show file tree
Hide file tree
Showing 41 changed files with 739 additions and 561 deletions.
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
## Changes from 0.1.0-RC6.1 to 0.1.0-rc.7

* security improvements
* FFmpeg and NGINX optimizations
* fixed update check
* added semantic versioning
* several small bugfixes and improvements
* updated dependencies
* added Aarch64 Docker image and reduced Docker layers

## Changes from 0.1.0-RC6 to 0.1.0-RC6.1

* fixed external streaming with RTSP over TCP input option
Expand Down
64 changes: 32 additions & 32 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
FROM node:5.7.1-slim
FROM node:5.9.0-slim

MAINTAINER datarhei <[email protected]>

ENV FFMPEG_VERSION 2.8.6
ENV YASM_VERSION 1.3.0
ENV LAME_VERSION 3_99_5
ENV NGINX_VERSION 1.9.9
ENV NGINX_RTMP_VERSION 1.1.7.10
ENV FFMPEG_VERSION=2.8.6 \
YASM_VERSION=1.3.0 \
LAME_VERSION=3_99_5 \
NGINX_VERSION=1.9.9 \
NGINX_RTMP_VERSION=1.1.7.10 \

ENV SRC "/usr/local"
ENV LD_LIBRARY_PATH "${SRC}/lib"
ENV PKG_CONFIG_PATH "${SRC}/lib/pkgconfig"
SRC="/usr/local" \
LD_LIBRARY_PATH="${SRC}/lib" \
PKG_CONFIG_PATH="${SRC}/lib/pkgconfig" \

ENV BUILDDEPS "autoconf automake gcc g++ libtool make nasm zlib1g-dev libssl-dev xz-utils cmake build-essential libpcre3-dev"
BUILDDEPS="autoconf automake gcc g++ libtool make nasm zlib1g-dev libssl-dev xz-utils cmake build-essential libpcre3-dev"

RUN rm -rf /var/lib/apt/lists/* && \
apt-get update && \
apt-get install -y --force-yes curl git libpcre3 tar perl ca-certificates ${BUILDDEPS}
apt-get install -y --force-yes curl git libpcre3 tar perl ca-certificates ${BUILDDEPS} && \

# yasm
RUN DIR="$(mktemp -d)" && cd "${DIR}" && \
# yasm
DIR="$(mktemp -d)" && cd "${DIR}" && \
curl -LOks "https://www.tortall.net/projects/yasm/releases/yasm-${YASM_VERSION}.tar.gz" && \
tar xzvf "yasm-${YASM_VERSION}.tar.gz" && \
cd "yasm-${YASM_VERSION}" && \
Expand All @@ -29,10 +29,10 @@ RUN DIR="$(mktemp -d)" && cd "${DIR}" && \
make -j"$(nproc)" && \
make install && \
make distclean && \
rm -rf "${DIR}"
rm -rf "${DIR}" && \

# x264
RUN DIR="$(mktemp -d)" && cd "${DIR}" && \
# x264
DIR="$(mktemp -d)" && cd "${DIR}" && \
git clone --depth 1 "git://git.videolan.org/x264" && \
cd x264 && \
./configure \
Expand All @@ -43,10 +43,10 @@ RUN DIR="$(mktemp -d)" && cd "${DIR}" && \
make -j"$(nproc)" && \
make install && \
make distclean && \
rm -rf "${DIR}"
rm -rf "${DIR}" && \

# libmp3lame
RUN DIR="$(mktemp -d)" && cd "${DIR}" && \
# libmp3lame
DIR="$(mktemp -d)" && cd "${DIR}" && \
curl -LOks "https://github.com/rbrito/lame/archive/RELEASE__${LAME_VERSION}.tar.gz" && \
tar xzvf "RELEASE__${LAME_VERSION}.tar.gz" && \
cd "lame-RELEASE__${LAME_VERSION}" && \
Expand All @@ -58,11 +58,11 @@ RUN DIR="$(mktemp -d)" && cd "${DIR}" && \
make -j"$(nproc)" && \
make install && \
make distclean && \
rm -rf "${DIR}"
rm -rf "${DIR}" && \

# ffmpeg
# patch: andrew-shulgin Ignore invalid sprop-parameter-sets missing PPS
RUN DIR="$(mktemp -d)" && cd "${DIR}" && \
# ffmpeg
# patch: andrew-shulgin Ignore invalid sprop-parameter-sets missing PPS
DIR="$(mktemp -d)" && cd "${DIR}" && \
curl -LOks "https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz" && \
tar xzvf "ffmpeg-${FFMPEG_VERSION}.tar.gz" && \
cd "ffmpeg-${FFMPEG_VERSION}" && \
Expand Down Expand Up @@ -92,12 +92,12 @@ RUN DIR="$(mktemp -d)" && cd "${DIR}" && \
cd tools && \
make qt-faststart && \
cp qt-faststart "${SRC}/bin" && \
rm -rf "${DIR}"
RUN echo "${SRC}/lib" > "/etc/ld.so.conf.d/libc.conf"
RUN ffmpeg -buildconf
rm -rf "${DIR}" && \
echo "${SRC}/lib" > "/etc/ld.so.conf.d/libc.conf" && \
ffmpeg -buildconf && \

# nginx-rtmp
RUN DIR="$(mktemp -d)" && cd "${DIR}" && \
# nginx-rtmp
DIR="$(mktemp -d)" && cd "${DIR}" && \
curl -LOks "https://github.com/nginx/nginx/archive/release-${NGINX_VERSION}.tar.gz" && \
tar xzvf "release-${NGINX_VERSION}.tar.gz" && \
curl -LOks "https://github.com/sergey-dryabzhinsky/nginx-rtmp-module/archive/v${NGINX_RTMP_VERSION}.tar.gz" && \
Expand All @@ -108,9 +108,9 @@ RUN DIR="$(mktemp -d)" && cd "${DIR}" && \
--add-module="../nginx-rtmp-module-${NGINX_RTMP_VERSION}" && \
make -j"$(nproc)" && \
make install && \
rm -rf "${DIR}"
rm -rf "${DIR}" && \

RUN apt-get purge -y --auto-remove ${BUILDDEPS} && \
apt-get purge -y --auto-remove ${BUILDDEPS} && \
rm -rf /tmp/*

COPY . /restreamer
Expand All @@ -123,8 +123,8 @@ RUN npm install -g bower grunt grunt-cli nodemon public-ip eslint && \
npm cache clean && \
bower cache clean --allow-root

ENV RS_USERNAME admin
ENV RS_PASSWORD datarhei
ENV RS_USERNAME admin \
RS_PASSWORD datarhei

EXPOSE 8080
VOLUME ["/restreamer/db"]
Expand Down
149 changes: 149 additions & 0 deletions Dockerfile_aarch64
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
FROM aarch64/debian:jessie

MAINTAINER datarhei <[email protected]>

ENV NODE_VERSION=5.9.0 \
NPM_VERSION=3.7.3 \

FFMPEG_VERSION=2.8.6 \
YASM_VERSION=1.3.0 \
LAME_VERSION=3_99_5 \
NGINX_VERSION=1.9.9 \
NGINX_RTMP_VERSION=1.1.7.10 \

SRC="/usr/local" \
LD_LIBRARY_PATH="${SRC}/lib" \
PKG_CONFIG_PATH="${SRC}/lib/pkgconfig" \

BUILDDEPS="autoconf automake gcc g++ libtool make nasm zlib1g-dev libssl-dev xz-utils cmake build-essential libpcre3-dev"

RUN rm -rf /var/lib/apt/lists/* && \
apt-get update && \
apt-get install -y --force-yes curl git libpcre3 tar perl ca-certificates ${BUILDDEPS} && \

# node
DIR="$(mktemp -d)" && cd "${DIR}" && \
set -x && \
curl -LOks "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-arm64.tar.gz" && \
tar xzvf "node-v${NODE_VERSION}-linux-arm64.tar.gz" \
-C "${SRC}" \
--strip-components=1 && \
npm install -g "npm@${NPM_VERSION}" --unsafe-perm && \
npm cache clear && \
npm config set unsafe-perm true -g --unsafe-perm && \
rm -rf "${DIR}" && \

# yasm
DIR="$(mktemp -d)" && cd "${DIR}" && \
curl -LOks "https://www.tortall.net/projects/yasm/releases/yasm-${YASM_VERSION}.tar.gz" && \
tar xzvf "yasm-${YASM_VERSION}.tar.gz" && \
cd "yasm-${YASM_VERSION}" && \
cp /usr/share/automake-1.14/config.guess config.guess && \
./configure \
--prefix="${SRC}" \
--bindir="${SRC}/bin" && \
make -j"$(nproc)" && \
make install && \
make distclean && \
rm -rf "${DIR}" && \

# x264
DIR="$(mktemp -d)" && cd "${DIR}" && \
git clone --depth 1 "git://git.videolan.org/x264" && \
cd x264 && \
./configure \
--prefix="${SRC}" \
--bindir="${SRC}/bin" \
--enable-static \
--disable-cli && \
make -j"$(nproc)" && \
make install && \
make distclean && \
rm -rf "${DIR}" && \

# libmp3lame
DIR="$(mktemp -d)" && cd "${DIR}" && \
curl -LOks "https://github.com/rbrito/lame/archive/RELEASE__${LAME_VERSION}.tar.gz" && \
tar xzvf "RELEASE__${LAME_VERSION}.tar.gz" && \
cd "lame-RELEASE__${LAME_VERSION}" && \
cp /usr/share/automake-1.14/config.guess config.guess && \
./configure \
--prefix="${SRC}" \
--bindir="${SRC}/bin" \
--enable-nasm \
--disable-shared && \
make -j"$(nproc)" && \
make install && \
make distclean && \
rm -rf "${DIR}" && \

# ffmpeg
# patch: andrew-shulgin Ignore invalid sprop-parameter-sets missing PPS
DIR="$(mktemp -d)" && cd "${DIR}" && \
curl -LOks "https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz" && \
tar xzvf "ffmpeg-${FFMPEG_VERSION}.tar.gz" && \
cd "ffmpeg-${FFMPEG_VERSION}" && \
curl -Lks "https://github.com/FFmpeg/FFmpeg/commit/1c7e2cf9d33968375ee4025d2279c937e147dae2.patch" | patch -p1 && \
./configure \
--prefix="${SRC}" \
--bindir="${SRC}/bin" \
--extra-cflags="-I${SRC}/include" \
--extra-ldflags="-L${SRC}/lib" \
--extra-libs=-ldl \
--enable-nonfree \
--enable-gpl \
--enable-version3 \
--enable-avresample \
--enable-libmp3lame \
--enable-libx264 \
--enable-openssl \
--enable-postproc \
--enable-small \
--disable-debug \
--disable-doc \
--disable-ffserver && \
make -j"$(nproc)" && \
make install && \
make distclean && \
hash -r && \
cd tools && \
make qt-faststart && \
cp qt-faststart "${SRC}/bin" && \
rm -rf "${DIR}" && \
echo "${SRC}/lib" > "/etc/ld.so.conf.d/libc.conf" && \
ffmpeg -buildconf && \

# nginx-rtmp
DIR="$(mktemp -d)" && cd "${DIR}" && \
curl -LOks "https://github.com/nginx/nginx/archive/release-${NGINX_VERSION}.tar.gz" && \
tar xzvf "release-${NGINX_VERSION}.tar.gz" && \
curl -LOks "https://github.com/sergey-dryabzhinsky/nginx-rtmp-module/archive/v${NGINX_RTMP_VERSION}.tar.gz" && \
tar xzvf "v${NGINX_RTMP_VERSION}.tar.gz" && \
cd "nginx-release-${NGINX_VERSION}" && \
auto/configure \
--with-http_ssl_module \
--add-module="../nginx-rtmp-module-${NGINX_RTMP_VERSION}" && \
make -j"$(nproc)" && \
make install && \
rm -rf "${DIR}" && \

apt-get purge -y --auto-remove ${BUILDDEPS} && \
rm -rf /tmp/*

COPY . /restreamer
WORKDIR /restreamer

RUN npm install -g bower grunt grunt-cli nodemon public-ip && \
npm install && \
grunt build && \
npm prune --production && \
npm cache clean && \
bower cache clean --allow-root

ENV RS_USERNAME=admin \
RS_PASSWORD=datarhei

EXPOSE 8080
VOLUME ["/restreamer/db"]

CMD ["./run.sh"]
Loading

0 comments on commit 22a7c6f

Please sign in to comment.