Giter Site home page Giter Site logo

asyncweb / bigbluebutton-streaming Goto Github PK

View Code? Open in Web Editor NEW
29.0 5.0 7.0 67.95 MB

BigBlueButton Streaming - Your free, open-source solution to expand your virtual classrooms to thousands of learners globally. Stream live on YouTube, Facebook, Vimeo, or any RTMP server right from BigBlueButton. No more user limit - teach without boundaries.

Home Page: https://higheredlab.com

JavaScript 98.78% HTML 0.42% CSS 0.58% Shell 0.20% Dockerfile 0.02% SCSS 0.01%
bigbluebutton streaming

bigbluebutton-streaming's Introduction

BigBlueButton Streaming

BigBlueButton Streaming - Your free, open-source solution to expand your virtual classrooms to thousands of learners globally. Stream live on YouTube, Facebook, Vimeo, or any RTMP server right from BigBlueButton. No more user limit - teach without boundaries.



bigbluebutton-streaming

Embrace a limitless learning experience with BigBlueButton Streaming, the ultimate solution for your expanding educational needs. Developed as a free open-source software extension, BigBlueButton Streaming allows you to extend your virtual classrooms to thousands of learners around the globe.

Widely recognized as the leading open-source classroom software, BigBlueButton is trusted by countless educational institutions worldwide. However, with a capacity limit of 100 users per class, larger educational sessions became a challenge โ€“ until now.

Introducing BigBlueButton Streaming, your key to conducting large-scale, one-time events or regular oversized classes. Seamlessly stream your virtual classes directly from BigBlueButton to platforms such as YouTube, Facebook, Vimeo, or any RTMP server.

It's simple to use - enter the RTMP URL and access key, click on "Start Streaming", and voila! Your class is live and can now reach thousands of students concurrently. This intuitive, user-friendly tool breaks boundaries in digital learning, bringing education closer to those who crave it.

Experience this revolutionary extension today. Unleash the full potential of virtual learning with BigBlueButton Streaming, because education should know no boundaries.



๐Ÿ—๏ธ Unlock Limitless Learning: Key Features of BigBlueButton Streaming

  1. ๐Ÿ“บ Live Streaming on Multiple Platforms: Directly stream your classroom to YouTube, Facebook, Vimeo, or any RTMP server, maximizing your reach and availability for students around the world.
  2. ๐ŸŽฅ Ease of Streaming: Begin live streaming your classes simply by entering the RTMP URL and access key, and pressing "Start Streaming."
  3. ๐Ÿš€ Large-Scale Class Capacity: Accommodate thousands of students in a single class, bypassing the original 100 users limit of BigBlueButton.
  4. ๐Ÿ”— Compatibility with BigBlueButton: Works directly within BigBlueButton, the widely-adopted virtual classroom software used by many educational institutions globally.
  5. ๐Ÿ†“ Open-Source and Free: BigBlueButton Streaming is an open-source software extension, available to all users at no cost.



๐Ÿ’ก 5 Benefits: Amplify Impact with BigBlueButton Streaming

  1. ๐ŸŒ Expanded Reach: You can now teach thousands of students from various geographical locations simultaneously.
  2. ๐Ÿ“ฑ Increased Accessibility: With classes being streamed on popular platforms, students can access lessons from devices they already use in their everyday lives.
  3. ๐Ÿ’ฐ Cost-Efficiency: As a free, open-source software, BigBlueButton Streaming allows educational institutions to reduce costs associated with premium virtual classroom tools.
  4. โฐ Flexibility and Convenience: The ability to schedule large classes or one-time events provides flexibility to educators and convenience to learners.
  5. ๐Ÿงฉ Ease of Integration: Being an extension of the already popular BigBlueButton, integrating this tool into existing educational frameworks is straightforward and hassle-free.



๐Ÿ“‹ Requirements

The requirement to install this software is BigBlueButton should be installed.

Minimum environment requirements

  • The software is compatible with BigBlueButton versions ['2.6.10' '2.6.12' '2.7.0-beta.2']. Please ensure one of these versions is pre-installed.
  • Docker must be installed on the system to manage containerization and deployment of BigBlueButton.
  • A properly configured and functioning TURN server is necessary for real-time communication and media relay.
  • You should have a user account on your system configured to execute sudo commands without the requirement to enter a password each time. This is crucial for some installation processes that require administrator-level permissions.



๐Ÿ“ฆ Installation

  • Clone the repository.
  • Goto bigbluebutton-streaming/
  • Run install.sh
git clone https://github.com/AsyncWeb/bigbluebutton-streaming.git

cd bigbluebutton-streaming

bash install.sh

๐Ÿšจ Note: install.sh will restart the bigbluebutton server, please make sure there is no meetings running on the server.

๐Ÿ’ก Make sure to stop streaming before Ending the BigBlueButton session.


๐Ÿ“บ Installation Demo



๐Ÿ”—๐Ÿ”‘ Set Default RTMP URL and Access Key

