All Projects → Ullaakut → Rtspallthethings

Ullaakut / Rtspallthethings

Licence: apache-2.0
Deprecated RTSP media server -- Use github.com/aler9/rtsp-simple-server instead.

Projects that are alternatives of or similar to Rtspallthethings

WebRTCCTV
WebRTCCTV is a signaling server & webapp able to stream from RTSP cameras using WebRTC
Stars: ✭ 32 (-87.6%)
Mutual labels:  stream, camera, rtsp, cctv
Icecast Server
Icecast streaming media server (Mirror) - Please report bugs at https://gitlab.xiph.org/xiph/icecast-server/issues
Stars: ✭ 312 (+20.93%)
Mutual labels:  media, server, streaming
playercast
Cast to media player and control playback remotely.
Stars: ✭ 46 (-82.17%)
Mutual labels:  streaming, stream, media
wsa
WSA(Websocket Streaming Agent) is a stream server target for mp4/h264 streaming over websocket
Stars: ✭ 35 (-86.43%)
Mutual labels:  streaming, stream, rtsp
Camerattack
An attack tool designed to remotely disable CCTV camera streams (like in spy movies)
Stars: ✭ 192 (-25.58%)
Mutual labels:  camera, rtsp, cctv
Rtmp Rtsp Stream Client Java
Library to stream in rtmp and rtsp for Android. All code in Java
Stars: ✭ 1,338 (+418.6%)
Mutual labels:  stream, rtsp, streaming
Onvifcamera
Pod and example on how to connect to an ONVIF camera
Stars: ✭ 66 (-74.42%)
Mutual labels:  camera, rtsp, streaming
Render Media
Intelligently render media files in the browser
Stars: ✭ 181 (-29.84%)
Mutual labels:  stream, media, streaming
Ustreamer
µStreamer - Lightweight and fast MJPG-HTTP streamer
Stars: ✭ 533 (+106.59%)
Mutual labels:  stream, broadcast, streaming
Fastocloud
Self-hosted IPTV/NVR/CCTV/Video service (Community version)
Stars: ✭ 464 (+79.84%)
Mutual labels:  encoding, rtsp, broadcast
Vxg.media.sdk.android
Market leading Android SDK with encoding, streaming & playback functionality
Stars: ✭ 119 (-53.88%)
Mutual labels:  stream, encoding, rtsp
Dockerfiles
Optimized media, analytics and graphics software stack images. Use the dockerfile(s) in your project or as a recipe book for bare metal installation.
Stars: ✭ 98 (-62.02%)
Mutual labels:  encoding, gstreamer, media
twitchpipe
Pipe your favorite Twitch streams to the media player of your choice, or a file to save them for later. Supports low-latency playback.
Stars: ✭ 28 (-89.15%)
Mutual labels:  streaming, stream
mavlink-camera-manager
MAVLink Camera Manager service
Stars: ✭ 19 (-92.64%)
Mutual labels:  rtsp, gstreamer
TLightFileStream
Implements a lightweight, high-performance, non-allocating advanced-record-based wrapper around the SysUtils file handling routines as an alternative to Classes.TFileStream.
Stars: ✭ 21 (-91.86%)
Mutual labels:  streaming, stream
Chrome.RTSP.Player
Chrome RTSP player
Stars: ✭ 135 (-47.67%)
Mutual labels:  rtsp, media
esp32cam-ready
Plug and Play firmware for the esp32cam. Flash, provision and connect to rtsp.
Stars: ✭ 67 (-74.03%)
Mutual labels:  camera, rtsp
VAG.Node
GB28181 PS流转发网关服务<Node 版>,以GB28181对接的方式将摄像机/硬盘录像机 的PS流(H264/H265)打包推送到RTMP服务器。
Stars: ✭ 48 (-81.4%)
Mutual labels:  streaming, media
HaishinKit.kt
Camera and Microphone streaming library via RTMP for Android.
Stars: ✭ 70 (-72.87%)
Mutual labels:  streaming, camera
chromecast-api
📺 Chromecast Node.js module
Stars: ✭ 122 (-52.71%)
Mutual labels:  streaming, stream

RTSPATT: RTSP All The Things [DEPRECATED]

rtspatt logo

A multipurpose RTSP media server that can simulate RTSP cameras, broadcast RTSP streams, webcams and even create test videos or serve video files.

