ADD 0.1.0-RC1
20
.csslintrc
Executable file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"adjoining-classes": false,
|
||||
"box-sizing": false,
|
||||
"box-model": false,
|
||||
"compatible-vendor-prefixes": false,
|
||||
"floats": false,
|
||||
"font-sizes": false,
|
||||
"gradients": false,
|
||||
"important": false,
|
||||
"known-properties": false,
|
||||
"outline-none": false,
|
||||
"qualified-headings": false,
|
||||
"regex-selectors": false,
|
||||
"shorthand": false,
|
||||
"text-indent": false,
|
||||
"unique-headings": false,
|
||||
"universal-selector": false,
|
||||
"unqualified-attributes": false,
|
||||
"zero-units": false
|
||||
}
|
||||
13
.dockerignore
Normal file
@@ -0,0 +1,13 @@
|
||||
# ignore dockerfiles
|
||||
.dockerignore
|
||||
Dockerfile
|
||||
Dockerfile_armv6l
|
||||
Dockerfile_armv7l
|
||||
.git
|
||||
.editorconfig
|
||||
.gitignore
|
||||
docs
|
||||
node_modules
|
||||
bin
|
||||
db
|
||||
src/webserver/public/lib/*
|
||||
15
.editorconfig
Normal file
@@ -0,0 +1,15 @@
|
||||
# For more information about the properties used in
|
||||
# this file, please see the EditorConfig documentation:
|
||||
# http://editorconfig.org/
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
indent_size = 4
|
||||
indent_style = space
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
68
.gitignore
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
# Compiled source #
|
||||
###################
|
||||
*.com
|
||||
*.class
|
||||
*.dll
|
||||
*.exe
|
||||
*.o
|
||||
*.so
|
||||
|
||||
# Packages #
|
||||
############
|
||||
# it's better to unpack these files and commit the raw source
|
||||
# git has its own built in compression methods
|
||||
*.7z
|
||||
*.dmg
|
||||
*.gz
|
||||
*.iso
|
||||
*.jar
|
||||
*.rar
|
||||
*.tar
|
||||
*.zip
|
||||
|
||||
# Logs and databases #
|
||||
######################
|
||||
logs
|
||||
build/logs
|
||||
*.log
|
||||
*.sql
|
||||
*.sqlite
|
||||
|
||||
# OS generated files #
|
||||
######################
|
||||
.DS_Store
|
||||
.DS_Store?
|
||||
._*
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
|
||||
# IDE / Editor files #
|
||||
######################
|
||||
.idea
|
||||
.settings
|
||||
nbproject
|
||||
|
||||
# Grunt #
|
||||
#########
|
||||
.grunt
|
||||
|
||||
# Vagrant / Docker #
|
||||
####################
|
||||
.vagrant
|
||||
|
||||
# Node #
|
||||
########
|
||||
node_modules
|
||||
bin
|
||||
# Git #
|
||||
#######
|
||||
*.orig
|
||||
|
||||
# Project files #
|
||||
#################
|
||||
static/webserver/public/libs/**
|
||||
db/**
|
||||
heapdump
|
||||
*.map
|
||||
101
Dockerfile
Normal file
@@ -0,0 +1,101 @@
|
||||
FROM node:4.2.3-slim
|
||||
|
||||
MAINTAINER datarhei <info@datarhei.org>
|
||||
|
||||
ENV FFMPEG_VERSION 2.8.1
|
||||
ENV YASM_VERSION 1.3.0
|
||||
ENV LAME_VERSION 3.99.5
|
||||
ENV NGINX_VERSION 1.8.0
|
||||
|
||||
ENV SRC /usr/local
|
||||
ENV LD_LIBRARY_PATH ${SRC}/lib
|
||||
ENV PKG_CONFIG_PATH ${SRC}/lib/pkgconfig
|
||||
|
||||
ENV BUILDDEPS "autoconf automake gcc g++ libtool make nasm zlib1g-dev libssl-dev xz-utils cmake perl build-essential libpcre3-dev unzip"
|
||||
|
||||
RUN rm -rf /var/lib/apt/lists/* && \
|
||||
apt-get update && \
|
||||
apt-get install -y curl wget git libpcre3 tar ${BUILDDEPS}
|
||||
|
||||
# yasm
|
||||
RUN DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
curl -Os http://www.tortall.net/projects/yasm/releases/yasm-${YASM_VERSION}.tar.gz && \
|
||||
tar xzvf yasm-${YASM_VERSION}.tar.gz && \
|
||||
cd yasm-${YASM_VERSION} && \
|
||||
./configure --prefix="$SRC" --bindir="${SRC}/bin" && \
|
||||
make && \
|
||||
make install && \
|
||||
make distclean && \
|
||||
rm -rf ${DIR}
|
||||
|
||||
# x264
|
||||
RUN DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
git clone --depth 1 git://git.videolan.org/x264 && \
|
||||
cd x264 && \
|
||||
./configure --prefix="$SRC" --bindir="${SRC}/bin" --enable-static && \
|
||||
make && \
|
||||
make install && \
|
||||
make distclean && \
|
||||
rm -rf ${DIR}
|
||||
|
||||
# libmp3lame
|
||||
RUN DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
curl -L -Os http://downloads.sourceforge.net/project/lame/lame/${LAME_VERSION%.*}/lame-${LAME_VERSION}.tar.gz && \
|
||||
tar xzvf lame-${LAME_VERSION}.tar.gz && \
|
||||
cd lame-${LAME_VERSION} && \
|
||||
./configure --prefix="${SRC}" --bindir="${SRC}/bin" --disable-shared --enable-nasm && \
|
||||
make && \
|
||||
make install && \
|
||||
make distclean&& \
|
||||
rm -rf ${DIR}
|
||||
|
||||
# ffmpeg
|
||||
RUN DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
curl -Os http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz && \
|
||||
tar xzvf ffmpeg-${FFMPEG_VERSION}.tar.gz && \
|
||||
cd ffmpeg-${FFMPEG_VERSION} && \
|
||||
./configure --prefix="${SRC}" --extra-cflags="-I${SRC}/include" --extra-ldflags="-L${SRC}/lib" --bindir="${SRC}/bin" \
|
||||
--extra-libs=-ldl --enable-version3 --enable-libmp3lame --enable-libx264 --enable-gpl \
|
||||
--enable-postproc --enable-nonfree --enable-avresample --disable-debug --enable-small --enable-openssl && \
|
||||
make && \
|
||||
make install && \
|
||||
make distclean && \
|
||||
hash -r && \
|
||||
cd tools && \
|
||||
make qt-faststart && \
|
||||
cp qt-faststart ${SRC}/bin && \
|
||||
rm -rf ${DIR}
|
||||
RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/libc.conf
|
||||
RUN ffmpeg -buildconf
|
||||
|
||||
# nginx-rtmp
|
||||
RUN DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
curl -LOks http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz && \
|
||||
tar -zxvf nginx-${NGINX_VERSION}.tar.gz && \
|
||||
curl -LOks https://github.com/arut/nginx-rtmp-module/archive/master.zip && \
|
||||
unzip master.zip && \
|
||||
rm master.zip && \
|
||||
cd nginx-${NGINX_VERSION} && \
|
||||
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master && \
|
||||
make && \
|
||||
make install && \
|
||||
rm -rf ${DIR}
|
||||
|
||||
RUN apt-get purge -y --auto-remove ${BUILDDEPS} && \
|
||||
apt-get install -y git && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
COPY . /restreamer
|
||||
WORKDIR /restreamer
|
||||
|
||||
RUN npm install -g bower grunt-bower grunt-cli public-ip && \
|
||||
npm install && \
|
||||
grunt build
|
||||
|
||||
ENV RESTREAMER_USERNAME admin
|
||||
ENV RESTREAMER_PASSWORD datarhei
|
||||
|
||||
EXPOSE 8080
|
||||
VOLUME ["/restreamer/db"]
|
||||
|
||||
CMD ["./run.sh"]
|
||||
115
Dockerfile_armv6l
Normal file
@@ -0,0 +1,115 @@
|
||||
FROM resin/rpi-raspbian:jessie
|
||||
|
||||
MAINTAINER datarhei <info@datarhei.org>
|
||||
|
||||
ENV NODE_VERSION 4.2.3
|
||||
ENV NPM_VERSION 2.14.7
|
||||
|
||||
ENV FFMPEG_VERSION 2.8.1
|
||||
ENV YASM_VERSION 1.3.0
|
||||
ENV LAME_VERSION 3.99.5
|
||||
ENV NGINX_VERSION 1.8.0
|
||||
|
||||
ENV SRC /usr/local
|
||||
ENV LD_LIBRARY_PATH ${SRC}/lib
|
||||
ENV PKG_CONFIG_PATH ${SRC}/lib/pkgconfig
|
||||
|
||||
ENV BUILDDEPS "autoconf automake gcc g++ libtool make nasm zlib1g-dev libssl-dev xz-utils cmake perl build-essential libpcre3-dev unzip"
|
||||
|
||||
RUN rm -rf /var/lib/apt/lists/* && \
|
||||
apt-get update && \
|
||||
apt-get install -y curl wget git libpcre3 tar ${BUILDDEPS}
|
||||
|
||||
# node
|
||||
RUN DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
set -x && \
|
||||
wget "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-armv6l.tar.gz" && \
|
||||
tar -xzf "node-v$NODE_VERSION-linux-armv6l.tar.gz" -C /usr/local --strip-components=1 && \
|
||||
rm "node-v$NODE_VERSION-linux-armv6l.tar.gz" && \
|
||||
npm install -g npm@"$NPM_VERSION" --unsafe-perm && \
|
||||
npm cache clear && \
|
||||
npm config set unsafe-perm true -g --unsafe-perm && \
|
||||
rm -rf ${DIR}
|
||||
|
||||
# yasm
|
||||
RUN DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
curl -Os http://www.tortall.net/projects/yasm/releases/yasm-${YASM_VERSION}.tar.gz && \
|
||||
tar xzvf yasm-${YASM_VERSION}.tar.gz && \
|
||||
cd yasm-${YASM_VERSION} && \
|
||||
./configure --prefix="$SRC" --bindir="${SRC}/bin" && \
|
||||
make && \
|
||||
make install && \
|
||||
make distclean && \
|
||||
rm -rf ${DIR}
|
||||
|
||||
# x264
|
||||
RUN DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
git clone --depth 1 git://git.videolan.org/x264 && \
|
||||
cd x264 && \
|
||||
./configure --prefix="$SRC" --bindir="${SRC}/bin" --enable-static && \
|
||||
make && \
|
||||
make install && \
|
||||
make distclean && \
|
||||
rm -rf ${DIR}
|
||||
|
||||
# libmp3lame
|
||||
RUN DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
curl -L -Os http://downloads.sourceforge.net/project/lame/lame/${LAME_VERSION%.*}/lame-${LAME_VERSION}.tar.gz && \
|
||||
tar xzvf lame-${LAME_VERSION}.tar.gz && \
|
||||
cd lame-${LAME_VERSION} && \
|
||||
./configure --prefix="${SRC}" --bindir="${SRC}/bin" --disable-shared --enable-nasm && \
|
||||
make && \
|
||||
make install && \
|
||||
make distclean&& \
|
||||
rm -rf ${DIR}
|
||||
|
||||
# ffmpeg
|
||||
RUN DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
curl -Os http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz && \
|
||||
tar xzvf ffmpeg-${FFMPEG_VERSION}.tar.gz && \
|
||||
cd ffmpeg-${FFMPEG_VERSION} && \
|
||||
./configure --prefix="${SRC}" --extra-cflags="-I${SRC}/include" --extra-ldflags="-L${SRC}/lib" --bindir="${SRC}/bin" \
|
||||
--extra-libs=-ldl --enable-version3 --enable-libmp3lame --enable-libx264 --enable-gpl \
|
||||
--enable-postproc --enable-nonfree --enable-avresample --disable-debug --enable-small --enable-openssl && \
|
||||
make && \
|
||||
make install && \
|
||||
make distclean && \
|
||||
hash -r && \
|
||||
cd tools && \
|
||||
make qt-faststart && \
|
||||
cp qt-faststart ${SRC}/bin && \
|
||||
rm -rf ${DIR}
|
||||
RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/libc.conf
|
||||
RUN ffmpeg -buildconf
|
||||
|
||||
# nginx-rtmp
|
||||
RUN DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
curl -LOks http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz && \
|
||||
tar -zxvf nginx-${NGINX_VERSION}.tar.gz && \
|
||||
curl -LOks https://github.com/arut/nginx-rtmp-module/archive/master.zip && \
|
||||
unzip master.zip && \
|
||||
rm master.zip && \
|
||||
cd nginx-${NGINX_VERSION} && \
|
||||
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master && \
|
||||
make && \
|
||||
make install && \
|
||||
rm -rf ${DIR}
|
||||
|
||||
RUN apt-get purge -y --auto-remove ${BUILDDEPS} && \
|
||||
apt-get install -y --force-yes git && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
COPY . /restreamer
|
||||
WORKDIR /restreamer
|
||||
|
||||
RUN npm install -g bower grunt-bower grunt-cli public-ip && \
|
||||
npm install && \
|
||||
grunt build
|
||||
|
||||
ENV RESTREAMER_USERNAME admin
|
||||
ENV RESTREAMER_PASSWORD datarhei
|
||||
|
||||
EXPOSE 8080
|
||||
VOLUME ["/restreamer/db"]
|
||||
|
||||
CMD ["./run.sh"]
|
||||
115
Dockerfile_armv7l
Normal file
@@ -0,0 +1,115 @@
|
||||
FROM armbuild/debian:jessie
|
||||
|
||||
MAINTAINER datarhei <info@datarhei.org>
|
||||
|
||||
ENV NODE_VERSION 4.2.3
|
||||
ENV NPM_VERSION 2.14.7
|
||||
|
||||
ENV FFMPEG_VERSION 2.8.1
|
||||
ENV YASM_VERSION 1.3.0
|
||||
ENV LAME_VERSION 3.99.5
|
||||
ENV NGINX_VERSION 1.8.0
|
||||
|
||||
ENV SRC /usr/local
|
||||
ENV LD_LIBRARY_PATH ${SRC}/lib
|
||||
ENV PKG_CONFIG_PATH ${SRC}/lib/pkgconfig
|
||||
|
||||
ENV BUILDDEPS "autoconf automake gcc g++ libtool make nasm zlib1g-dev libssl-dev xz-utils cmake perl build-essential libpcre3-dev unzip"
|
||||
|
||||
RUN rm -rf /var/lib/apt/lists/* && \
|
||||
apt-get update && \
|
||||
apt-get install -y curl wget git libpcre3 tar ${BUILDDEPS}
|
||||
|
||||
# node
|
||||
RUN DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
set -x && \
|
||||
wget "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-armv7l.tar.gz" && \
|
||||
tar -xzf "node-v$NODE_VERSION-linux-armv7l.tar.gz" -C /usr/local --strip-components=1 && \
|
||||
rm "node-v$NODE_VERSION-linux-armv7l.tar.gz" && \
|
||||
npm install -g npm@"$NPM_VERSION" --unsafe-perm && \
|
||||
npm cache clear && \
|
||||
npm config set unsafe-perm true -g --unsafe-perm && \
|
||||
rm -rf ${DIR}
|
||||
|
||||
# yasm
|
||||
RUN DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
curl -Os http://www.tortall.net/projects/yasm/releases/yasm-${YASM_VERSION}.tar.gz && \
|
||||
tar xzvf yasm-${YASM_VERSION}.tar.gz && \
|
||||
cd yasm-${YASM_VERSION} && \
|
||||
./configure --prefix="$SRC" --bindir="${SRC}/bin" && \
|
||||
make && \
|
||||
make install && \
|
||||
make distclean && \
|
||||
rm -rf ${DIR}
|
||||
|
||||
# x264
|
||||
RUN DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
git clone --depth 1 git://git.videolan.org/x264 && \
|
||||
cd x264 && \
|
||||
./configure --prefix="$SRC" --bindir="${SRC}/bin" --enable-static && \
|
||||
make && \
|
||||
make install && \
|
||||
make distclean && \
|
||||
rm -rf ${DIR}
|
||||
|
||||
# libmp3lame
|
||||
RUN DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
curl -L -Os http://downloads.sourceforge.net/project/lame/lame/${LAME_VERSION%.*}/lame-${LAME_VERSION}.tar.gz && \
|
||||
tar xzvf lame-${LAME_VERSION}.tar.gz && \
|
||||
cd lame-${LAME_VERSION} && \
|
||||
./configure --prefix="${SRC}" --bindir="${SRC}/bin" --disable-shared --enable-nasm && \
|
||||
make && \
|
||||
make install && \
|
||||
make distclean&& \
|
||||
rm -rf ${DIR}
|
||||
|
||||
# ffmpeg
|
||||
RUN DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
curl -Os http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz && \
|
||||
tar xzvf ffmpeg-${FFMPEG_VERSION}.tar.gz && \
|
||||
cd ffmpeg-${FFMPEG_VERSION} && \
|
||||
./configure --prefix="${SRC}" --extra-cflags="-I${SRC}/include" --extra-ldflags="-L${SRC}/lib" --bindir="${SRC}/bin" \
|
||||
--extra-libs=-ldl --enable-version3 --enable-libmp3lame --enable-libx264 --enable-gpl \
|
||||
--enable-postproc --enable-nonfree --enable-avresample --disable-debug --enable-small --enable-openssl && \
|
||||
make && \
|
||||
make install && \
|
||||
make distclean && \
|
||||
hash -r && \
|
||||
cd tools && \
|
||||
make qt-faststart && \
|
||||
cp qt-faststart ${SRC}/bin && \
|
||||
rm -rf ${DIR}
|
||||
RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/libc.conf
|
||||
RUN ffmpeg -buildconf
|
||||
|
||||
# nginx-rtmp
|
||||
RUN DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
curl -LOks http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz && \
|
||||
tar -zxvf nginx-${NGINX_VERSION}.tar.gz && \
|
||||
curl -LOks https://github.com/arut/nginx-rtmp-module/archive/master.zip && \
|
||||
unzip master.zip && \
|
||||
rm master.zip && \
|
||||
cd nginx-${NGINX_VERSION} && \
|
||||
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master && \
|
||||
make && \
|
||||
make install && \
|
||||
rm -rf ${DIR}
|
||||
|
||||
RUN apt-get purge -y --auto-remove ${BUILDDEPS} && \
|
||||
apt-get install -y git && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
COPY . /restreamer
|
||||
WORKDIR /restreamer
|
||||
|
||||
RUN npm install -g bower grunt-bower grunt-cli public-ip && \
|
||||
npm install && \
|
||||
grunt build
|
||||
|
||||
ENV RESTREAMER_USERNAME admin
|
||||
ENV RESTREAMER_PASSWORD datarhei
|
||||
|
||||
EXPOSE 8080
|
||||
VOLUME ["/restreamer/db"]
|
||||
|
||||
CMD ["./run.sh"]
|
||||
30
README.md
@@ -1,2 +1,28 @@
|
||||
# restreamer
|
||||
Out of the box livestreaming solution without external services
|
||||
# Restreamer
|
||||
Datarhei/Restreamer allows smart free video streaming in real time. Stream H.264 video of IP cameras live to your website. Pump your live video to [YouTube-Live](https://www.youtube.com/), [Ustream](http://www.ustream.tv/), [Twitch](http://www.twitch.tv/), [Livestream.com](http://livestream.com/) or any other streaming-solutions e.g. [Wowza-Streaming-Engine](https://www.wowza.com/). Our [Docker-Image](https://hub.docker.com/search/?q=restreamer&page=1&isAutomated=0&isOfficial=0&starCount=0&pullCount=0) is easy to install and runs on Linux, MacOS and Windows. Datarhei/Restreamer can be perfectly combined with single-board computers like [Raspberry Pi](https://www.raspberrypi.org/) and [Odroid](http://www.hardkernel.com/main/main.php).
|
||||
|
||||
## Features
|
||||
|
||||
- User-Interface incl. Basic-Auth
|
||||
- JSON / HTTP-API
|
||||
- [FFmpeg](http://ffmpeg.org/) streamig/encoding the video/camera-stream, creating snapshots or pushing to a external streaming-endpoint
|
||||
- [NGINX](http://nginx.org/) incl. [RTMP-Module](https://github.com/arut/nginx-rtmp-module) as streaming-backend and hls server
|
||||
- [Clappr-Player](https://github.com/clappr/clappr) to embed your stream on your website
|
||||
- [Docker](https://www.docker.com/) and [Kitematic](https://kitematic.com/) optimizations and very easy installation
|
||||
|
||||
## Documentation
|
||||
The documentation is available on the [Datarhei/Restreamer GitHub pages site](https://datarhei.github.io/restreamer/).
|
||||
We give you a lot of of informations from setting up a camera, embedding your player upon your website and streaming to services like e.g. YouTube-Live, Ustream and Livestream.com and many more things.
|
||||
|
||||
More additional informations about streaming, cameras and so on you can find in our [Wiki](https://datarhei.github.com/restreamer/wiki).
|
||||
|
||||
## Help / Bugs
|
||||
If you have problems or found a bug feel free to create a new issue upon the [Github issue management](https://github.com/datarhei/restreamer/issues).
|
||||
|
||||
Need personal help or want to talk to us? Write email open@datarhei.org, go to [Support](http://datarhei.org/restreamer/support.html) or choose a nickname and join us on #datarhei webchat on freenode.
|
||||
|
||||
## Authors
|
||||
The Datarhei/Restreamer was created by [Julius Eitzen](https://github.com/orgs/datarhei/people/ennitje), [Sven Erbeck](https://github.com/orgs/datarhei/people/svenerbeck), [Christoph Johannsdotter](https://github.com/orgs/datarhei/people/christophjohannsdotter) and [Jan Stabenow](https://github.com/jstabenow).
|
||||
|
||||
## Copyright
|
||||
Code released under the [Apache license](LICENSE). Images are copyrighted by datarhei.org
|
||||
|
||||
19
bower.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "ReStreamer",
|
||||
"version": "0.1.0-RC1",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"bootstrap": "3.3.6",
|
||||
"jquery": "2.1.4",
|
||||
"html5shiv": "3.7.3",
|
||||
"respond": "1.4.2",
|
||||
"angular-bootstrap": "~0.13.3",
|
||||
"angular-animate": "1.4.8",
|
||||
"ui-router": "~0.2.15",
|
||||
"angular-translate": "~2.8.1",
|
||||
"angular-translate-loader-static-files": "~2.8.1"
|
||||
},
|
||||
"resolutions": {
|
||||
"angular": "1.4.8"
|
||||
}
|
||||
}
|
||||
87
conf/jsondb_v1_schema.json
Normal file
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||
"id": "http://jsonschema.net",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"addresses": {
|
||||
"id": "http://jsonschema.net/addresses",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"srcAddress": {
|
||||
"id": "http://jsonschema.net/addresses/srcAddress",
|
||||
"type": "string"
|
||||
},
|
||||
"optionalOutputAddress": {
|
||||
"id": "http://jsonschema.net/addresses/optionalOutputAddress",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"srcAddress",
|
||||
"optionalOutputAddress"
|
||||
]
|
||||
},
|
||||
"states": {
|
||||
"id": "http://jsonschema.net/states",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"repeatToLocalNginx": {
|
||||
"id": "http://jsonschema.net/states/repeatToLocalNginx",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {
|
||||
"id": "http://jsonschema.net/states/repeatToLocalNginx/type",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"repeatToOptionalOutput": {
|
||||
"id": "http://jsonschema.net/states/repeatToOptionalOutput",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {
|
||||
"id": "http://jsonschema.net/states/repeatToOptionalOutput/type",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"userActions": {
|
||||
"id": "http://jsonschema.net/userActions",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"repeatToLocalNginx": {
|
||||
"id": "http://jsonschema.net/userActions/repeatToLocalNginx",
|
||||
"type": "string"
|
||||
},
|
||||
"repeatToOptionalOutput": {
|
||||
"id": "http://jsonschema.net/userActions/repeatToOptionalOutput",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"progresses": {
|
||||
"id": "http://jsonschema.net/progresses",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"repeatToLocalNginx": {
|
||||
"id": "http://jsonschema.net/progresses/repeatToLocalNginx",
|
||||
"type": "object",
|
||||
"properties": {}
|
||||
},
|
||||
"repeatToOptionalOutput": {
|
||||
"id": "http://jsonschema.net/progresses/repeatToOptionalOutput",
|
||||
"type": "object",
|
||||
"properties": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"addresses",
|
||||
"states",
|
||||
"userActions",
|
||||
"progresses"
|
||||
]
|
||||
}
|
||||
49
conf/live.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"name": "live",
|
||||
"jsondb": "db/v1",
|
||||
"auth": {
|
||||
"username": "admin",
|
||||
"password": "datarhei"
|
||||
},
|
||||
"ffmpeg": {
|
||||
"options": {
|
||||
"native_h264":[
|
||||
"-c copy",
|
||||
"-map_metadata -1",
|
||||
"-metadata application=datarhei/ReStreamer",
|
||||
"-metadata server=NGINX(RTMP-Module)",
|
||||
"-f flv"
|
||||
],
|
||||
"native_h264_soundless_aac":[
|
||||
"-ar 44100",
|
||||
"-ac 2",
|
||||
"-acodec pcm_s16le",
|
||||
"-f s16le",
|
||||
"-ac 2",
|
||||
"-i /dev/zero",
|
||||
"-c:v copy",
|
||||
"-acodec aac",
|
||||
"-ab 128k",
|
||||
"-map_metadata -1",
|
||||
"-metadata application=datarhei/ReStreamer",
|
||||
"-metadata server=NGINX(RTMP-Module)",
|
||||
"-f flv"
|
||||
],
|
||||
"snapshot": "-vframes 1"
|
||||
},
|
||||
"monitor": {
|
||||
"restart_wait": "6000",
|
||||
"retries": 10
|
||||
}
|
||||
},
|
||||
"nginx": {
|
||||
"exec": "/usr/local/nginx/sbin/nginx -c /restreamer/conf/nginx.conf",
|
||||
"streaming": {
|
||||
"ip": "127.0.0.1",
|
||||
"rtmp_port": "1935",
|
||||
"rtmp_path": "/live/",
|
||||
"hls_port": "8080",
|
||||
"hls_path": "/hls/"
|
||||
}
|
||||
}
|
||||
}
|
||||
65
conf/nginx.conf
Normal file
@@ -0,0 +1,65 @@
|
||||
error_log stderr;
|
||||
worker_processes 1;
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
rtmp {
|
||||
server {
|
||||
listen 1935;
|
||||
chunk_size 4000;
|
||||
application live {
|
||||
live on;
|
||||
meta copy;
|
||||
allow publish 127.0.0.1;
|
||||
deny publish all;
|
||||
}
|
||||
application hls {
|
||||
live on;
|
||||
hls on;
|
||||
hls_playlist_length 60s;
|
||||
hls_fragment 2s;
|
||||
hls_path /tmp/hls;
|
||||
meta copy;
|
||||
allow publish 127.0.0.1;
|
||||
deny publish all;
|
||||
}
|
||||
}
|
||||
}
|
||||
http {
|
||||
sendfile off;
|
||||
tcp_nopush on;
|
||||
server {
|
||||
listen 8080;
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header Host $host;
|
||||
}
|
||||
location /player.html {
|
||||
root /restreamer/bin/webserver/public;
|
||||
allow all;
|
||||
}
|
||||
location /libs {
|
||||
root /restreamer/bin/webserver/public;
|
||||
allow all;
|
||||
include /usr/local/nginx/conf/mime.types;
|
||||
add_header Access-Control-Allow-Origin *;
|
||||
}
|
||||
location /images {
|
||||
root /restreamer/bin/webserver/public;
|
||||
allow all;
|
||||
}
|
||||
location /hls {
|
||||
types {
|
||||
application/vnd.apple.mpegurl m3u8;
|
||||
video/mp2t ts;
|
||||
}
|
||||
root /tmp;
|
||||
add_header Cache-Control no-cache;
|
||||
add_header Access-Control-Allow-Origin *;
|
||||
}
|
||||
}
|
||||
}
|
||||
daemon off;
|
||||
2
docs/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
_site/
|
||||
|
||||
14
docs/Dockerfile
Normal file
@@ -0,0 +1,14 @@
|
||||
FROM node:4.2.2-slim
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y gem ruby-dev make autoconf python-dev
|
||||
|
||||
COPY . /restreamer
|
||||
WORKDIR /restreamer
|
||||
|
||||
RUN apt-get install -y ruby rubygems-integration build-essential
|
||||
|
||||
RUN gem install RedCloth bundler
|
||||
RUN bundle install
|
||||
|
||||
CMD ["bundle", "exec", "jekyll", "serve", "-H", "0.0.0.0", "-w"]
|
||||
25
docs/Gemfile
Normal file
@@ -0,0 +1,25 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
# Jekyll
|
||||
gem "jekyll"
|
||||
gem "jekyll-coffeescript"
|
||||
gem "jekyll-sass-converter"
|
||||
|
||||
# Converters
|
||||
gem "kramdown"
|
||||
gem "maruku"
|
||||
gem "rdiscount"
|
||||
gem "redcarpet"
|
||||
gem "RedCloth"
|
||||
|
||||
# Liquid
|
||||
gem "liquid"
|
||||
|
||||
# Highlighters
|
||||
gem "pygments.rb"
|
||||
|
||||
# Plugins
|
||||
#gem "jemoji"
|
||||
#gem "jekyll-mentions"
|
||||
gem "jekyll-redirect-from"
|
||||
gem "jekyll-sitemap"
|
||||
87
docs/Gemfile.lock
Normal file
@@ -0,0 +1,87 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
RedCloth (4.2.9)
|
||||
blankslate (2.1.2.4)
|
||||
celluloid (0.16.0)
|
||||
timers (~> 4.0.0)
|
||||
classifier-reborn (2.0.3)
|
||||
fast-stemmer (~> 1.0)
|
||||
coffee-script (2.4.1)
|
||||
coffee-script-source
|
||||
execjs
|
||||
coffee-script-source (1.9.1.1)
|
||||
colorator (0.1)
|
||||
execjs (2.5.2)
|
||||
fast-stemmer (1.0.2)
|
||||
ffi (1.9.10)
|
||||
hitimes (1.2.2)
|
||||
jekyll (2.5.3)
|
||||
classifier-reborn (~> 2.0)
|
||||
colorator (~> 0.1)
|
||||
jekyll-coffeescript (~> 1.0)
|
||||
jekyll-gist (~> 1.0)
|
||||
jekyll-paginate (~> 1.0)
|
||||
jekyll-sass-converter (~> 1.0)
|
||||
jekyll-watch (~> 1.1)
|
||||
kramdown (~> 1.3)
|
||||
liquid (~> 2.6.1)
|
||||
mercenary (~> 0.3.3)
|
||||
pygments.rb (~> 0.6.0)
|
||||
redcarpet (~> 3.1)
|
||||
safe_yaml (~> 1.0)
|
||||
toml (~> 0.1.0)
|
||||
jekyll-coffeescript (1.0.1)
|
||||
coffee-script (~> 2.2)
|
||||
jekyll-gist (1.2.1)
|
||||
jekyll-paginate (1.1.0)
|
||||
jekyll-redirect-from (0.8.0)
|
||||
jekyll (>= 2.0)
|
||||
jekyll-sass-converter (1.3.0)
|
||||
sass (~> 3.2)
|
||||
jekyll-sitemap (0.8.1)
|
||||
jekyll-watch (1.2.1)
|
||||
listen (~> 2.7)
|
||||
kramdown (1.8.0)
|
||||
liquid (2.6.2)
|
||||
listen (2.10.1)
|
||||
celluloid (~> 0.16.0)
|
||||
rb-fsevent (>= 0.9.3)
|
||||
rb-inotify (>= 0.9)
|
||||
maruku (0.7.2)
|
||||
mercenary (0.3.5)
|
||||
parslet (1.5.0)
|
||||
blankslate (~> 2.0)
|
||||
posix-spawn (0.3.11)
|
||||
pygments.rb (0.6.3)
|
||||
posix-spawn (~> 0.3.6)
|
||||
yajl-ruby (~> 1.2.0)
|
||||
rb-fsevent (0.9.5)
|
||||
rb-inotify (0.9.5)
|
||||
ffi (>= 0.5.0)
|
||||
rdiscount (2.1.8)
|
||||
redcarpet (3.3.2)
|
||||
safe_yaml (1.0.4)
|
||||
sass (3.4.16)
|
||||
timers (4.0.1)
|
||||
hitimes
|
||||
toml (0.1.2)
|
||||
parslet (~> 1.5.0)
|
||||
yajl-ruby (1.2.1)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
RedCloth
|
||||
jekyll
|
||||
jekyll-coffeescript
|
||||
jekyll-redirect-from
|
||||
jekyll-sass-converter
|
||||
jekyll-sitemap
|
||||
kramdown
|
||||
liquid
|
||||
maruku
|
||||
pygments.rb
|
||||
rdiscount
|
||||
redcarpet
|
||||
44
docs/README.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# ReStreamer Docs and Website
|
||||
|
||||
## Setup
|
||||
|
||||
1. Clone the ReStreamer repository
|
||||
|
||||
2. Change into the "docs" directory where docs live
|
||||
|
||||
$ cd docs
|
||||
|
||||
3. Build the Dockerfile
|
||||
|
||||
$ docker build -t rs-docs .
|
||||
|
||||
4. Start the web server
|
||||
|
||||
$ docker run -d -p 4000:4000 -v $PWD:/restreamer rs-docs
|
||||
|
||||
5. Visit the site at
|
||||
http://docker-host-ip:4000/restreamer/
|
||||
|
||||
## Deployment
|
||||
|
||||
1. Clone a separate copy of the ReStreamer repo as a sibling of your normal
|
||||
ReStreamer project directory and name it "restreamer-gh-pages".
|
||||
|
||||
$ git clone git@github.com:datarhei/restreamer.git restreamer-gh-pages
|
||||
|
||||
2. Check out the "gh-pages" branch.
|
||||
|
||||
$ cd /path/to/restreamer-gh-pages
|
||||
$ git checkout gh-pages
|
||||
|
||||
3. Copy the contents of the "docs" directory in master to the root of your
|
||||
restreamer-gh-pages directory.
|
||||
|
||||
$ cd /path/to/restreamer
|
||||
$ cp -r docs/** ../restreamer-gh-pages
|
||||
|
||||
4. Change to the small-restreamer-gh-pages directory, commit, and push the changes
|
||||
|
||||
$ cd /path/to/restreamer-gh-pages
|
||||
$ git commit . -m "Syncing docs with master branch"
|
||||
$ git push
|
||||
41
docs/_config.yml
Normal file
@@ -0,0 +1,41 @@
|
||||
defaults:
|
||||
-
|
||||
scope:
|
||||
path: ""
|
||||
values:
|
||||
layout: default
|
||||
-
|
||||
scope:
|
||||
path: "docs"
|
||||
values:
|
||||
layout: docs
|
||||
tab: docs
|
||||
-
|
||||
scope:
|
||||
path: "wiki"
|
||||
values:
|
||||
layout: wiki
|
||||
tab: wiki
|
||||
-
|
||||
scope:
|
||||
path: "wiki/basic_know_how"
|
||||
values:
|
||||
layout: wiki-basic
|
||||
-
|
||||
scope:
|
||||
path: "wiki/general_instructions"
|
||||
values:
|
||||
layout: wiki-general
|
||||
|
||||
sass:
|
||||
sass_dir: _sass
|
||||
style: :compressed
|
||||
|
||||
baseurl: "/restreamer"
|
||||
highlighter: pygments
|
||||
lsi: false
|
||||
markdown: redcarpet
|
||||
redcarpet:
|
||||
extensions: [with_toc_data, tables]
|
||||
safe: true
|
||||
source: .
|
||||
57
docs/_layouts/default.html
Normal file
@@ -0,0 +1,57 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta charset='utf-8'>
|
||||
<title>ReStreamer: {{ page.title }}</title>
|
||||
<link rel="icon" type="image/x-icon" href="{{ site.baseurl }}/img/favicon.ico">
|
||||
<link href="//cdn.jsdelivr.net/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="{{ site.baseurl }}/css/style.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<div class="site-wrapper">
|
||||
<div class="navbar navbar-default navbar-inverse" style="background-color: transparent;" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" style="color:#57945c;" href="{{ site.baseurl }}/">ReStreamer</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" id="navbar-collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li {% if page.tab == "docs" %}class="active"{% endif %}>
|
||||
<a href="{{ site.baseurl }}/docs/">Docs</a>
|
||||
</li>
|
||||
<li {% if page.tab == "wiki" %}class="active"{% endif %}>
|
||||
<a href="{{ site.baseurl }}/wiki/">Wiki</a>
|
||||
</li>
|
||||
<li {% if page.tab == "support" %}class="active"{% endif %}>
|
||||
<a href="{{ site.baseurl }}/support.html">Support</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li><a href="https://github.com/datarhei/restreamer">GitHub</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
{{content}}
|
||||
<footer>
|
||||
<p class="text-muted text-right">
|
||||
© 2015 <a class="text-muted" href="http://datarhei.org">datarhei.org</a>
|
||||
</p>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="//cdn.jsdelivr.net/jquery/2.1.1/jquery.min.js"></script>
|
||||
<script src="//cdn.jsdelivr.net/bootstrap/3.2.0/js/bootstrap.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
106
docs/_layouts/docs.html
Normal file
@@ -0,0 +1,106 @@
|
||||
---
|
||||
layout: pages
|
||||
---
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<h5>Getting Started</h5>
|
||||
<ul class="list-unstyled">
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/docs/">
|
||||
Welcome
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/docs/docker-setup.html">
|
||||
Easy setup with Docker
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/docs/hints.html">
|
||||
Hints
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h5>Guides</h5>
|
||||
<ul class="list-unstyled">
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/docs/guides-setup-video-device.html">
|
||||
Setup Video Device
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/docs/guides-embed-player.html">
|
||||
Embed Player
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/docs/guides-embed-snapshot.html">
|
||||
Embed Snapshot
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/docs/guides-snapshot-interval.html">
|
||||
Modify Snapshotinterval
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/docs/guides-usb-camera.html">
|
||||
USB-Camera
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/docs/guides-raspicam.html">
|
||||
Raspberry Pi-Camera
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/docs/guides-optional-streaming.html">
|
||||
Stream to external services
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h5>References</h5>
|
||||
<ul class="list-unstyled">
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/docs/references-config.html">
|
||||
Config
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/docs/references-environment-vars.html">
|
||||
Environment Variables
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/docs/references-http-api.html">
|
||||
JSON / HTTP-API
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h5>Development</h5>
|
||||
<ul class="list-unstyled">
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/docs/development-architecture.html">
|
||||
Architecture
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h5>Contact</h5>
|
||||
<ul class="list-unstyled">
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/support.html">
|
||||
Talk to us
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
{{ content }}
|
||||
</div>
|
||||
</div>
|
||||
58
docs/_layouts/pages.html
Normal file
@@ -0,0 +1,58 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta charset='utf-8'>
|
||||
<title>ReStreamer: {{ page.title }}</title>
|
||||
<link rel="icon" type="image/x-icon" href="{{ site.baseurl }}/img/favicon.ico">
|
||||
<link href="//cdn.jsdelivr.net/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="{{ site.baseurl }}/css/style.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<div class="navbar navbar-default navbar-inverse" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" style="color:#57945c;" href="{{ site.baseurl }}/">ReStreamer</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" id="navbar-collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li {% if page.tab == "docs" %}class="active"{% endif %}>
|
||||
<a href="{{ site.baseurl }}/docs/">Docs</a>
|
||||
</li>
|
||||
<li {% if page.tab == "wiki" %}class="active"{% endif %}>
|
||||
<a href="{{ site.baseurl }}/wiki/">Wiki</a>
|
||||
</li>
|
||||
<li {% if page.tab == "faq" %}class="active"{% endif %}>
|
||||
<a href="{{ site.baseurl }}/wiki/faq_en.html">FAQ</a>
|
||||
</li>
|
||||
<li {% if page.tab == "support" %}class="active"{% endif %}>
|
||||
<a href="{{ site.baseurl }}/support.html">Support</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li><a href="https://github.com/datarhei/restreamer">GitHub</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
{{content}}
|
||||
<footer>
|
||||
<p class="text-muted">
|
||||
© 2015 <a class="text-muted" href="http://datarhei.org">datarhei.org</a>
|
||||
</p>
|
||||
</footer>
|
||||
</div></div>
|
||||
</div>
|
||||
<script src="//cdn.jsdelivr.net/jquery/2.1.1/jquery.min.js"></script>
|
||||
<script src="//cdn.jsdelivr.net/bootstrap/3.2.0/js/bootstrap.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
86
docs/_layouts/wiki-basic.html
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
layout: pages
|
||||
---
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<h2>wiki</h2>
|
||||
<ul class="list-unstyled">
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki">
|
||||
Back
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h5>Basic Knowledge</h5>
|
||||
<ul class="list-unstyled">
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/oss_en.html">
|
||||
1. Open Source Software
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/videoplayer_en.html">
|
||||
2. Videoplayer
|
||||
</a>
|
||||
</li
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/cameratechnology_en.html">
|
||||
3. Cameratechnology
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/cameramanufacturer_en.html">
|
||||
4. Cameramanufacturer
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/networktechnology_en.html">
|
||||
5. Network Technology
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/transportprotocol_en.html">
|
||||
6. Transport Protocol
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/streamingserver_en.html">
|
||||
7. Streamingserver
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/videosoftware_en.html">
|
||||
8. Videosoftware
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/videosurveillance_en.html">
|
||||
9. Videosurveillance
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/streamingservice_en.html">
|
||||
10. Streaming Service
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/webcamportals_en.html">
|
||||
11. Webcamportals
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/monetization_en.html">
|
||||
12. Monetization
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
{{ content }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
82
docs/_layouts/wiki-general.html
Normal file
@@ -0,0 +1,82 @@
|
||||
---
|
||||
layout: pages
|
||||
---
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<h2>wiki</h2>
|
||||
<ul class="list-unstyled">
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki">
|
||||
Back
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h5>General Instructions</h5>
|
||||
<ul class="list-unstyled">
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/general_instructions/portforwarding_en.html">
|
||||
Portforwarding
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/general_instructions/dynamicdns_en.html">
|
||||
Dynamic DNS
|
||||
</a>
|
||||
</li
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/general_instructions/showpublicip_en.html">
|
||||
Show Public IP
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/general_instructions/findrtspurl_en.html">
|
||||
Find and test RTSP/RTP URL
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/general_instructions/howtostreamusbcamera_en.html">
|
||||
How to streamen USB Camera
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/general_instructions/embeddsnapshot_en.html">
|
||||
Embedd Snapshot
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/general_instructions/modifysnapshotinterval_en.html">
|
||||
Modify Snapshotinterval
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/general_instructions/livestreamingyoutube_en.html">
|
||||
Livestreaming with YouTube
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/general_instructions/livestreamingustream_en.html">
|
||||
Livestreaming with Ustream
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/general_instructions/livestreaminglivestreamcom_en.html">
|
||||
Livestreaming with Livestream.com
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/general_instructions/livestreamingtwitch_en.html">
|
||||
Livestreaming with Twitch.tv
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/general_instructions/embeddediframe_en.html">
|
||||
Embedded HTML video iFrame
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
{{ content }}
|
||||
</div>
|
||||
</div>
|
||||
74
docs/_layouts/wiki.html
Normal file
@@ -0,0 +1,74 @@
|
||||
---
|
||||
layout: pages
|
||||
---
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<h2>wiki</h2>
|
||||
<ul class="list-unstyled">
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/index.html">
|
||||
<h4>start</h4>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h5>Datarhei/Restreamer</h5>
|
||||
<ul class="list-unstyled">
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/faq_en.html">
|
||||
FAQ
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/installation_en.html">
|
||||
Installation
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/general_instructions_en.html">
|
||||
General Instructions
|
||||
</a>
|
||||
</li
|
||||
</ul>
|
||||
<hr>
|
||||
<h5>Technique</h5>
|
||||
<ul class="list-unstyled">
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how.html">
|
||||
Basic Know How
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/cameratechnology_en.html">
|
||||
Camera
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/networktechnology_en.html">
|
||||
Network
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/camerabuyersguide_en.html">
|
||||
Camera Buyers Guide
|
||||
</a>
|
||||
</li>
|
||||
<hr>
|
||||
<h5>Misc</h5>
|
||||
<ul class="list-unstyled">
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/partnerstreaming_en.html">
|
||||
Partner Streaming
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/supportdatarhei_en.html">
|
||||
Support Datarhei
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
{{ content }}
|
||||
</div>
|
||||
</div>
|
||||
128
docs/_sass/_base.scss
Normal file
@@ -0,0 +1,128 @@
|
||||
@font-face {
|
||||
font-family: 'Montserrat';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Montserrat-Regular'), url(https://themes.googleusercontent.com/static/fonts/montserrat/v4/zhcz-_WihjSQC0oHJ9TCYL3hpw3pgy2gAi-Ip7WPMi0.woff) format('woff');
|
||||
}
|
||||
|
||||
h1, .h1,
|
||||
h2, .h2,
|
||||
h3, .h3,
|
||||
h4, .h4 {
|
||||
font-family: Montserrat, "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
h5, .h5 {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #f6f6f6;
|
||||
color: #323539;
|
||||
line-height: 1.7;
|
||||
font-size: 16px;
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-bottom: 20px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
html, body {
|
||||
height:100%;
|
||||
margin:0;
|
||||
padding:0
|
||||
}
|
||||
|
||||
.site-wrapper {
|
||||
height:100%;
|
||||
display:table;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
background: url(../img/bg.png) no-repeat center center fixed;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
-o-background-size: cover;
|
||||
background-size: cover;
|
||||
background-color: #3d3d38;
|
||||
}
|
||||
|
||||
.site-wrapper-body {
|
||||
float: none;
|
||||
margin: 0 auto;
|
||||
max-width: 500px;
|
||||
border-color: #ac1527;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-radius: 10px;
|
||||
padding: 50px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.site-wrapper-row {
|
||||
height: 100%;
|
||||
display:table-cell;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.row {
|
||||
margin-right: -5px;
|
||||
margin-left: -5px;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1280px;
|
||||
}
|
||||
|
||||
hr {
|
||||
border-color: #ddd;
|
||||
}
|
||||
|
||||
.hr-landingpage {
|
||||
border-bottom: 1px solid #454543;
|
||||
border-top: 1px solid #2b2b2a;
|
||||
margin-top: 40px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
pre {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.btn-success {
|
||||
background-color: #57945c;
|
||||
border-color: #57945c;
|
||||
}
|
||||
|
||||
.navbar {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.navbar-inverse {
|
||||
background-color: #3d3d38;
|
||||
border-color: transparent;
|
||||
font-weight: 200;
|
||||
}
|
||||
|
||||
.navbar-inverse .navbar-brand,
|
||||
.navbar-inverse .nav > li > a {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.navbar-inverse .navbar-nav > li > a:hover {
|
||||
color: #fff;
|
||||
background-color: transparent;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.navbar-inverse .navbar-nav>.active>a, .navbar-inverse .navbar-nav>.active>a:hover, .navbar-inverse .navbar-nav>.active>a:focus {
|
||||
color: #fff;
|
||||
background-color: transparent;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #57945c;
|
||||
text-decoration: none;
|
||||
}
|
||||
4
docs/css/style.scss
Normal file
@@ -0,0 +1,4 @@
|
||||
---
|
||||
---
|
||||
|
||||
@import "base";
|
||||
30
docs/docs/depricated_guides-embed-player.md
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
title: Embed the Player
|
||||
---
|
||||
|
||||
# Embed the Player
|
||||
|
||||
Für die Einbindung findest Du in der Oberfläche die erforderlichen Code-Beispiele, sobald Du auf den Link "Player öffnen" klickst.
|
||||
|
||||
Damit die Dienste aber auch über Deinen Internet-Anschluss verfügbar sind, musst Du als Erstes Deinen Router entsprechend konfigurieren und den Port 8080 auf das Gerät weiterleiten, auf dem Du den ReStreamer betreibst. Bitte schaue dafür ggf. in das Handbuch Deines Routers und suche nach "Port-Weiterleitung".
|
||||
|
||||
Kopiere anschließend den iFrame-Code von der Playerseite, füge ihn in dem gewünschten Bereich auf Deiner Webseite ein (HTML-Kenntnisse sind minimal erforderlich) und veröffentliche die Änderung. Sofern die Port-Weiterleitung korrekt eingerichtet ist und der ReStreamer korrekt läuft sollte der clappr-Player zu laden und Dein Kamera-Stream abrufbar sein.
|
||||
|
||||
[](http://datarhei.org/showroom/)
|
||||
|
||||
**Hinweis:**
|
||||
Da die meisten Internet-Anbieter dynamische IP-Adressen zuweisen, sollte man sich ggf. bei einem DynDNS-Service (z.B. dnydns.org) anbmelden. Die meisten Router bieten dafür schon auf der Web-Oberfläche entsprechende Funktionen, welche eine seperate Installation nicht mehr erforderlich macht. Sobald Du Dir solch eine Domain (z.b. max-mustermann.dnydns.org) eingerichtet und diese aktiviert hast, kann Du in dem Code-Beispielen die Source wie folgt abändern:
|
||||
|
||||
```html
|
||||
<iframe src="http://max-mustermann.dnydns.org:8080/player.html" name="restreamer-player" width="800" height="450" scrolling="no" frameborder="0" webkitallowfullscreen="true" mozallowfullscreen="true" allowfullscreen="true"></iframe>
|
||||
````
|
||||
|
||||
```html
|
||||
<img src="http://max-mustermann.dnydns.org:8080/images/live.jpg" width="800" height="450">
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Want to talk to us? Write email open@datarhei.org, go to [Support](../support.html) or choose a nickname and join us on <a target= "_blank" href="https://webchat.freenode.net/?channels=datarhei">#datarhei webchat on freenode</a>.
|
||||
|
||||
If you're having a weird problem while developing, see [Known Issues](https://github.com/datarhei/small-restreamer-internal/issues/).
|
||||
32
docs/docs/development-architecture.md
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
title: Architecture
|
||||
---
|
||||
|
||||
# Architecture
|
||||
|
||||
Der Datarhei/Restreamer besteht grundlegend aus vier verschiedenen Applikationen:
|
||||
|
||||
* Frontend basierend auf Angular und Node.js für das Prozessmanagement
|
||||
* NGINX inkl. dem RTMP-Modul
|
||||
* ffmpeg als universeller Video-Prozessor
|
||||
* clappr als Video-Player
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
### Prozesse:
|
||||
|
||||
1. die Applikation stellt das User-Interface/HTTP-API bereit und startet den NGINX-Webserver mit der mitgelieferten Config (/restreamer/config/nginx.conf)
|
||||
2. ffmpeg holt den Kamera-Stream und leitet ihn weiter an den lokalen NGINX-RTMP-Server auf rtmp://127.0.0.1:1935/live/live.stream und rtmp://127.0.0.1:1935/hls/live.stream.m3u8
|
||||
3. ab jetzt stellt der NGINX-RTMP den Stream unter der Adressen http://...:8080/live/live.stream.m3u8 bereit
|
||||
4. der clappr-Player ruft den Stream per HTTP (HLS) ab
|
||||
5. zusätzlich wird, sofern konfiguriert, per ffmpeg den am lokalen NGINX-RTMP anliegenden Kamera-Stream von rtmp://127.0.0.1:1935/live/live.stream ab und leitet diesen zu der eingetragenen Adresse weiter
|
||||
|
||||
---
|
||||
|
||||
Want to talk to us? Write email open@datarhei.org, go to [Support](../support.html) or choose a nickname and join us on <a target= "_blank" href="https://webchat.freenode.net/?channels=datarhei">#datarhei webchat on freenode</a>.
|
||||
|
||||
If you're having a weird problem while developing, see [Known Issues](https://github.com/datarhei/small-restreamer-internal/issues/).
|
||||
71
docs/docs/docker-setup.md
Normal file
@@ -0,0 +1,71 @@
|
||||
---
|
||||
title: Easy setup with Docker
|
||||
---
|
||||
|
||||
# Easy setup with Docker
|
||||
There are three different and ready to start repo images avaiable upon Docker-Hub. Follow examples to run the Restreamer in 5-10 minutes. (other platforms may need different instructions but can be the same):
|
||||
|
||||
* **ARMv6l**
|
||||
* [Raspberry Pi 1](#raspberry-pi-1)
|
||||
* **ARMv7l**
|
||||
* [Raspberry Pi 2](#raspberry-pi-2)
|
||||
* [Odroid U3](#odroid-u3)
|
||||
* **Intel/AMD 64bit**
|
||||
* [OSX & Windows](#osx-windows)
|
||||
* [Linux)](#linux) (e.g. Ubuntu, Debian)
|
||||
|
||||
*[Here](hints.html) are some additional hints of running docker containers*
|
||||
|
||||
---
|
||||
|
||||
### ARMv6l
|
||||
Requires a armv6 cpu like Raspberry Pi 1
|
||||
|
||||
#### Raspberry Pi 1
|
||||
1. Copy [Hypriot-Image](http://blog.hypriot.com/getting-started-with-docker-on-your-arm-device/) to your SD-Card
|
||||
3. Run `docker run -d -p 8080:8080 datarhei/restreamer-armv6l:latest`
|
||||
4. Browse to http://your-device-ip:8080
|
||||
|
||||
---
|
||||
|
||||
### ARMv7l
|
||||
Requires ARMv7 CPU like Raspberry Pi 2 or Odroid U3
|
||||
|
||||
#### Raspberry Pi 2
|
||||
1. Copy [Hypriot-Image](http://blog.hypriot.com/getting-started-with-docker-on-your-arm-device/) to your SD-Card
|
||||
3. Run `docker run -d -p 8080:8080 datarhei/restreamer-armv6l:latest`
|
||||
4. Browse to http://your-device-ip:8080
|
||||
5. Default Login: admin / datarhei
|
||||
|
||||
#### Odroid U3
|
||||
1. Download and copy Ubunut 14.04 image to your SD-Card
|
||||
2. Boot your device
|
||||
3. Install Docker: `apt-get install -y docker-engine`
|
||||
4. Run `docker run -d -p 8080:8080 datarhei/restreamer-armv7l:latest`
|
||||
5. Browse http://your-device-ip:8080
|
||||
6. Default Login: admin / datarhei
|
||||
|
||||
---
|
||||
|
||||
### Intel/AMD 64bit
|
||||
Requires a 64bit Intel or AMD CPU
|
||||
|
||||
#### OSX / Windows
|
||||
1. Install **Docker Toolbox** for [OSX](https://docs.docker.com/engine/installation/mac/) or [Windows](https://docs.docker.com/engine/installation/windows/) of Docker.com
|
||||
2. Open Kitematic and next the CLI
|
||||
3. Run `docker run -d -p 8080:8080 datarhei/restreamer:latest`
|
||||
4. Read our [VirtualBox hints](hints.html#kitematic-virtualbox) to path through external requests on your virtual machine
|
||||
5. Browse to http://192.168.99.100:8080 (or click on the previewpage upon your kitematc user-interface)
|
||||
5. Default Login: admin / datarhei
|
||||
|
||||
#### Linux
|
||||
1. Install [Docker Engine](https://docs.docker.com/engine/installation/ubuntulinux/) by docker.com
|
||||
2. Run `docker run -d -p 8080:8080 datarhei/restreamer:latest`
|
||||
3. Browse to http://your-device-ip:8080
|
||||
4. Default Login: admin / datarhei
|
||||
|
||||
---
|
||||
|
||||
Want to talk to us? Write email open@datarhei.org, go to [Support](../support.html) or choose a nickname and join us on <a target= "_blank" href="https://webchat.freenode.net/?channels=datarhei">#datarhei webchat on freenode</a>.
|
||||
|
||||
If you're having a weird problem while developing, see [Known Issues](https://github.com/datarhei/restreamer/issues/).
|
||||
19
docs/docs/guides-embed-player.md
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: guides-embed-player
|
||||
---
|
||||
#How to embed Snapshot
|
||||
To embed your Snapshot follow the next steps:
|
||||
|
||||
1. Open your Datarhei/Restreamer GUI via local IP of your Datarhei/Restreamer device in the webbrowser of you choice
|
||||
2. Open the Datarhei/Restreamer player (marked red in screenshot) 
|
||||
3. The HTML Snippet for the video iframe code will be generated under the videoplayer (marked red in screenshot). Add your own dynamic IP and put it on your own website. 
|
||||
4. Datarhei/Restreamer generates the html tag with your public internet IP. You can add your own dynamic IP like: `scr="http://123.245.789.123:8008/player.html"` with your [[dynamic IP|dynamic IP]] - for example if your dynamic ip is: foobar.zapto.org the Datarhei/Restreamer link has to be: `http://foobar.zapto.org:8080`. The complete html tag should be like this: `<img src="http://foobar.zapto.org:/player.html" width="800" height="450">`
|
||||
5. Change the size over width and height. **Be patient of the correct aspect ratio for a pretty video!***
|
||||
|
||||
**Datarhei Hint ☺** ► Do not forget forwarding the TCP Port 8080 and 1934 ([Keyword: Porforwarding](/restreamer/wiki/portforwarding_en.html)) to use the html code successful on your website. How to do portforwarding should be explained in the manual of your router.
|
||||
|
||||
---
|
||||
|
||||
Want to talk to us? Write email open@datarhei.org, go to [Support](../support.html) or choose a nickname and join us on <a target= "_blank" href="https://webchat.freenode.net/?channels=datarhei">#datarhei webchat on freenode</a>.
|
||||
|
||||
If you're having a weird problem while developing, see [Known Issues](https://github.com/datarhei/small-restreamer-internal/issues/).
|
||||
18
docs/docs/guides-embed-snapshot.md
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
title: guides-embed-snapshot
|
||||
---
|
||||
#In the following discription we explain how to embed the static snapshot.
|
||||
|
||||
1. Open the Datarhei GUI with the local IP of Datarhei in your Browser.
|
||||
2. Open the player (marked red in the following Screenshot) 
|
||||
3. You will find the embedd html code under the videoplayer (marked red on the screenshot). Add the HTML with your dynamic IP and put it on your website.
|
||||
4. Datarhei generates the html tag with your public internet IP. You can add your own dynamic IP like: `<img src="http://123.456.789.123:8080/images/live.jpg"` with your [[dynamic IP|dynamic IP]] - for example if your dynamic ip is: foobar.zapto.org the Datarhei link has to be: `http://foobar.zapto.org:8080`. The complete html tag should be like this: `<img src="http://foobar.zapto.org:8080/images/live.jpg" width="800" height="450">`
|
||||
5. The snapshot will be updated default every 60 seconds. You could change this value in the configuration file of Datarhei. [How to change Snapshotinterval](/restreamer/wiki/modifysnapshotinterval)
|
||||
|
||||
**Datarhei Hint ☺** ► Do not forget to forward HTTP Port 8080 and 1934 for a successful Snapshot (Keyword: Porforwarding). Take a look at the manual of your router if you do not know how to do it.
|
||||
|
||||
---
|
||||
|
||||
Want to talk to us? Write email open@datarhei.org, go to [Support](../support.html) or choose a nickname and join us on <a target= "_blank" href="https://webchat.freenode.net/?channels=datarhei">#datarhei webchat on freenode</a>.
|
||||
|
||||
If you're having a weird problem while developing, see [Known Issues](https://github.com/datarhei/small-restreamer-internal/issues/).
|
||||
32
docs/docs/guides-optional-streaming.md
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
title: guides-optional-streaming
|
||||
---
|
||||
# Stream to external services
|
||||
---
|
||||
For the forwarding of your video stream to an external video service provider or other external services like YouTube, you can use the field "Additional RTMP streaming server". The check box is accessible once the connection is established to your camera.
|
||||
|
||||
**These are some examples of the most well-known services:**
|
||||
|
||||
Prerequisite is a registration or a channel with the providers , you will also receive the required address information . After logging in , you will find here the standard addresses that you need for streaming with Datarhei / Restreamer :
|
||||
|
||||
- Youtube-Live ([Help](https://support.google.com/youtube/topic/6136989?hl=de&ref_topic=2853712))
|
||||
rtmp://a.rtmp.youtube.com/live2/[your_channel]
|
||||
- UStream ([Help](https://support.ustream.tv/hc/en-us/articles/207851987-How-to-stream-to-Ustream-using-Wirecast-FMLE-TriCaster-or-any-RTMP-encoder))
|
||||
e.g. rtmp://1.21452594.fme.ustream.tv/ustreamVideo/[user]/[your_channel]
|
||||
- Livestream.com ([Help](http://original.livestream.com/userguide/index.php?title=Main_Page&title=Use_Flash_Media_Encoder_On2_Flix_live_or_Wirecast_with_Livestream))
|
||||
rtmp://publish.livestream.com/mogulus/[your_channel]/username=[username]/password=[password]/isAutoLive=true
|
||||
|
||||
Next, you are adding the destination address in your Datarhei/Restreamer:
|
||||
|
||||

|
||||
|
||||
Once the process has been successfully established, the stream should also be seen at the external provider (it can sometimes take a couple of seconds - be patient ).
|
||||
|
||||
1. Add Adress
|
||||
2. Start Proces
|
||||
|
||||
---
|
||||
|
||||
Want to talk to us? Write email open@datarhei.org, go to [Support](../support.html) or choose a nickname and join us on <a target= "_blank" href="https://webchat.freenode.net/?channels=datarhei">#datarhei webchat on freenode</a>.
|
||||
|
||||
If you're having a weird problem while developing, see [Known Issues](https://github.com/datarhei/small-restreamer-internal/issues/).
|
||||
15
docs/docs/guides-raspicam.md
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: RaspiCam
|
||||
---
|
||||
|
||||
## RaspiCam
|
||||
|
||||
1. Setup your RaspiCam
|
||||
2. Start the Docker-Image: `docker run -d -v /mnt/restreamer/db:/restreamer/db --restart always --name restreamer -p 8080:8080 -v /opt/vc:/opt/vc --privileged -e "MODE=RASPICAM" datarhei/restreamer-armv7l:latest`
|
||||
3. Put the adress `rtmp://127.0.0.1/live/raspicam.stream` into the "RTMP/RTSP Video Source" field
|
||||
|
||||
---
|
||||
|
||||
Want to talk to us? Write email open@datarhei.org, go to [Support](../support.html) or choose a nickname and join us on <a target= "_blank" href="https://webchat.freenode.net/?channels=datarhei">#datarhei webchat on freenode</a>.
|
||||
|
||||
If you're having a weird problem while developing, see [Known Issues](https://github.com/datarhei/small-restreamer-internal/issues/).
|
||||
28
docs/docs/guides-setup-video-device.md
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
title: guides-setup-video-device
|
||||
---
|
||||
# Setup your video device
|
||||
For the integration of an H.264 -enabled network camera you need the address, on which you can retrieve the video live stream from the camera.
|
||||
Take a look at your camera manual and look after RTSP/RTP.
|
||||
|
||||
For this purpose, please look in the manual of your camera and search for " RTSP " . Alternatively you can find already many templates on the Soleratec company website: [https://www.soleratec.com/support/rtsp/rtsp_listing](https://www.soleratec.com/support/rtsp/rtsp_listing)
|
||||
|
||||
**Two examples:**
|
||||
AXIS: rtsp://ip-address:554/axis-media/media.amp
|
||||
Samsung: rtsp://ip-address:554/profile2/media.smp
|
||||
|
||||
*You can finde the IP address of your camera, if necessary, in the DHCP table of your router. You can use a LAN scanner like http://angryip.org/ which displays you all the devices on your network too if you are unsure what the correct IP is.*
|
||||
|
||||
Next step: Put your rtsp-link in “RTMP/RTSP Video Source” field in the Datarhei/Restreamer-Web-GUI.
|
||||
|
||||

|
||||
|
||||
Last step: Start process
|
||||
|
||||
Once the process has been successfully established , you can open the Datarhei/Restramer player and, if necessary, forward the stream to an external provider the player.
|
||||
|
||||
---
|
||||
|
||||
Want to talk to us? Write email open@datarhei.org, go to [Support](../support.html) or choose a nickname and join us on <a target= "_blank" href="https://webchat.freenode.net/?channels=datarhei">#datarhei webchat on freenode</a>.
|
||||
|
||||
If you're having a weird problem while developing, see [Known Issues](https://github.com/datarhei/small-restreamer-internal/issues/).
|
||||
15
docs/docs/guides-snapshot-interval.md
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: guides-snapshot-interval
|
||||
---
|
||||
#Modify Snapshot Interval
|
||||
|
||||
By default a snapshot is captured every 60 seconds. You can modify this by starting your Docker-Image with the additional command
|
||||
"-e "SNAPSHOT_REFRESH_INTERVAL=60000"
|
||||
|
||||
The 60000 is in msec. If you want to create a snapshot every 10 seconds you have to enter 10000
|
||||
|
||||
---
|
||||
|
||||
Want to talk to us? Write email open@datarhei.org, go to [Support](../support.html) or choose a nickname and join us on <a target= "_blank" href="https://webchat.freenode.net/?channels=datarhei">#datarhei webchat on freenode</a>.
|
||||
|
||||
If you're having a weird problem while developing, see [Known Issues](https://github.com/datarhei/small-restreamer-internal/issues/).
|
||||
18
docs/docs/guides-usb-camera.md
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
title: USB-Cameras
|
||||
---
|
||||
|
||||
## USB-Cameras
|
||||
|
||||
1. Connect you USB-Camera
|
||||
2. Run Docker-Image: `docker run -d --name restreamer -p 8080:8080 -v /mnt/restreamer/db:/restreamer/db --device /dev/video0 datarhei/restreamer-armv7l:latest`
|
||||
3. Install additional software: `docker exec -it restreamer /bin/bash`
|
||||
* apt-get install v4l-utils libv4l-0
|
||||
* ffmpeg -f v4l2 -r 25 -s 1280x720 -i /dev/video0 -f flv rtmp://127.0.0.1:1935/live/usb.stream
|
||||
4. Now you can put the adress `rtmp://127.0.0.1/live/usb.stream` into the "RTMP/RTSP Video Source" field
|
||||
|
||||
---
|
||||
|
||||
Want to talk to us? Write email open@datarhei.org, go to [Support](../support.html) or choose a nickname and join us on <a target= "_blank" href="https://webchat.freenode.net/?channels=datarhei">#datarhei webchat on freenode</a>.
|
||||
|
||||
If you're having a weird problem while developing, see [Known Issues](https://github.com/datarhei/small-restreamer-internal/issues/).
|
||||
67
docs/docs/hints.md
Normal file
@@ -0,0 +1,67 @@
|
||||
---
|
||||
title: Hints
|
||||
---
|
||||
|
||||
# Datarhei Hints ☺
|
||||
|
||||
* [Docker](#docker)
|
||||
* [Kitematic/VirtualBox](#kitematic-virtualbox)
|
||||
|
||||
### Docker
|
||||
|
||||
We prefer starting the Docker image aldways e.g.:
|
||||
|
||||
```sh
|
||||
docker run \
|
||||
-d \
|
||||
--name restreamer \
|
||||
-v /mnt/restreamer/db:/restreamer/db \
|
||||
--restart always \
|
||||
-p 8080:8080 \
|
||||
datarhei/restreamer:latest
|
||||
```
|
||||
|
||||
#### Persistent data
|
||||
If you want to save your configs export the small json database on your device-disc.
|
||||
Add: `-v /mnt/restreamer/db:/restreamer/db`
|
||||
|
||||
#### Restarting on failer
|
||||
The Docker-Daemon is monitoring your container and will start it it again, if it runs into errors. Add:
|
||||
`--restart always`
|
||||
|
||||
#### Starting on boot
|
||||
Small Linux example:
|
||||
|
||||
```sh
|
||||
description "datarhei/ReStreamer"
|
||||
author "datarhei.org"
|
||||
start on filesystem and started docker
|
||||
stop on runlevel [!2345]
|
||||
respawn
|
||||
script
|
||||
/usr/bin/docker start -a restreamer
|
||||
end script
|
||||
```
|
||||
|
||||
1. Exec `vim /etc/init/restreamer.conf` and paste guiding code:
|
||||
2. Save doc
|
||||
3. Start container `--name restreamer`
|
||||
|
||||
### Kitematic / VirtualBox
|
||||
|
||||
1. start your ReStreamer with Kitematic
|
||||
2. open the user-interface and copy the port
|
||||
3. open VirtualBox and and by the running virtualmachnine named "default" on edit
|
||||

|
||||
4. select the tab "network" and click on the button "port-forwarding"
|
||||

|
||||
5. create new rule and paste the copyed port-number into "host-port" and "guest-port"
|
||||

|
||||
6. save this changes by closing alls the windows with "ok"
|
||||
7. open the ReStreamer upon your browser by "http://127.0.0.1:copyed-port"
|
||||
|
||||
---
|
||||
|
||||
Want to talk to us? Write email open@datarhei.org, go to [Support](../support.html) or choose a nickname and join us on <a target= "_blank" href="https://webchat.freenode.net/?channels=datarhei">#datarhei webchat on freenode</a>.
|
||||
|
||||
If you're having a weird problem while developing, see [Known Issues](https://github.com/datarhei/restreamer/issues/).
|
||||
9
docs/docs/index.md
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
title: Welcome
|
||||
---
|
||||
# Welcome to our docs!
|
||||
Welcome to the Datarhei/Restreamer documentation, it should help you to install and configure Restreamer for your device. All other questions round streaming microcosm and technical facts are explained in our [Wiki](../wiki/).
|
||||
|
||||
* want to talk to us? write email open@datarhei.org, go to [Support](../support.html) or choose a nickname and join us on <a target= "_blank" href="https://webchat.freenode.net/?channels=datarhei">#datarhei webchat on freenode</a>.
|
||||
* if you're having a weird problem while developing, see [Known Issues](https://github.com/datarhei/restreamer/issues/)
|
||||
* small installation guide how to start the app with Docker could be found [here](docker-setup.html)
|
||||
72
docs/docs/references-config.md
Normal file
@@ -0,0 +1,72 @@
|
||||
---
|
||||
title: Config
|
||||
---
|
||||
|
||||
# Config
|
||||
|
||||
```json
|
||||
{
|
||||
// default conf
|
||||
"name": "live",
|
||||
// path to jsondb file
|
||||
"jsondb": "db/v1",
|
||||
"auth": {
|
||||
// user-interface username
|
||||
"username": "admin",
|
||||
// user-interface password
|
||||
"password": "datarhei"
|
||||
},
|
||||
"ffmpeg": {
|
||||
"options": {
|
||||
// ffmpeg-options for streams with audio
|
||||
"native_h264":[
|
||||
"-c copy",
|
||||
"-f flv"
|
||||
],
|
||||
// ffmpeg-options for streams without audio (req. for youtube-live)
|
||||
"native_h264_soundless_aac":[
|
||||
"-ar 44100",
|
||||
"-ac 2",
|
||||
"-acodec pcm_s16le",
|
||||
"-f s16le",
|
||||
"-ac 2",
|
||||
"-i /dev/zero",
|
||||
"-c:v copy",
|
||||
"-acodec aac",
|
||||
"-ab 128k",
|
||||
"-f flv"
|
||||
],
|
||||
// ffmpeg-options for the snapshot
|
||||
"snapshot": "-vframes 1"
|
||||
},
|
||||
"monitor": {
|
||||
// time to wait before retry (in ms)
|
||||
"restart_wait": "6000",
|
||||
// count for retry
|
||||
"retries": 10
|
||||
}
|
||||
},
|
||||
"nginx": {
|
||||
// path to nginx-bin
|
||||
"exec": "/usr/local/nginx/sbin/nginx -c /restreamer/conf/nginx.conf",
|
||||
"streaming": {
|
||||
// nginx ip
|
||||
"ip": "127.0.0.1",
|
||||
// nginx rtmp port
|
||||
"rtmp_port": "1935",
|
||||
// nginx rtmp path
|
||||
"rtmp_path": "/live/",
|
||||
// nginx hls port
|
||||
"hls_port": "8080",
|
||||
// nginx hls path
|
||||
"hls_path": "/hls/"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Want to talk to us? Write email open@datarhei.org, go to [Support](../support.html) or choose a nickname and join us on <a target= "_blank" href="https://webchat.freenode.net/?channels=datarhei">#datarhei webchat on freenode</a>.
|
||||
|
||||
If you're having a weird problem while developing, see [Known Issues](https://github.com/datarhei/small-restreamer-internal/issues/).
|
||||
73
docs/docs/references-environment-vars.md
Normal file
@@ -0,0 +1,73 @@
|
||||
---
|
||||
title: Environment Variables
|
||||
---
|
||||
|
||||
# Enviroment Variables
|
||||
|
||||
---
|
||||
|
||||
```sh
|
||||
[INFO] _ _ _ _
|
||||
[INFO] __| | __ _| |_ __ _ _ __| |___ ___(_)
|
||||
[INFO] / _ |/ _ | __/ _ | __| _ |/ _ | |
|
||||
[INFO] | (_| | (_| | || (_| | | | | | | __/| |
|
||||
[INFO] |_____|_____|_||_____|_| |_| |_|____||_|
|
||||
[INFO]
|
||||
[INFO] ReStreamer v0.0.1
|
||||
[INFO]
|
||||
[INFO] ENVIRONMENTS
|
||||
[INFO] ENV "NODEJS_PORT=3000"
|
||||
[INFO] ENV "LOGGER_LEVEL=3"
|
||||
[INFO] ENV "TIMEZONE=Europe/Berlin"
|
||||
[INFO] ENV "SNAPSHOT_REFRESH_INTERVAL=60000"
|
||||
[INFO] ENV "CREATE_HEAPDUMPS=false"
|
||||
[INFO]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Docker example:**
|
||||
|
||||
```sh
|
||||
docker run ...
|
||||
-e "LOGGER_LEVEL=4" \
|
||||
-e "SNAPSHOT_REFRESH_INTERVAL=10000" \
|
||||
...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### NODEJS_PORT
|
||||
|
||||
Webserver port of application
|
||||
|
||||
---
|
||||
|
||||
#### LOGGER_LEVEL
|
||||
|
||||
Logger level to defined, what should be logged
|
||||
|
||||
---
|
||||
|
||||
#### TIMEZONE
|
||||
|
||||
Set the timezone for logging
|
||||
|
||||
---
|
||||
|
||||
#### SNAPSHOT_REFRESH_INTERVAL
|
||||
|
||||
Interval to create a new Snapshot in milliseconds
|
||||
|
||||
---
|
||||
|
||||
#### CREATE_HEAPDUMPS (dev.)
|
||||
|
||||
Create Heapdumps of application (needs g++, make and python to run, please install heapdump with 'npm install heapdump' afterwords)
|
||||
|
||||
---
|
||||
|
||||
Want to talk to us? Write email open@datarhei.org, go to [Support](../support.html) or choose a nickname and join us on <a target= "_blank" href="https://webchat.freenode.net/?channels=datarhei">#datarhei webchat on freenode</a>.
|
||||
|
||||
If you're having a weird problem while developing, see [Known Issues](https://github.com/datarhei/small-restreamer-internal/issues/).
|
||||
|
||||
76
docs/docs/references-http-api.md
Normal file
@@ -0,0 +1,76 @@
|
||||
---
|
||||
title: JSON / HTTP API
|
||||
---
|
||||
|
||||
# JSON / HTTP API
|
||||
|
||||
Small http api for additional webapps
|
||||
|
||||
* [GET /v1/states](#get-v1-states)
|
||||
* [GET /v1/progresses](#get-v1-progresses)
|
||||
|
||||
---
|
||||
|
||||
#### GET /v1/states
|
||||
|
||||
Request:
|
||||
|
||||
```sh
|
||||
GET /v1/states HTTP/1.1
|
||||
Accept: */*
|
||||
```
|
||||
|
||||
Response:
|
||||
|
||||
```sh
|
||||
HTTP/1.1 200 OK
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"repeat_to_local_nginx": {
|
||||
"type": "connected"
|
||||
},
|
||||
"repeat_to_optional_output": {
|
||||
"type": "disconnected"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### GET /v1/progresses
|
||||
|
||||
Request:
|
||||
|
||||
```sh
|
||||
GET /v1/progresses HTTP/1.1
|
||||
Accept: */*
|
||||
```
|
||||
|
||||
Response:
|
||||
|
||||
```sh
|
||||
HTTP/1.1 200 OK
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"repeat_to_local_nginx": {
|
||||
"frames": 12843,
|
||||
"current_fps": 24,
|
||||
"current_kbps": 1417.2,
|
||||
"target_size": 92653,
|
||||
"timemark": "00:08:55.59"
|
||||
},
|
||||
"repeat_to_optional_output": {
|
||||
"frames": 220,
|
||||
"current_fps": 37,
|
||||
"current_kbps": 1246.2,
|
||||
"target_size": 1438,
|
||||
"timemark": "00:00:09.45"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Want to talk to us? Write email open@datarhei.org, go to [Support](../support.html) or choose a nickname and join us on <a target= "_blank" href="https://webchat.freenode.net/?channels=datarhei">#datarhei webchat on freenode</a>.
|
||||
|
||||
If you're having a weird problem while developing, see [Known Issues](https://github.com/datarhei/small-restreamer-internal/issues/).
|
||||
BIN
docs/img/architecture.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
docs/img/bg.png
Normal file
|
After Width: | Height: | Size: 167 KiB |
BIN
docs/img/btn_donate_SM.gif
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
docs/img/embed-player.png
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
docs/img/favicon.ico
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
docs/img/flattr-badge-large.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
docs/img/flattr.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
docs/img/intro_banner.png
Normal file
|
After Width: | Height: | Size: 295 KiB |
BIN
docs/img/intro_docker.png
Normal file
|
After Width: | Height: | Size: 98 KiB |
BIN
docs/img/intro_powerd.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
docs/img/ipchicken.png
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
docs/img/marathon-favicon.ico
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
docs/img/optional-stream.png
Normal file
|
After Width: | Height: | Size: 178 KiB |
BIN
docs/img/screenshot_player.jpg
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
docs/img/screenshot_player_embedded.jpg
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
docs/img/screenshot_player_iframecode.jpg
Normal file
|
After Width: | Height: | Size: 88 KiB |
BIN
docs/img/screenshot_player_snapshot.jpg
Normal file
|
After Width: | Height: | Size: 81 KiB |
BIN
docs/img/setup-video-device.png
Normal file
|
After Width: | Height: | Size: 171 KiB |
BIN
docs/img/twitter_transparent.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
docs/img/twitterbutton.png
Normal file
|
After Width: | Height: | Size: 9.5 KiB |
BIN
docs/img/twitterbutton_sm.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
docs/img/vbox-port-1.png
Normal file
|
After Width: | Height: | Size: 121 KiB |
BIN
docs/img/vbox-port-2.png
Normal file
|
After Width: | Height: | Size: 95 KiB |
BIN
docs/img/vbox-port-3.png
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
docs/img/vlc_screenshot.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
docs/img/youtube_drgui.png
Normal file
|
After Width: | Height: | Size: 287 KiB |
BIN
docs/img/youtube_rtmp.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
32
docs/index.md
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
title: Restreamer
|
||||
---
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-center" style="color:#fff;">
|
||||
<h1>Live video streaming on your website without <br />streaming providers</h1>
|
||||
<img src="img/intro_banner.png" style="width: 85%;">
|
||||
<p class="lead">datarhei/ReStreamer allows smart free video streaming in real time. Stream H.264 video of IP cameras live to your website. Pump your live video to YouTube, Ustream, Twitch, Livestream.com or any other streaming-solutions e.g. Wowza-Streaming-Engine. Our Docker-Image is easy to install and runs on Linux, MacOS and Windows. datarhei/ReStreamer can be perfectly combined with single-board computers like Raspberry Pi and Odroid.</p>
|
||||
<p class="lead">It is free (licensed under Apache 2.0) and you can use it for any purpose, personal or commercial.</p>
|
||||
<p class="btn-row">
|
||||
<a class="btn btn-success" href="docs/">Learn more</a>
|
||||
<a class="btn btn-success" href="docs/docker-setup.html">Docker quick start</a>
|
||||
</p>
|
||||
<hr class="hr-landingpage" />
|
||||
<h3>Multiplattform support through Docker</h3>
|
||||
<img src="img/intro_docker.png" style="width: 95%;">
|
||||
<p>Tested on: OSX 10.10/10.11, Raspberry Pi 1/2, Odroid U3</p>
|
||||
<p class="btn-row">
|
||||
<a class="btn btn-success" href="docs/docker-setup.html#osx-windows">OSX/Windows Setup</a>
|
||||
<a class="btn btn-success" href="docs/docker-setup.html#linux">Linux AMD64 Setup</a>
|
||||
<a class="btn btn-success" href="docs/docker-setup.html#armv6l">Linux ARMv6/v7 Setup</a>
|
||||
</p>
|
||||
<hr class="hr-landingpage" />
|
||||
<h3>Powered by...</h3>
|
||||
<img src="img/intro_powerd.png" style="width: 95%;">
|
||||
<hr class="hr-landingpage" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="content" ui-view >
|
||||
</div>
|
||||
10
docs/support.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
layout: pages
|
||||
tab: support
|
||||
title: Getting Support for Datarhei/Restreamer
|
||||
---
|
||||
# Getting Support for Datarhei/Restreamer
|
||||
|
||||
Want to talk to us? Write email open@datarhei.org, go to [Support](../support.html) or choose a nickname and join us on <a target= "_blank" href="https://webchat.freenode.net/?channels=datarhei">#datarhei webchat on freenode</a>.
|
||||
|
||||
If you're having a weird problem while developing, see [Known Issues](https://github.com/datarhei/restreamer/issues).
|
||||
6
docs/wiki/adsl_en.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
title: adsl_en
|
||||
---
|
||||
######[Network](/restreamer/wiki/networktechnology_en.html) > ADSL
|
||||
#ADSL
|
||||
Asymmetric digital subscriber line (ADSL) is a type of digital subscriber line (DSL) technology, a data communications technology that enables faster data transmission over copper telephone lines than a conventional voiceband modem can provide. ADSL differs from the less common symmetric digital subscriber line (SDSL). Bandwidth (and bit rate) is greater toward the customer premises (known as downstream) than the reverse (known as upstream). This is why it is called asymmetric. Providers usually market ADSL as a service for consumers to receive Internet access in a relatively passive mode: able to use the higher speed direction for the download from the Internet but not needing to run servers that would require high speed in the other direction. <a href="https://en.wikipedia.org/wiki/Asymmetric_Digital_Subscriber_Line" target="_blank">Wikipedia</a>
|
||||
6
docs/wiki/api_en.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
title: api_en
|
||||
---
|
||||
######[Basic Know How](/restreamer/wiki/basic_know_how.html) > [Videosoftware](/restreamer/wiki/videosoftware_en.html) > API
|
||||
#API
|
||||
In computer programming, an application programming interface (API) is a set of routines, protocols, and tools for building software applications. An API expresses a software component in terms of its operations, inputs, outputs, and underlying types, defining functionalities that are independent of their respective implementations, which allows definitions and implementations to vary without compromising the interface. A good API makes it easier to develop a program by providing all the building blocks, which are then put together by the programmer. <a href="https://en.wikipedia.org/wiki/Application_programming_interface" target="_blank">Wikipedia</a>.
|
||||
8
docs/wiki/autofocus_en.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: autofocus_en
|
||||
---
|
||||
######[Camera](/restreamer/wiki/cameratechnology_en.html) > Autofocus
|
||||
#Autofocus
|
||||
An autofocus (or AF) optical system uses a sensor, a control system and a motor or tunable optical element to focus automatically or on a manually selected point or area. An electronic rangefinder has a display instead of the motor; the adjustment of the optical system has to be done manually until indication. Autofocus methods are distinguished by their type as being either active, passive or hybrid variants. <a href="https://en.wikipedia.org/wiki/Autofocus" target="_blank">Wikipedia</a>
|
||||
|
||||
**Datarhei Hint** ☺ ► Basically, the autofocus should be parked if full automatic is avaiable, as otherwise problems occur at night or in fog. Once the automatic no longer finds the subject again to focus, the auto focus function starts up and down what results an ugly video. Try your hand at a preset with autofocus and then set the autofocus off and save your preset.
|
||||
5
docs/wiki/axiscommunications_en.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: axiscommunications_en
|
||||
---
|
||||
######[Basic Know How](/restreamer/wiki/basic_know_how.html) > [Camera Manufacturer](/restreamer/wiki/cameramanufacturer_en.html) > AXIS Communications
|
||||
#AXIS Communications
|
||||
21
docs/wiki/basic_know_how.md
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
title: handbookbasicknowhow_en
|
||||
---
|
||||
#Basic Know How
|
||||
Overview with basic information on everything you may run into when dealing with Datarhei/Restreamer. The list is always further completed in the course of time.
|
||||
|
||||
**Datarhei Hint ☺** ► you can find small hints regularly with tips and tricks or for Datarhei/Restreamer relevant information among the explanations.
|
||||
|
||||
**List of video technical terms**
|
||||
For advanced users and those interested you can find an extensive <a href="list of video technical terms of Wikipedia" target="_blank">Wikipedia</a>.
|
||||
|
||||
#####1. [Open Source Software](/restreamer/wiki/oss_en.html)
|
||||
#####2. [Videoplayer](/restreamer/wiki/videoplayer_en.html)
|
||||
#####3. [Cameramanufacturer](/restreamer/wiki/cameramanufacturer_en.html)
|
||||
#####4. [Transport Protocol](/restreamer/wiki/transportprotocol_en.html)
|
||||
#####5. [Streaming Server](/restreamer/wiki/streamingserver_en.html)
|
||||
#####6. [Videosoftware](/restreamer/wiki/videosoftware_en.html)
|
||||
#####7. [Videosurveillance](/restreamer/wiki/videosurveillance_en.html)
|
||||
#####8. [Streaming Service](/restreamer/wiki/streamingservice_en.html)
|
||||
#####9. [Webcamportals](/restreamer/wiki/webcamportals_en.html)
|
||||
#####10. [Monetization](/restreamer/wiki/monetization_en.html)
|
||||
22
docs/wiki/basic_know_how/cameratechnology_en.md
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
title: cameratechnology_en
|
||||
---
|
||||
#Camera
|
||||
You will find the most important terms associated with cameras in this wiki section.
|
||||
|
||||
**Datarhei Hint** ☺ ► you can find regular small hints and tips & tricks or relevant for Datarhei information among the explanations.
|
||||
|
||||
#####1. [Live Streaming](/restreamer/wiki/livestreaming_en.html)
|
||||
#####2. [Video Compression](/restreamer/wiki/videocompression_en.html)
|
||||
#####3. [MJPEG](/restreamer/wiki/mjpeg_en.html)
|
||||
#####4. [H.264](/restreamer/wiki/h264_en.html)
|
||||
#####5. [Iris Control](/restreamer/wiki/iriscontrol.html)
|
||||
#####6. [Autofocus](/restreamer/wiki/autofocus.html)
|
||||
#####7. [Time-Block](/restreamer/wiki/timeblock_en.html)
|
||||
#####8. [PTZ](/restreamer/wiki/ptz_en.html)
|
||||
#####9. [Snapshot](/restreamer/wiki/snapshot_en.html)
|
||||
#####10. [Time Lapse](/restreamer/wiki/timelapse_en.html)
|
||||
#####11. [Frame Rate](/restreamer/wiki/framerate_en.html)
|
||||
#####12. [iFrame/GOP/GOV](/restreamer/wiki/iframe_en.html)
|
||||
#####13. [Video Resolution](/restreamer/wiki/videoresolution_en.html)
|
||||
#####14. [Encoding](/restreamer/wiki/encoding_en.html)
|
||||
85
docs/wiki/basic_know_how/index.md
Normal file
@@ -0,0 +1,85 @@
|
||||
---
|
||||
title: handbookbasicknowhow_en
|
||||
---
|
||||
#Basic Know How
|
||||
Overview with basic information on everything you may run into when dealing with Datarhei/Restreamer. The list is always further completed in the course of time.
|
||||
|
||||
**Datarhei Hint ☺** ► you can find small hints regularly with tips and tricks or for Datarhei/Restreamer relevant information among the explanations.
|
||||
|
||||
**List of video technical terms**
|
||||
For advanced users and those interested you can find an extensive <a href="list of video technical terms of Wikipedia" target="_blank">Wikipedia</a>.
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<hr>
|
||||
<ul class="list-unstyled">
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/oss_en.html">
|
||||
1. Open Source Software
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/videoplayer_en.html">
|
||||
2. Videoplayer
|
||||
</a>
|
||||
</li
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/cameratechnology_en.html">
|
||||
3. Cameratechnology
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/cameramanufacturer_en.html">
|
||||
4. Cameramanufacturer
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/networktechnology_en.html">
|
||||
5. Network Technology
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/transportprotocol_en.html">
|
||||
6. Transport Protocol
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/streamingserver_en.html">
|
||||
7. Streamingserver
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/videosoftware_en.html">
|
||||
8. Videosoftware
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/videosurveillance_en.html">
|
||||
9. Videosurveillance
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/streamingservice_en.html">
|
||||
10. Streaming Service
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/webcamportals_en.html">
|
||||
11. Webcamportals
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ site.baseurl }}/wiki/basic_know_how/monetization_en.html">
|
||||
12. Monetization
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
{{ content }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
39
docs/wiki/basic_know_how/networktechnology_en.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
title: networktechnology_en
|
||||
---
|
||||
#Network
|
||||
Who operates with live video streaming will will get in contact with of hardware and misc IT technologies. We have put the main parts together for you:
|
||||
|
||||
##### 1. Hardware
|
||||
* [IP Camera](/restreamer/wiki/ipcamera_en.html)
|
||||
* [USB-Camera](/restreamer/wiki/usbcamera_en.html)
|
||||
* [POE](/restreamer/wiki/poe_en.html)
|
||||
* [Network Power Socket](/restreamer/wiki/networkpowersocket_en.html)
|
||||
* [SMS Power Socket](/restreamer/wiki/smspowersocket_en.html)
|
||||
* [Router](/restreamer/wiki/router_en.html)
|
||||
* [Network Switch](/restreamer/wiki/networkswitch.html)
|
||||
|
||||
##### 2. Internet Access
|
||||
* [Firewall](firewall_en.html)
|
||||
* [Port 1935](/restreamer/wiki/port1935_en.html)
|
||||
* [Port 554](/restreamer/wiki/port554_en.html)
|
||||
* [ADSL](/restreamer/wiki/adsl_en.html)
|
||||
* [SDSL](/restreamer/wiki/sdsl_en.html)
|
||||
* [VDSL](/restreamer/wiki/vdsl_en.html)
|
||||
* [LTE](/restreamer/wiki/lte_en.html)
|
||||
* [Data Volume](/restreamer/wiki/datavolume.html)
|
||||
* [Upload](/restreamer/wiki/upload_en.html)
|
||||
* [Download](/restreamer/wiki/download_en.html)
|
||||
|
||||
##### 3. Server
|
||||
* [Webhosting](/restreamer/wiki/webhosting_en.html)
|
||||
* [Rootserver](/restreamer/wiki/rootserver_en.html)
|
||||
|
||||
##### 4. Software Development
|
||||
* [Node.js](/restreamer/wiki/nodejs_en.html)
|
||||
* [Docker](/restreamer/wiki/docker_en.html)
|
||||
|
||||
##### 5. Miscellaneous
|
||||
* [Dynamic DNS](/restreamer/wiki/dynamicdns_en.html)
|
||||
* [Dynamic IP DHCP](/restreamer/wiki/dynamicip_en.html)
|
||||
* [Static IP](/restreamer/wiki/staticip_en.html)
|
||||
5
docs/wiki/brickcom_en.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: brickcom_en
|
||||
---
|
||||
######[Basic Know How](/restreamer/wiki/basic_know_how.html) > [Camera Manufacturer](/restreamer/wiki/cameramanufacturer_en.html) > Brickcom
|
||||
#Brickcom
|
||||
17
docs/wiki/buyersguide_en.md
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: buyersguide_en
|
||||
---
|
||||
#Buyersguide
|
||||
You want to buy you a network camera and want to know what is needed for operation with Datarhei/Restreamer?
|
||||
|
||||
The following basic data should be a function in your camera:
|
||||
**1. [RTSP](rtsp en) protocol**
|
||||
**2. [H.264](h.264 en) video output**
|
||||
**3. Network connection via WiFi / LAN / 3G / 4G / WAN**
|
||||
|
||||
**Datarhei Hint** ☺ ► 720p (1280x720 px) resolution is a good measure of streaming video on the internet. YouTube & Ustream accept any video live streams at 720p or higher.
|
||||
|
||||
#####Camera hardware list and equipment for your Datarhei/Restreamer project in the [Datarhei/Restreamer wiki](shop de).
|
||||
|
||||
**Build your own DIY IP-Camera with Datarhei/Restreamer**
|
||||
If you like to be a part of the global DIY community try building your own ip-camera with a Raspberry PI and Datarhei/Restreamer. [Some great tutorials could be found here.](DIY-IP-Kamera)
|
||||
17
docs/wiki/camerabuyersguide_en.md
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: camerabuyersguide_en
|
||||
---
|
||||
#Camera Buyers Guide
|
||||
You want to buy you a network camera and want to know what is needed for operation with Datarhei/Restreamer?
|
||||
|
||||
The following basic data should be a function in your camera:
|
||||
**1. [RTSP](/restreamer/wiki/rtsp_en_camerabuyersguide.html) protocol**
|
||||
**2. [H.264](/restreamer/wiki/h264_en_camerabuyersguide.html) video output**
|
||||
**3. Network connection via WiFi / LAN / 3G / 4G / WAN**
|
||||
|
||||
**Datarhei Hint** ☺ ► 720p (1280x720 px) resolution is a good measure of streaming video on the internet. YouTube & Ustream accept any video live streams at 720p or higher.
|
||||
|
||||
#####Camera hardware list and equipment for your Datarhei/Restreamer project in the [Datarhei/Restreamer wiki](/restreamer/wiki/guide-buy-hardware.html).
|
||||
|
||||
**Build your own DIY IP-Camera with Datarhei/Restreamer**
|
||||
If you like to be a part of the global DIY community try building your own ip-camera with a Raspberry PI and Datarhei/Restreamer. [Some great tutorials could be found here.](/restreamer/wiki/diy-stuff.html)
|
||||
18
docs/wiki/cameramanufacturer_en.md
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
title: cameramanufacturer_en
|
||||
---
|
||||
######[Basic Know How](/restreamer/wiki/basic_know_how.html) > Camera Manufacturer
|
||||
#Camera Manufacturer
|
||||
For good video streaming you need an IP camera or a USB camera that is suitable for streaming. An almost limitless range of hardware in every price category is available. A distinction is made in static and PTZ cameras. Here again, in indoor and outdoor ready cameras.
|
||||
It is not a good decision to make outdoor capable to a indoor cameras because special technologies such as: Auto-Iris, DC-iris, auto-focus or heating re not built for indoor cameras.
|
||||
|
||||
Here is a list of the largest provider of commercial IP cameras, there are good manufacturers:
|
||||
|
||||
* [Mobotix](/restreamer/wiki/mobotix_en.html)
|
||||
* [AXIS Communications](/restreamer/wiki/axiscommunications_en.html)
|
||||
* [SONY](/restreamer/wiki/sony_en.html)
|
||||
* [JVC](/restreamer/wiki/jvc_en.html)
|
||||
* [Brickcom](/restreamer/wiki/brickcom_en.html)
|
||||
* [Samsung](/restreamer/wiki/samsung_en.html)
|
||||
|
||||
If you have not found a suitable network camera with us, or would want to use your own manufacturer, we have for you a [Hint Page](/restreamer/wiki/camerabuyersguide_en.html) created on what you need to look for when buying, so that your new camera works well with Datarhei/Smallstreamer.
|
||||
22
docs/wiki/cameratechnology_en.md
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
title: cameratechnology_en
|
||||
---
|
||||
#Camera
|
||||
You will find the most important terms associated with cameras in this wiki section.
|
||||
|
||||
**Datarhei Hint** ☺ ► you can find regular small hints and tips & tricks or relevant for Datarhei information among the explanations.
|
||||
|
||||
#####1. [Live Streaming](/restreamer/wiki/livestreaming_en.html)
|
||||
#####2. [Video Compression](/restreamer/wiki/videocompression_en.html)
|
||||
#####3. [MJPEG](/restreamer/wiki/mjpeg_en.html)
|
||||
#####4. [H.264](/restreamer/wiki/h264_en.html)
|
||||
#####5. [Iris Control](/restreamer/wiki/iriscontrol_en.html)
|
||||
#####6. [Autofocus](/restreamer/wiki/autofocus_en.html)
|
||||
#####7. [Time-Block](/restreamer/wiki/timeblock_en.html)
|
||||
#####8. [PTZ](/restreamer/wiki/ptz_en.html)
|
||||
#####9. [Snapshot](/restreamer/wiki/snapshot_en.html)
|
||||
#####10. [Time Lapse](/restreamer/wiki/timelapse_en.html)
|
||||
#####11. [Frame Rate](/restreamer/wiki/framerate_en.html)
|
||||
#####12. [iFrame/GOP/GOV](/restreamer/wiki/iframe_en.html)
|
||||
#####13. [Video Resolution](/restreamer/wiki/videoresolution_en.html)
|
||||
#####14. [Encoding](/restreamer/wiki/encoding_en.html)
|
||||
8
docs/wiki/datavolume_en.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: datavolume_en
|
||||
---
|
||||
######[Network](/restreamer/wiki/networktechnology_en.html) > Data Volume
|
||||
#Data Volume
|
||||
The amount of data is a measure of the amount of data. The basic unit of data amount is the bit. Data are used for storing and transmitting information, bearing in mind that the information content of a message is not equal to the amount of data, even if is often used in this context, the word information when data are meant. The information content, in contrast to the amount of data can not be read immediately, and there are different approaches to determine him. The amount of data that is stored in a file is referred to as file size. For storage media, the amount of data to indicate the free and the maximum storable data volume (capacity) is used. <a href="https://de.wikipedia.org/wiki/Datenmenge" target="_blank">Wikipedia</a>
|
||||
|
||||
**Datarhei Hint** ☺ ► Useful informatoin for dataset / data volume of a live stream can be found [Topic Video-Compression](/restreamer/wiki/videocompression.html)!
|
||||
20
docs/wiki/deutsch.md
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
title: Deutsch
|
||||
---
|
||||
|
||||
#####1. [[FAQ - Frequently Asked Questions|FAQ Deutsch]]
|
||||
Viele Fragen kurz beantwortet!
|
||||
#####2. [[Installation von Datarhei/Restreamer|Installation Datarhei]]
|
||||
Wie installiere ich Datarhei/Restreamer, um es mit meiner Hardware zu nutzen?
|
||||
#####3. [[Allgemeine Anleitungen|Anleitungen]]
|
||||
Wie finde ich den RTSP Links für meine Kamera? Wie teste ich meine Stream mit VLC? Wie stream ich mit Datarhei/Restreamer zu Youtube oer Ustream? Und wie bau ich den Snapshot in meine Webseite ein? Hier wird Dir geholfen...
|
||||
#####4. [[Kamera Kaufberatung|Kamera Kaufberatung]]
|
||||
Du willst Dir eine Netzwerkkamera kaufen um endlich auch ein Projekt mit Datarhei/Restreamer umsetzen zu können. Auf was Du beim kauf deiner IP-Kamera achten musst findest du hier.
|
||||
#####5. [[Partner Streaming|Partner Streaming]]
|
||||
Du hast großes vor und benötigst professionelles Streaming für große Zuschauermengen oder anspruchsvolle Kunden. Hier findest du zuverlässige Partner, die dich in dein Ideen unterstützen können.
|
||||
#####6. [[Leitfaden Basis Wissen|Leitfaden Basis Wissen]]
|
||||
Du bist interessiert an Livestreaming und Webvideo. Hier findest du Informationen und weiterführende Links zum Thema um dein Wissen zu vertiefen – Wird nicht zum Betrieb von Datarhei/Restreamer benötigt, schadet aber nicht.
|
||||
#####7. [[Datarhei Unterstützen|Datarhei Unterstützen]]
|
||||
Unterstütze Datarhei und helfe das Projekt am leben zu halten.
|
||||
|
||||
|
||||
17
docs/wiki/diy-stuff.md
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
Title: diy-stuff
|
||||
---
|
||||
#Things for playing around - Have Fun!
|
||||
|
||||
####1. DIY IP-Camera
|
||||
http://www.codeproject.com/Articles/665518/Raspberry-Pi-as-low-cost-HD-surveillance-camera
|
||||
####2. DIY PT-Camera
|
||||
http://www.sonsoftone.com/?page_id=287
|
||||
http://makezine.com/projects/raspberry-eye-remote-servo-cam/
|
||||
####3. Upgrading NoIR with Zoom und Focus
|
||||
https://www.thingiverse.com/thing:439386
|
||||
http://myrobotlab.org/content/upgrading-raspberry-pi-camera
|
||||
####5. DIY Raspi-Cam with 3G and Solarpower
|
||||
http://projectsmax246.blogspot.co.uk/2013/01/webcam-over-3g-with-raspberry-pi.html
|
||||
####6. PTZ with Raspberry Pi
|
||||
http://emmanuelgranatello.blogspot.it/2013/03/ptz-camera-wifi-onraspberry-pi.html
|
||||
8
docs/wiki/docker_en.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: docker_en
|
||||
---
|
||||
######[Network](/restreamer/wiki/networktechnology_en.html) > Docker
|
||||
#Docker
|
||||
Docker is an open-source project that automates the deployment of applications inside software containers, by providing an additional layer of abstraction and automation of operating-system-level virtualization on Linux. Docker uses resource isolation features of the Linux kernel such as cgroups and kernel namespaces to allow independent "containers" to run within a single Linux instance, avoiding the overhead of starting and maintaining virtual machines. <a href="https://en.wikipedia.org/wiki/Docker_(software)" target="_blank">Wikipedia</a>
|
||||
|
||||
**Datarhei Hint ☺** ► How to run docker read our [wiki](https://github.com/datarhei/small-restreamer-internal/wiki/Smart-Streamer-Installation-EN) or in readme files that come with the software download.
|
||||
6
docs/wiki/download_en.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
title: download_en
|
||||
---
|
||||
######[Network](/restreamer/wiki/networktechnology_en.html) > Download
|
||||
#Download
|
||||
Download is the opposite of [Upload](/restreamer/wiki//upload_en.html) and doesnt matter for your live stream with Datarhei, cause you want to send large amounts of data during the streaming and want not to receive data.
|
||||
18
docs/wiki/dynamicdns_en Kopie.md
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
title: dynamicdns_en
|
||||
---
|
||||
#Dynamic DNS
|
||||
Dynamic DNS (DDNS or DynDNS) is a method of automatically updating a name server in the Domain Name System (DNS), often in Not Real Time, with the active DDNS configuration of its configured hostnames, addresses or other information.
|
||||
The term is used to describe two different concepts. The first is "dynamic DNS updating" which refers to systems that are used to update traditional DNS records without manual editing. These mechanisms are explained in RFC 2136, and use the TSIG mechanism to provide security. The second kind of dynamic DNS permits lightweight and immediate updates often using an update client, which do not use the RFC2136 standard for updating DNS records. These clients provide a persistent addressing method for devices that change their location, configuration or IP address frequently. <a href="https://en.wikipedia.org/wiki/Dynamic_DNS" target="_blank">Wikipedia</a>
|
||||
|
||||
Popular service on the Internet are DynDNS and No-IP. While <a href="http://DynDNS.com" target="_blank">Dyn DNS</a> is no longer free, <a href="https://www.noip.com/" target="_blank">No-IP</a> still has a free basic account, which you even have to keep alive in the month with one click or two clicks. Owners a Fritz box can house your own DNS Service <a href="https://www.myfritz.net/" target="_blank">MyFritz.net</a> directly in their Fritzbox GUI.
|
||||
|
||||
Other free services:
|
||||
- **TIP** 100% free and no monthly activate needed! <a href="https://secure.selfhost.de/cgi-bin/selfhost?p=cms&article=free&CGISESSID=880a879a82cdaf3fa39eb3fe506a5773" target="_blank">selfhost.de</a>
|
||||
- **TIP** 100% free <a href="http://www.www.changeip.com" target="_blank">www.changeip.com</a>
|
||||
- <a href="https://www.dnsexit.com/Direct.sv?cmd=dynDns" target="_blank">DNSExit</a>
|
||||
- <a href="http://www.dyns.cx/services/#free1" target="_blank">Dynns</a>
|
||||
- <a href="https://freedns.afraid.org/" target="_blank">Free DNS</a>
|
||||
- <a href="https://www.dtdns.com/ <" target="_blank">DTDNS</a>
|
||||
|
||||
**Datarhei Hint** ☺ ► Many routers have <a href="https://www.noip.com/" target="_blank">No-IP</a>, implemented already as preset. The simplest method is to use this service in the router, if the above-mentioned services are not to be found in your router. You can of course always fit each of the services in your Datarhei/Restreamer, but it's something SSH knowledge required for this purpose. Simple instructions are available in all languages penny via Google search.
|
||||
9
docs/wiki/dynamicdns_en.md
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
title: dynamicdns_en
|
||||
---
|
||||
######[General Instructions](/restreamer/wiki/general_instructions_en.html) > Dynamic DNS
|
||||
#Dynamic DNS
|
||||
Dynamic DNS (DDNS or DynDNS) is a method of automatically updating a name server in the Domain Name System (DNS), often in Not Real Time, with the active DDNS configuration of its configured hostnames, addresses or other information.
|
||||
The term is used to describe two different concepts. The first is "dynamic DNS updating" which refers to systems that are used to update traditional DNS records without manual editing. These mechanisms are explained in RFC 2136, and use the TSIG mechanism to provide security. The second kind of dynamic DNS permits lightweight and immediate updates often using an update client, which do not use the RFC2136 standard for updating DNS records. These clients provide a persistent addressing method for devices that change their location, configuration or IP address frequently. <a href="https://en.wikipedia.org/wiki/Dynamic_DNS" target="_blank">Wikipedia</a>
|
||||
|
||||
**Datarhei Hint** ☺ ► Most routers are set as the default on DHCP. How your machine is configured, you can see after a login with your user data in the web interface of your router. Here you also all connected devices with IP display. Instructions you'll find in the manual of your device.
|
||||
8
docs/wiki/dynamicip_en.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: dynamicip_en
|
||||
---
|
||||
######[Network](/restreamer/wiki/networktechnology_en.html) > Dynamic IP
|
||||
#Dynamic IP
|
||||
The Dynamic Host Configuration Protocol (DHCP) is a standardized network protocol used on Internet Protocol (IP) networks for dynamically distributing network configuration parameters, such as IP addresses for interfaces and services. With DHCP, computers request IP addresses and networking parameters automatically from a DHCP server, reducing the need for a network administrator or a user to configure these settings manually. <a href="https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol" target="_blank">Wikipedia</a>
|
||||
|
||||
**Datarhei Hint** ☺ ► Most routers are set as the default on DHCP. How your machine is configured, you can see after a login with your user data in the web interface of your router. Here you also all connected devices with IP display. Instructions you'll find in the manual of your device.
|
||||
4
docs/wiki/earthcam_en.md
Normal file
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: earthcam_en
|
||||
---
|
||||
#Earthcam.com
|
||||
14
docs/wiki/embeddediframe_en.md
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
title: embeddediframe_en
|
||||
---
|
||||
######[General Instructions](/restreamer/wiki/general_instructions_en.html) > How to embed Snapshot
|
||||
#How to embed Snapshot
|
||||
To embed your Snapshot follow the next steps:
|
||||
|
||||
1. Open your Datarhei/Restreamer GUI via local IP of your Datarhei/Restreamer device in the webbrowser of you choice
|
||||
2. Open the Datarhei/Restreamer player (marked red in screenshot) 
|
||||
3. The HTML Snippet for the video iframe code will be generated under the videoplayer (marked red in screenshot). Add your own dynamic IP and put it on your own website. 
|
||||
4. Datarhei/Restreamer generates the html tag with your public internet IP. You can add your own dynamic IP like: `scr="http://123.245.789.123:8008/player.html"` with your [[dynamic IP|dynamic IP]] - for example if your dynamic ip is: foobar.zapto.org the Datarhei/Restreamer link has to be: `http://foobar.zapto.org:8080`. The complete html tag should be like this: `<img src="http://foobar.zapto.org:/player.html" width="800" height="450">`
|
||||
5. Change the size over width and height. **Be patient of the correct aspect ratio for a pretty video!***
|
||||
|
||||
**Datarhei Hint ☺** ► Do not forget forwarding the TCP Port 8080 and 1934 ([Keyword: Porforwarding](/restreamer/wiki/portforwarding_en.html)) to use the html code successful on your website. How to do portforwarding should be explained in the manual of your router.
|
||||
13
docs/wiki/embeddsnapshot_en.md
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
title: embeddsnapshot_en
|
||||
---
|
||||
######[General Instructions](/restreamer/wiki/general_instructions_en.html) > Embedd Snapshot
|
||||
#In the following discription we explain how to embed the static snapshot.
|
||||
|
||||
1. Open the Datarhei GUI with the local IP of Datarhei in your Browser.
|
||||
2. Open the player (marked red in the following Screenshot) 
|
||||
3. You will find the embedd html code under the videoplayer (marked red on the screenshot). Add the HTML with your dynamic IP and put it on your website.
|
||||
4. Datarhei generates the html tag with your public internet IP. You can add your own dynamic IP like: `<img src="http://123.456.789.123:8080/images/live.jpg"` with your [[dynamic IP|dynamic IP]] - for example if your dynamic ip is: foobar.zapto.org the Datarhei link has to be: `http://foobar.zapto.org:8080`. The complete html tag should be like this: `<img src="http://foobar.zapto.org:8080/images/live.jpg" width="800" height="450">`
|
||||
5. The snapshot will be updated default every 60 seconds. You could change this value in the configuration file of Datarhei. [How to change Snapshotinterval](/restreamer/wiki/modifysnapshotinterval)
|
||||
|
||||
**Datarhei Hint ☺** ► Do not forget to forward HTTP Port 8080 and 1934 for a successful Snapshot (Keyword: Porforwarding). Take a look at the manual of your router if you do not know how to do it.
|
||||
10
docs/wiki/encoding_en.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: encoding_en
|
||||
---
|
||||
######[Camera](/restreamer/wiki/cameratechnology_en.html) > Encoding
|
||||
#Encoding
|
||||
In connection with "Video" "Encoding" means a process in which an existing video format is converted into another. Normaly , a video encoder hardware or software is used.
|
||||
|
||||
<a href="http://www.heywatchencoding.com/what-is-video-encoding" target="_blank">Good article about Encoding.</a>
|
||||
|
||||
**Datarhei Hint ☺** ► If you want to encode with Datarhei take care that your hardware has enough CPU-Power available. We will gladly help you look for the encoding to the correct settings.
|
||||
10
docs/wiki/encoding_en_generalinstructions.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: encoding_en
|
||||
---
|
||||
######[General Instructions](/restreamer/wiki/general_instructions_en.html) > Encoding
|
||||
#Encoding
|
||||
In connection with "Video" "Encoding" means a process in which an existing video format is converted into another. Normaly , a video encoder hardware or software is used.
|
||||
|
||||
<a href="http://www.heywatchencoding.com/what-is-video-encoding" target="_blank">Good article about Encoding.</a>
|
||||
|
||||
**Datarhei Hint ☺** ► If you want to encode with Datarhei take care that your hardware has enough CPU-Power available. We will gladly help you look for the encoding to the correct settings.
|
||||
18
docs/wiki/english.md
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
title: english
|
||||
---
|
||||
#English
|
||||
#####1. [FAQ - Frequently Asked Questions](/restreamer/wiki/faq_en.html)
|
||||
Short answers on many questions.
|
||||
#####2. [Datarhei/Restreamer Installation](/restreamer/wiki/installation_en.html)
|
||||
How to install Datarhei/Restreamer on my hardware
|
||||
#####3. [General Instructions](/restreamer/wiki/generalinstructions_en.html)
|
||||
Where is the RTSP URL of my IP-Cam? How can I test a stream with VLC? How to stream with Datarhei/Restreamer to YouTube or Ustream? How to catch a snapshot? Get some help in this section.
|
||||
#####4. [Kamera Buyers Guide](/restreamer/wiki/camerabuyersguide_en.html)
|
||||
You want to buy a IP-Camera to start a project with Datarhei/Restreamer. What important things to take care of you - here.
|
||||
#####5. [Partner Streaming](/restreamer/wiki/partnerstreaming_en.html)
|
||||
You are planning a big thing. Contact some of our partners for a smooth implementation.
|
||||
#####6. [Handbook Basic Knowledge](/restreamer/wiki/handbookbasicknowhow_en.html)
|
||||
You want to dive deeper into livestreaming and webvideo? Expert information for to get deep. Not necessary but would not be a miss...
|
||||
#####7. [Support Datarhei](/restreamer/wiki/supportdatarhei_en.html)
|
||||
Find out how to support the Datarhei/Restreamer keep the project alive in the future.
|
||||
48
docs/wiki/faq_en.md
Normal file
@@ -0,0 +1,48 @@
|
||||
---
|
||||
title: faq_en
|
||||
---
|
||||
#Frequently Asked Questions
|
||||
#####1. What's Datarhei/Restreamer?
|
||||
► Datarhei/Restreamer is software which allows you to do free real-time video streaming for example to transfer video signals of webcams or other video-inputs direct on your website! You can get your own Datarhei/Restreamer streaming provider.
|
||||
#####2. How do I make video streaming without Datarhei/Restreamer?
|
||||
► The classic way is the data transfer with a streaming provider that collects monthly fees. Some services are supported by advertising, other additionally sell you own hardware then sell even your live stream, as result you lose the control of your video signal. The added value of so-called "Content syndication" are not measurable for you in most cases.
|
||||
Datarhei/Restreamer allows you to transfer H.264 video in TV quality on your own website without these middlemen. The best part is, you're entitled to choose your hardware for your self, the use is without monthly charges and you remain in possession of your data!
|
||||
#####3. For whom is it suitable?
|
||||
► Datarhei/Restreamer is suitable for all kinds of live video. Private, professional Webcams for events or tourism marketing, in-house TV in hotels or restaurants, industrial monitoring or safety monitoring or surveillance are just a few applications. Your imagination knows no boundaries. The physical limit is at the attendances. For a lot of crowds and professional applications you need technology in the background on which you can easily connect you with Datarhei/Restreamer.
|
||||
#####4. What is different from the "others"?
|
||||
► Datarhei/Restreamer has no monthly fees and the streaming is completely free, because it uses your own internet connection. You're going to be your own streaming provider. You can really do whatever you want with Datarhei/Restreamer. It is free to use for both private and commercial use.
|
||||
#####5. How old is Datarhei/Restreamer?
|
||||
► Datarhei/Restreamer was presented to the public in late 2015th
|
||||
#####6. Is there Datarhei/Restreamer for my operating system?
|
||||
► Datarhei/Restreamer can be used on any type of operating system. Windows, MacOS, Linux, BSD and Solaris are supported.
|
||||
#####7. What kind of hardware can Datarhei/Restreamer be installed?
|
||||
► Datarhei/Restreamer had been tested with Raspberry Pi1, Pi2, ODROID, Windows, MacOS and Linux. More information about the [Hardware](Embedded Hardware).
|
||||
#####8. Datarhei/Restreamer Notice?
|
||||
► Datarhei/Restreamer provides the technology to transmit video data in real time. We request every user to respect the privacy policy of your country and the privacy requirements of every human being!
|
||||
# Datarhei/Restreamer Basics
|
||||
#####9. What kind of hardware is supported by Datarhei/Restreamer?
|
||||
► Datarhei/Restreamer had been tested with Raspberry Pi1, Pi2, ODROID, Windows, MacOS and Linux. More information about the [Hardware](Embedded Hardware).
|
||||
#####10. What should my network camera support, to work with Datarhei/Restreamer?
|
||||
► What your camera may need to work with Datarhei/Restreamer could be read in our [Camera-Buyers-Guide](/restreamer/wiki/camerabuyersguide_en.html).
|
||||
#####11. What should I consider when I transfer my live stream itself over Datarhei/Restreamer on my website?
|
||||
► Any pitfalls we tell you here MISSING LINK
|
||||
#####12. How much data upload is needed to produce a proper video live stream?
|
||||
► Rule of thump for required upload and data volume of your video streams in the [wiki chapter about compression](/restreamer/wiki/videocompression_en.html).
|
||||
#####13. Works Datarhei/Restreamer with UMTS / G3 or LTE / G4?
|
||||
► Yes - But regard carefully on your bandwidth. An HD Live Stream can quickly consume over 1 GB of data per day. If you host yourself we recommend you to use a DSL or VDSL connection.
|
||||
#####14. Where can I find a suitable network camera from?
|
||||
► We have you a [selection of suitable network cameras on Amazon](/restreamer/wiki/shop_en.html) together.
|
||||
#####15. How do I set a static IP?
|
||||
► For more information about Dynamic DNS take a look [here in Wiki](/restreamer/wiki/dynamicdns_en.html).
|
||||
#####16.Streaming on Apple mobile devices and Android possible?
|
||||
► Yes - There we natively supports iPod Touch, iPhone and iPad. Android devices make no difference too.
|
||||
#####17. Is a professional use of Datarhei/Restreamer possible?
|
||||
► The use is possible. You should definitely get in touch with us and let us advise you. It must be decided individually for your project, what steps you have to go to carry out your project.
|
||||
# Support
|
||||
#####18. How can I support Datarhei/Restreamer?
|
||||
► The easiest way to support us is certainly to tell everyone how cool you Datarhei/Restreamer find! Poste it on Facebook, Twitter or G + .☺
|
||||
A financial method is flatter <a href="https://flattr.com/submit/auto?user_id=datarhei&url=https%3A%2F%2Fgithub.com%2Fdatarhei%2F" target="_blank"><img src="http://datarhei.org/wiki/pic/flattr-badge-large.png" alt="Flattr this" title="Flattr this" border="0"></a> oder über Paypal zu spenden <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=M7TPT4VN7759G" target="_blank">
|
||||
<img src="http://datarhei.org/wiki/pic/btn_donate_SM.gif" width="86" height="21" border="0"></a>.
|
||||
As a software developer, you can easily appeal to us or upload your unasked modules in GitHub.
|
||||
|
||||
If you like Datarhei/Restreamer and you want to help even if you are not a Softwaredeveloper get in contact with us. We have a lot of things to do around the Datarhei/Restreamer project.
|
||||