After successful installation, You can set default streaming server URL and access key by editing the /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml file.

public:
  app:
    # BigBlueButton-streaming rtmp URL and stream key.
    # set default streaming server URL and access key here.
    rtmpURL: ''
    streamKey: ''

Once you set the rtmp URL and stream key, restart the bigbluebutton html5 client.

sudo systemctl restart bbb-html5



๐Ÿ”„ Concurrent Streaming

If you aim to host multiple meetings simultaneously on your single BigBlueButton server and require concurrent streaming for each, follow these steps to set it up.

  • Navigate to the streaming server directory:
cd bigbluebutton-streaming/streaming-server/
  • Open the .env file for editing using sudo privileges. For instance, with the vi editor:
sudo vi .env
  • In the .env file, modify the NUMBER_OF_CONCURRENT_STREAMINGS variable to indicate the number of simultaneous streams you want to handle. For instance, to enable three concurrent streams:
NUMBER_OF_CONCURRENT_STREAMINGS=3
  • Save your changes and exit the file editor.

  • Build Docker image:

docker build -t bbb-stream:v1.0 .
  • Finally, restart your bbb-streaming service with pm2:
pm2 restart bbb-streaming

Now, your server can handle the number of concurrent streams you've specified, allowing each meeting to be streamed simultaneously.



bbb-streaming-error

๐Ÿšจ Note: If you encounter the error shown above, it indicates that your server has reached its limit for concurrent streams.


๐Ÿ’ก Remember: Successful operation of concurrent streaming depends significantly on the capacity of your server. Ensure that your server is capable of handling the number of concurrent streams you've set.



๐Ÿ—‘๏ธ Uninstallation

  • Goto bigbluebutton-streaming/.
  • run uninstall.sh.
cd bigbluebutton-streaming

bash uninstall.sh



๐Ÿ› ๏ธ Troubleshooting


bbb-streaming-error

  1. ๐Ÿšจ When you encounter the error above, most likely the BigBlueButton-streaming backend (bbb-streaming) is not running. Please follow the steps below to troubleshoot:

    • Execute the command below to check whether pm2 is present and is running the node application on your BigBlueButton server

      pm2 list
    bbb-streaming-error

    • If you find bbb-streaming listed above with status not as online, you would need to restart bbb-streaming by using the following command:

      pm2 restart bbb-streaming
    • Now, you would be seeing bbb-streaming status as online.

    bbb-streaming-error

  2. ๐Ÿšจ If you encounter other errors, try looking for error logs by running the following command:

    pm2 logs bbb-streaming

  • If you see error log as below, it means the error message you are seeing typically occurs when trying to use sudo in a script or automated process where no terminal is available to provide the password interactively.

    bbb-streaming-error

    • To fix this, a user to run sudo without needing to enter a password, you can modify the sudoers file.Here are the steps:

      • Open a terminal.

      • Type sudo visudo. This will open the sudoers file in the system's default text editor. The visudo command checks the syntax of the sudoers file to help prevent you from accidentally locking yourself out of the system.

      • Scroll down to the section of the file that looks like this:

      # User privilege specification
      root    ALL=(ALL:ALL) ALL
      • Underneath the root user, add the following line, replacing username with the username for which you want to allow passwordless sudo commands:
      username ALL=(ALL:ALL) NOPASSWD: ALL
      • Press Ctrl+X to exit the editor, then Y to save changes, and Enter to confirm.

      • Now Restart the bbb-streaming service by running the following command:

      pm2 restart bbb-streaming

      Now, the user you added will be able to use sudo without being asked for a password.


๐Ÿ“If you find diffrent logs, share with us by creating an issue on this repository ๐Ÿ“ฎ. Please ensure to include relevant screenshots and a detailed description of the problem for better assistance.



  1. ๐Ÿšจ When you run bash uninstall.sh, and if encounter below error:
    permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?filters=%7B%22ancestor%22%3A%7B%22bbb-stream%3Av1.0%22%3Atrue%7D%7D": dial unix /var/run/docker.sock: connect: permission denied
    
    • The error message you're encountering is related to the Docker permissions. Your user does not have the required permissions to interact with the Docker daemon. To fix this:

    • Add your user to the docker group: This is the most straightforward solution. It allows your user to interact with the Docker daemon as if you were the root user.

      sudo usermod -aG docker $USER

      And then log out and log back in so that your group membership is re-evaluated.

    • Run again bash uninstall.sh and you should be good to go.


โš ๏ธ If you still face issues in running streaming, please email us at [email protected] and we would be happy to help you.



