Giter VIP home page Giter VIP logo

babelcast's Introduction

Babelcast

A server which allows audio publishers to broadcast to subscribers on a channel, using nothing more than a modern web browser.

It uses websockets for signalling & WebRTC for audio.

The designed use case is for live events where language translation is happening. A translator would act as a publisher and people wanting to hear the translation would be subscribers.

Building

Download a precompiled binary or build it yourself.

Usage

Usage of ./babelcast:
  -debug
        enable debug log
  -port int
        listen on this port (default 8080)

Then point your web browser to http://localhost:8080/

If the PUBLISHER_PASSWORD environment variable is set, then publishers will be required to enter the password before they can connect.

TLS

Except when testing against localhost, web browsers require that TLS (https://) be in use any time media devices (e.g. microphone) are in use. You should put Babelcast behind a reverse proxy that can provide SSL certificates e.g. Caddy.

See this Stackoverflow post for more information.

Credit

Thanks to the excellent Pion library for making WebRTC so accessible.

babelcast's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

babelcast's Issues

about recording `

Pardon hi bro. How are you? I have some question. Can i record publishing data to local file such as mp3 or wav format & which package i can use ?
2. Do you have good book or article about pion/webrtc

[Feature Request] Repeater Server

Ian you fantastic human being. This is all I've been looking for for a week and you built it. A webRTC tool that was super lightweight that allows people to start channels and broadcast to them and other people can go listen to those channels. No video, no over the top UIs, just straightforward what I needed.

:P So as people do when they found the perfect lightweight thing they try to add features to it.

What I want (and it's actually likely a whole second project) is I want the subscribers side of this, but I want it to listen to another babelcast server and just rebroadcast all the channels that it is producing. Basically a virtual machine running babelcast can support around 250 people but I want to be able to support about 500-1000 people. So my thoughts are have the initial babelcast server hanging out minding it's own business and then I can just create a second server.

Looking at the code for this I'm sure I could probably sit down for day and start learning some Go maybe, it feels like exactly the right level of interesting/not-overly-complex first coding projects. However, I'm happy to pay you (and I'm happy to let you keep what you make me open source for other people to use too) since you probably already have an idea on how this would be done (and I do not).

You don't have an email in your profile so hopefully this is appropriate here. Thanks so much! Even if you can't help me this is amazing!

structur

Pardon hi friend. Ho are you. I have some problems, if you have time you can help me.
How i can change project structure

You run chanell

type Registry struct {
	sync.Mutex
	Channels map[string]*Channel
}

can i like

type Registry struct {
	sync.Mutex
	Channels map[int]map[string]*Channel
}

i have some event and in this event i should open chanell

About ssl cerificate

Write in documentation about ssl certificate. Microphone and camera not work in IP without ssl (http)

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.