Giter Club home page Giter Club logo

mrsz / obs-studio-webrtc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cosmosoftware/obs-studio-webrtc

0.0 2.0 1.0 22.13 MB

This is a fork of ops-studio with support for webrtc in general, and Janus Video Room plugin in particular. More webrtc server support will be added in the future.

Home Page: http://www.cosmosoftware.io

License: GNU General Public License v2.0

Shell 0.23% Batchfile 0.01% Python 0.15% CMake 2.01% C++ 47.11% Objective-C++ 0.88% Lua 0.16% C 47.96% NSIS 0.17% Objective-C 1.31% Groovy 0.01%

obs-studio-webrtc's Introduction

Installer

Compilation and build

I. Install libwebrtc on your system

Get the installer for libwebrtc version 62 provided by CoSMo company. https://drive.google.com/drive/folders/0B398g_p42xgrbUF3VjlFNnNxb3M

Compiler

Be careful to make sure correct Tools / Windows 10 SDK Installed.

  • Windows 7 x64 or later,
  • Visual Studio 2015 update 3

Make sure that you install the following components for Visual Studio:

  • section Programming Languages: check Visual C++, which will select all the three sub-categories Common Tools, MFC and Windows XP Support
  • section Windows and Web Development / Universal Windows Apps Development Tools: check Tools (1.4.1) and Windows 10 SDK (10.0.14393)

Additional components to install:

  • [Windows 10 SDK][w10sdk] with Debugging Tools for Windows or [Windows Driver Kit 10][wdk10] installed in the same Windows 10 SDK installation directory.

c. Mac

TBD

d. Linux

TBD

II. Install OpenSSL

Latest release version available: openssl-1.1.0g (2 November 2017) https://www.openssl.org/

a. Windows

IMPORTANT: Add path to OpenSSL DLLs to your PATH environment variable. C:\Program Files\OpenSSL\bin

III. Compiling obs-studio

Compilation Windows

  • install OpenSSL in 64 bits mode: start a VS2015 x64 Native Tools Command Prompt in administrator mode
 $ "c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
 $ perl Configure VC-WIN64A
 $ nmake
 $ nmake test
 $ nmake install
  • install QT (5.9)
  • install WIX Toolset http://wixtoolset.org/
  • download OBS studio pre compiled dependencies and extract them (e.g. at the root of the cloned dir)
  • start a command line, and setup VS2015 environment variables to get compilations in 64 bits mode:
 $ "c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
  • configure the project
git submodule update --init
mkdir MY_BUILD
cd MY_BUILD
cmake
  -DDepsPath=<full_path_to_dependencies>\win64
  -DQTDIR=<qt_install_full_path>
  -DOPENSSL_ROOT_DIR=<openssl_install_full_path>
  -DCMAKE_BUILD_TYPE=<DEBUG|RELEASE|RelWithDebInfo>
  -G "NMake Makefiles"
  ..

example:

cmake .. -DQTDIR=C:\Qt\5.9.1\msvc2015_64
         -DDepsPath=C:\cosmo\dependencies2015\win64
         -DOPENSSL_ROOT_DIR="C:\Program Files\OpenSSL"
         -DCMAKE_BUILD_TYPE=Release
         -G "NMake Makefiles"
  • compile the project
nmake

Packaging on Windows

Inside MY_BUILD just run the command :

cpack

USAGE

Configure JANUS

https://github.com/meetecho/janus-gateway. Configure a JANUS server using the video room plugin with websocket protocol activate. You can use their html demo.

OBS settings

For now there is no room management: OBS will connect automatically to the default room 1234. Launch OBS, go to settings, select the stream tab and change the URL to your JANUS : example wss://janus.cosmosoftware.io. Note: Put random string on Stream key, Username, and Password (is not used yet).

After you can start streaming, OBS will connect to the default room and if you have any suscriber present in the room, you will see the OBS stream.

Docs (in progress..)

WebsocketClientImpl.cpp

That is where we receive the message and define the protocol API with JANUS.

WebRTCStream.cpp inside the folder /plugin/output/

There is where we handle the message, get and setup the offer and answer from libwebrtc. Also, is there we initial/remove the stream.

obs-studio-webrtc's People

Contributors

agouaillard avatar agouaillard-cosmo avatar antihax avatar arkkis avatar ben-cos avatar btbn avatar c3r1c3 avatar cg2121 avatar chaironeko avatar computerquip avatar cosmo-rn avatar ddrboxman avatar derrod avatar dodgepong avatar fryshorts avatar goalitium avatar gol-d-ace avatar hwdro avatar jp9000 avatar kc5nra avatar ludocosmo avatar martell avatar notr1ch avatar palana avatar raben13 avatar reboot avatar rytoex avatar skylerlipthay avatar suslikv avatar xaymar avatar

Watchers

 avatar  avatar

Forkers

mehome

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.