๐Ÿ”Ž How it works

  1. ๐Ÿš€ Node.js App: The Node.js app start streaming container, serving as a controller for streaming BigBlueButton meetings.

  2. ๐Ÿ“ฌ REST API: The app exposes a REST API to receive requests for starting and stopping streaming.

  3. ๐Ÿ”‘ Environment Variables: Sensitive data, such as the BigBlueButton URL, secret, and other configurations, are stored in environment variables loaded from a .env file.

  4. ๐Ÿ”— Puppeteer Integration: Puppeteer is utilized to launch a headless Chrome browser, enabling programmatic interaction with the BigBlueButton meeting UI.

  5. ๐Ÿ–ฅ๏ธ Virtual Display: Xvfb creates a virtual display for Chrome, allowing it to run without a physical display server.

  6. ๐Ÿค Joining the Meeting: The app configures Puppeteer to join the BigBlueButton meeting as a viewer with specific settings, such as listen-only mode and element visibility.

  7. ๐Ÿ“ผ Screen Recording: A child process invokes ffmpeg to record the meeting screen and stream it to a specified RTMP server.

  8. โน๏ธ Stop Streaming: The app waits for the stop streaming or meeting to end and stops the, streaming, ffmpeg process, finalizing the streaming process.

bbb-streaming



Save big with our affordable BigBlueButton hosting.

  • Bare metal servers for HD video
  • 40% lower hosting costs
  • Top-rated tech support, 100% uptime
  • Upgrade / cancel anytime
  • 2 weeks free trial; No credit card needed

Start Free Trial

bigbluebutton-streaming's People

Contributors

arun-hel avatar asyncweb avatar nishekh-e-r avatar

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

Watchers

 avatar  avatar  avatar  avatar  avatar

bigbluebutton-streaming's Issues

Dev Tools error on start meeting

I have tried both versions but the meeting shows a Blank Blue background and not streaming when you start the streamer with following error below.

image

update readme with more details

Kudos for such a long waited feature for BBB.

Could you please add a couple more details on your github

how it works? Components?
how is it configured after installation
possible break scenarios after upgrading BBB to another version?

thanks

Facebook Streaming: INVALID RTMP URL

Great product but when you try to stream to Facebook it gives error: INVALID RTMP URL
This is caused by the fact that Facebook uses rtmps://live-api-s.facebook.com:443/rtmp/ and if you use rtmp://live-api-s.facebook.com:443/rtmp/ it does not give error but not Streaming

Thank you for this amazing feature

Streaming not run in 2.6.12

Hi have install streaming app in BBB_2.6.12 its configure successfully but when I try to copy RTMP url and key, its showing connect to your administrator.

status errord; followed troubleshooting guide but still nothing

Hi there,

I can't keep bbb-streaming running. I followed troubleshooting guide, as you can see on images, but still nothing. Ps. I didn't include my "visduo" but I added everything. Is there anything else I can try?

Thank you

Screenshot_269

Screenshot_270

Edit: I have bbb 2.7.5 and I manually replaced "2.7.0-beta.2" traces, so I can install this plugin

Streaming worked first time, then get this error

Great project, installed in 2.6.10 instance... worked great as expected the first time. I stop streaming everything good.

image

then i enter some bogus info in the server and stream key field, hit start and saw the Live Stream user for few seconds.

However despite, doing bbb-conf --restart, a server reboot, and finally an uninstall and install again a get this same message. when i attempt again from multiple greenlight rooms, and reseting stream keys.

I can see the bbb running docker contained with docker ps, not sure how to see the bbb-streaming containers?

Any idea :)

uninstall enhancement

uninstall currently just reverts the html5 client to original. The actual process still run on server.

Should

  1. stop pm2 process
  2. remove the docker image
  3. remove any needed packages.

How to get rid of "Chrome is being controlled by automated software"

How to get rid of "Chrome is being controlled by automated software" during the stream chrome recording? I've tried to modiy also the bbb_stream.js like this without success.

var options = {
headless: true, // Cambiato a true
args: [
'--disable-infobars',
'--autoplay-policy=no-user-gesture-required',
'--no-sandbox',
'--disable-dev-shm-usage',
--window-size=${width},${height},
'--app=https://www.google.com/',
'--start-fullscreen',
'--disable-extensions',
'--disable-sync',
'--disable-blink-features=AutomationControlled'
],
excludeSwitches: ['enable-automation']
}

any ideas?

Upgrade live streaming

Good Evening
Please plan to set up the app so that it can be installed on the latest version of BBB, or better it can be upgraded with each BBB upgrade.
Thank you very much
gmath

Live Streaming is not working

Hello
I hope you are well
For me, even though I followed the instructions (and the video) exactly, it installs the live streaming on my server (2.6.10 and 2.7) but when I'm in the session after entering my live streaming server details (youtube) and pressing start Streaming gives me black screen and stops streaming.
I have installed several times on a clean BBB server, but always the same behavior. Every time I reinstall Ubuntu and reinstall BBB from scratch.
I'm not an IT guy and can't look it up myself. I just follow your instructions. If you want help me.
Thank you very much

BBB Version 2.7.0

Great feature for Big Blue Button, can it be compatible with other versions, seems to be only compatible with 2.6.10

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.