⚠️ ⚠️ This repository is deprecated, please use rtsp-simple-server instead. ⚠️ ⚠️

See this issue for explanations on why this repository was archived and is no longer maintained.

Dependencies

  • docker

Usage from the official docker repository

You can create a stream by launching the official docker image: docker run --rm -p 8554:8554 ullaakut/rtspatt

With default options, stream will be available at rtsp://0.0.0.0:8554/live.sdp. You can use override options.

Override options

docker run --rm \
       [-e RTSP_ADDRESS=your_address] \
       [-e RTSP_PORT=your_port] -p your_port:your_port \
       [-e RTSP_ROUTE=your_route] \
       [-e RTSP_USERNAME=your_username] \
       [-e RTSP_PASSWORD=your_password] \
       [-e RTSP_RESOLUTION='your_width'x'your_height'] \
       [-e RTSP_FRAMERATE=your_framerate] \
       [-e INPUT=your_input] \
       [-e ENABLE_TIME_OVERLAY=true|false] \
       [-e RTSP_AUTHENTICATION_METHOD=digest|basic] \
       [-e GST_PIPELINE=your_custom_gstreamer_pipeline] \
       [-e GST_DEBUG=your_debug_level] \
       ullaakut/rtspatt
./rtspatt \
      [-l rtsp_address] \
      [-b rtsp_port] \
      [-r rtsp_route] \
      [-u rtsp_username] \
      [-p rtsp_password] \
      [-s rtsp_resolution] \
      [-f rtsp_framerate] \
      [-i input]
      [-t] \
      [-d] \
      [-g gstreamer_pipeline] \

To have GStreamer debug while using the binary, simply run export GST_DEBUG=your_debug_level before using RTSP All The Things.

