Giter Club home page Giter Club logo

webrtcctv's Introduction

WebRTCCTV

Introduction

WebRTCCTV is a signaling server able to stream RTSP streams from cameras using WebRTC. It uses Kurento as a signaling server.

Explanations

This repository contains a signaling server as well as a simple webapp example that use WebRTC to read RTSP streams. To use it in a production environment, you will also need a TURN server and you will need to run the services manually instead of with the provided docker-compose.yml file. See the deployment script for an idea of how it can be deployed on a production environment.

By using the docker-compose.yml file like explained below, you will have a local test environment with four containers running:

  • kurento: The WebRTC media server
  • signaling: The WebRTC signaling server (communication between client and media server)
  • webapp: The example webapp to start, pause and stop streams
  • fake_camera: An RTSP stream using RTSPATT

The way all of this works is that the signaling server establishes a WebRTC connection between your web browser and the Kurento Media server, as well as creates the media pipeline that will be used for streaming video, and then your browser communicates directly via WebRTC with Kurento to get the stream. The signaling server is no longer needed once the connection is established.

The reason why a TURN server is needed in case you want to deploy this system on a cloud is that your users will need to communicate with a media server that is behind a NAT or a firewall. The TURN server will help initiating connections by acting as a relay. Since the Kurento media server should NOT be accessible from the outside (it would be a security issue), you need a TURN server to be accessible publicly and to relay data between the user and the media server.

How to build

Just run docker-compose build in the root of this repository.

How to run

Just run docker-compose up in the root of this repository.

How to test

If you ran the previous command, you should now be able to access the webapp at localhost:4242. Just click the start button to launch the streaming.

How to make it use your own camera

For that, you'll have to change the RTSP_URL environment variable that is set in the docker-compose.yml file to put your RTSP URL instead. I might add features to the webapp later, but keep in mind that this web application is just a demonstration of the capabilities of the signaling server with Kurento.

webrtcctv's People

Contributors

ullaakut avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.