All of these environment variables and command line arguments override the default parameters:

  • RTSP_ADDRESS | -l: The address you want your server to listen on [default: 0.0.0.0]
  • RTSP_PORT | -b: The port that you want your server to listen on [default: 8554] (don't forget to also expose the port in your docker container with the -p docker option like in the example above)
  • RTSP_ROUTE | -r: The rtsp route at which you want your stream to be served [default: /live.sdp]
  • RTSP_USERNAME | -u: If you want to enable security on your stream, using this option will allow you to specify the username required to access your stream [default: none]
  • RTSP_PASSWORD | -p: If you want to enable security on your stream, using this option will allow you to specify the password required to access your stream [default: none]
  • RTSP_RESOLUTION | -s: The resolution at which you want to stream [default: 1280x720 for videotestsrc only] - RTSPATT will have to do encoding to resize the stream (Increased CPU usage)
  • RTSP_FRAMERATE | -f: The desired output framerate for your stream - RTSPATT will have to do encoding to change the framerate (Increased CPU usage)
  • INPUT | -i: Input used as video source. [default: pattern:smtpe]
    • If the argument starts with rtsp:// it will try to open it as an RTSP stream
    • If it starts with pattern: if will create a test video with the given pattern (see this link for more information on this argument)
    • If the argument starts with /dev/video it will create a stream from the /dev/video device passed into docker at the launch of the instance. You will need to pass in the video device as follows: --device=/dev/video0:/dev/video0 where video0 is the video device.
    • Otherwise it will use the argument as a absolute link to file input. Remember to use the -v option to insert a video into your container if you want to read it. Example: docker run -e INPUT=/tmp/video.mp4 -v /home/test/documents/myVideo.mp4:/tmp/video -p 8554:8554 ullaakut/rtspatt. The repository contains a 30 second sample video in the samples folder.
  • ENABLE_TIME_OVERLAY | -t: If the environment variable is set to true or the command line flag is used, a time overlay will be added to the stream. This can be useful to debug latency. [default: disabled] - RTSPATT will have to do encoding to add the time (Increased CPU usage)
  • RTSP_AUTHENTICATION_METHOD | -d: If RTSP_AUTHENTICATION_METHOD is set to digest or the command line flag is used, the authentication will be done using digest instead of basic auth. [default: basic]
  • GST_PIPELINE: Completely override the gstreamer pipeline usually autogenerated by the program. Remember though: with great power comes great responsibility! Gstreamer pipelines are a powerful tool but you need to thoroughly understand what you are doing, as things get messy easily (see this link for more information on this variable)
  • GST_DEBUG: The desired debug level for GStreamer [default: none] (see this link for more information on this variable)

Examples

animation rtspatt vlc

Serve video using basic auth on rtsp:admin:[email protected]//0.0.0.0:8554/live.sdp

docker run --rm -e RTSP_USERNAME=admin -e RTSP_PASSWORD=test -p 8554:8554 ullaakut/rtspatt

Serve video using digest auth on rtsp:admin:[email protected]//0.0.0.0:8554/live.sdp

docker run --rm -e RTSP_AUTHENTICATION_METHOD=digest -e RTSP_USERNAME=admin -e RTSP_PASSWORD=test -p 8554:8554 ullaakut/rtspatt

Launch an RTSP stream on rtsp://0.0.0.0:8554/live.sdp with a snow pattern and a resolution of 960x600 pixels:

docker run --rm -e INPUT="pattern:snow" -e RTSP_RESOLUTION=960x600 -p 8554:8554 ullaakut/rtspatt or ./rtspatt -i pattern:snow -s 960x600

Broadcast a camera's stream and change its framerate to 12 frames per second:

docker run --rm -e INPUT="rtsp://root:[email protected]_ip:554/live.sdp" -e RTSP_FRAMERATE=12 -p 8554:8554 ullaakut/rtspatt or ./rtspatt -i rtsp://root:[email protected]_ip:554/live.sdp -f 12

Broadcast a video stream from a connected device:

docker run --rm -e INPUT="/dev/video0" --device=/dev/video0:/dev/video0 -p 8554:8554 ullaakut/rtspatt

Serve a video file on a specific address and route:

docker run --rm -e INPUT="/tmp/video.avi" -e RTSP_ADDRESS=172.100.100.12 -e RTSP_PORT=18554 -v "/path/to/your/video:/tmp/video.avi" -p 18554:18554 ullaakut/rtspatt or ./rtspatt -i /tmp/video.avi -l 172.100.100.12 -b 18554

Serve am H264 video file without transcoding:

docker run --rm -e INPUT="/tmp/video.mp4" -e RTSP_PORT=18554 -e GST_PIPELINE="filesrc location=/tmp/video.mp4 ! qtdemux ! video/x-h264 ! rtph264pay pt=96 name=pay0" -v "/path/to/your/video:/tmp/video.mp4" -p 18554:18554 ullaakut/rtspatt

Build

You can modify RTSPATT and create your own docker image. We use the builder pattern, so you can just modify the sources and run docker build -t rstpatt . to re-compile the sources and rebuild the image.

Once it's done, you can launch RTSPATT with: docker run --rm -p 8554:8554 rtspatt or ./rtspatt.

With default options, stream will be available at rtsp://0.0.0.0:8554/live.sdp. You can use override options.

Patterns

Here is the list of patterns you can use

  • pattern:smpte - The standard SMTPE test pattern, it's the default value if you don't specify any input
  • pattern:smpte-75 - 75% color bars
  • pattern:smpte-100 - 100% color bars (no noise)
  • pattern:snow - Random noise
  • pattern:black - Black image
  • pattern:white - White image
  • pattern:red - Red image
  • pattern:green - Green image
  • pattern:blue - Blue image
  • pattern:checkers-1 - 1 pixel checkers pattern (low stream scale recommended)
  • pattern:checkers-2 - 2 pixel checkers pattern (low stream scale recommended)
  • pattern:checkers-4 - 4 pixel checkers pattern (low stream scale recommended)
  • pattern:checkers-8 - 8 pixel checkers pattern (low stream scale recommended)
  • pattern:circular - circular pattern
  • pattern:blink - Alternate between black and while image
  • pattern:zone-plate - Zone plate
  • pattern:gamut - Gamut checking pattern
  • pattern:chroma-zone-plate - Chroma zone plate
  • pattern:ball - A moving ball
  • pattern:bar - Bar with foreground color
  • pattern:pinwheel - Pinwheel
  • pattern:spokes - Spokes
  • pattern:gradient - Gradient image
  • pattern:colors - All colors

Ball Bar Checkers Circular Colors Gamut Gradient Pinwheel SMPTE Snow Spokes

FAQ

Does it stream over TCP, UDP or HTTP?

Currently it only streams over TCP.

License

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].