aau-zid / bigbluebutton-livestreaming Goto Github PK
View Code? Open in Web Editor NEWStreams a given BBB Meeting to an RTMP Server.
License: GNU General Public License v3.0
Streams a given BBB Meeting to an RTMP Server.
License: GNU General Public License v3.0
Trying to start livestream .... but doesn't work for me ... ideas ?
liveStreaming | libpostproc 55. 5.100 / 55. 5.100 liveStreaming | false: No such file or directory liveStreaming | INFO:root:Open BBB and hide elements!! liveStreaming | INFO:root:create_meeting... liveStreaming | INFO:root:A meeting already exists with that meeting ID. Please use a different meeting ID. liveStreaming | INFO:root:get_join_url... liveStreaming | Traceback (most recent call last): liveStreaming | File "stream.py", line 157, in <module> liveStreaming | bbb_browser() liveStreaming | File "stream.py", line 75, in bbb_browser liveStreaming | WebDriverWait(browser, selelnium_timeout).until(element) liveStreaming | File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/support/wait.py", line 80, in until liveStreaming | raise TimeoutException(message, screen, stacktrace) liveStreaming | selenium.common.exceptions.TimeoutException: Message: liveStreaming | liveStreaming exited with code 1 root@ns3127147:~#
when I run this command
docker-compose up
I have this error and the live stream did not work correctly and I have this error
root@iranserver ~/stream # docker-compose up Starting liveStreaming ... done Attaching to liveStreaming liveStreaming | INFO:root:Starting browser!! liveStreaming | INFO:root:streaming intro... liveStreaming | ffmpeg version 4.3-2~18.04.york0 Copyright (c) 2000-2020 the FFmpeg developers liveStreaming | built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04) liveStreaming | configuration: --prefix=/usr --extra-version='2~18.04.york0' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared liveStreaming | libavutil 56. 51.100 / 56. 51.100 liveStreaming | libavcodec 58. 91.100 / 58. 91.100 liveStreaming | libavformat 58. 45.100 / 58. 45.100 liveStreaming | libavdevice 58. 10.100 / 58. 10.100 liveStreaming | libavfilter 7. 85.100 / 7. 85.100 liveStreaming | libavresample 4. 0. 0 / 4. 0. 0 liveStreaming | libswscale 5. 7.100 / 5. 7.100 liveStreaming | libswresample 3. 7.100 / 3. 7.100 liveStreaming | libpostproc 55. 7.100 / 55. 7.100 liveStreaming | false: No such file or directory liveStreaming | INFO:root:Open BBB and hide elements!! liveStreaming | INFO:root:create_meeting... liveStreaming | Traceback (most recent call last): liveStreaming | File "stream.py", line 157, in <module> liveStreaming | bbb_browser() liveStreaming | File "stream.py", line 69, in bbb_browser liveStreaming | create_meeting() liveStreaming | File "stream.py", line 102, in create_meeting liveStreaming | return bbb.create_meeting(args.id, params=create_params) liveStreaming | File "/usr/local/lib/python3.6/dist-packages/bigbluebutton_api_python/bigbluebutton.py", line 47, in create_meeting liveStreaming | response = self.__send_api_request(ApiMethod.CREATE, params) liveStreaming | File "/usr/local/lib/python3.6/dist-packages/bigbluebutton_api_python/bigbluebutton.py", line 135, in __send_api_request liveStreaming | response = urlopen(url).read() liveStreaming | File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen liveStreaming | return opener.open(url, data, timeout) liveStreaming | File "/usr/lib/python3.6/urllib/request.py", line 532, in open liveStreaming | response = meth(req, response) liveStreaming | File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response liveStreaming | 'http', request, response, code, msg, hdrs) liveStreaming | File "/usr/lib/python3.6/urllib/request.py", line 570, in error liveStreaming | return self._call_chain(*args) liveStreaming | File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain liveStreaming | result = func(*args) liveStreaming | File "/usr/lib/python3.6/urllib/request.py", line 650, in http_error_default liveStreaming | raise HTTPError(req.full_url, code, msg, hdrs, fp) liveStreaming | urllib.error.HTTPError: HTTP Error 403: Forbidden liveStreaming exited with code 1
Please Help me
i have followed your documentation and edited this file it starts without error but Facebook stream blank
my docker-compose.yml
version: '2.0'
services:
bbb-streamer:
image: aauzid/bigbluebutton-livestreaming
container_name: liveStreaming
environment:
# BigBlueButton Server url:
- BBB_URL=http://34.87.179.205/bigbluebutton/api
# BigBlueButton secret:
- BBB_SECRET=wuEWZryH81zNvLYjphgoo0lw4rBrYFZg1NI8Hj1Dw
# BigBlueButton meetingID:
- BBB_MEETING_ID=183f0bf3a0982a127bdb8161e0c44eb696b3e75c-1594299922525
# download / save BigBlueButton meeting
- BBB_DOWNLOAD_MEETING=false
# play intro file (can be a local file in videodata folder e.g. /video/intro.mp4 or a url of a mediastream e.g. https://my.intro.stream)
- BBB_INTRO=false
# begin the intro at position (optional, e.g. 00:00:05)
- BBB_BEGIN_INTRO_AT=04:40
# end intro after (optional, e.g. 01:00:00 - after one hour)
- BBB_END_INTRO_AT=
# Media server url:
- BBB_STREAM_URL=rtmps://live-api-s.facebook.com:443/rtmp/3191579940864754?s_bl=1&s_sc=3191579977531417&s_sw=0&s_vt=api-s&a=AbxBnEzznPHo66En
# Timezone (default: Europe/Vienna):
- TZ=Europe/Vienna
volumes:
- ./videodata:/video
i have started steaming by following this..ik its not an issue with code..anyone can help me out? thanks in advance
wget -O docker-compose.yml https://raw.github.com/aau-zid/BigBlueButton-liveStreaming/1.0.0-beta.5/examples/docker-compose.yml.example
(change configuration)
docker-compose up -d
Hello whether I need to install the livestreaming in bbb server itself, or separate one.
Shall I use Ant Media server and youtube for streaming
Do you need to manually run docker-compose up -d to start the stream?
When starting the docker I am getting an error at line 82 related to Send Message
browser.find_elements_by_css_selector('[aria-label="Send message"]')[0].click()
To Reproduce
Steps to reproduce the behavior:
version: '3.3'
services:
bbb-streamer:
image: aauzid/bigbluebutton-livestreaming
container_name: liveStreaming
environment:
# BigBlueButton Server url:
- BBB_URL=https://<instance url>/bigbluebutton/api
# BigBlueButton secret:
- BBB_SECRET=<secret>
# BigBlueButton meetingID:
- BBB_MEETING_ID=<Meeting ID>
- BBB_STREAM_URL=rtmp://<streamurl>/app/
# Timezone (default: Europe/Vienna):
- TZ=<timezone>
# volumes:
# - ./videodata:/video
docker-compose up
. I did not use -d to see if any errors are shown.Output of the error
Traceback (most recent call last):
liveStreaming | File "stream.py", line 164, in <module>
liveStreaming | bbb_browser()
liveStreaming | File "stream.py", line 82, in bbb_browser
liveStreaming | browser.find_elements_by_css_selector('[aria-label="Send message"]')[0].click()
liveStreaming | File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webelement.py", line 80, in click
liveStreaming | self._execute(Command.CLICK_ELEMENT)
liveStreaming | File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
liveStreaming | return self._parent.execute(command, params)
liveStreaming | File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
liveStreaming | self.error_handler.check_response(response)
liveStreaming | File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
liveStreaming | raise exception_class(message, screen, stacktrace)
liveStreaming | selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <button aria-label="Send message" aria-disabled="false" class="md--Q7ug4 buttonWrapper--x8uow sendButton--Z93EzE" type="submit" position="bottom" id="tippy-46">...</button> is not clickable at point (500, 1025). Other element would receive the click: <div class="ReactModal__Overlay ReactModal__Overlay--after-open overlay--Z7FUVK">...</div>
liveStreaming | (Session info: chrome=84.0.4147.125)
liveStreaming |
liveStreaming exited with code 1
Desktop (please complete the following information):
I tried to comment the line 82 browser.find_elements_by_css_selector('[aria-label="Send message"]')[0].click()
and build a new image and try to run I get another error on line 87 which is browser.find_elements_by_id('chat-toggle-button')[0].click()
I think line 87 has to do with hiding chat window. I am not sure how to trace what went wrong.
Hi everyBody.
when i launch composer-up, a user with name: "Live" enters the room.
but after about 10 second, i have this errors:
liveStreaming | Traceback (most recent call last):
liveStreaming | File "stream.py", line 164, in
liveStreaming | bbb_browser()
liveStreaming | File "stream.py", line 78, in bbb_browser
liveStreaming | WebDriverWait(browser, selelnium_timeout).until(element)
liveStreaming | File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/support/wait.py", line 80, in until
liveStreaming | raise TimeoutException(message, screen, stacktrace)
liveStreaming | selenium.common.exceptions.TimeoutException: Message:
liveStreaming |
liveStreaming exited with code 1
my com docker-compose.yml file:
version: '3.3'
services:
bbb-streamer:
image: aauzid/bigbluebutton-livestreaming
container_name: liveStreaming
environment:
# BigBlueButton Server url:
- BBB_URL=deleted
# BigBlueButton secret:
- BBB_SECRET=deleted
# BigBlueButton meetingID:
- BBB_MEETING_ID=757512c26f
# start meeting (optional):
- BBB_START_MEETING=false
# attendee password (optional - has to be set to the attendee password of moodle/greenlight or any other frontend to allow joining via their links):
- BBB_ATTENDEE_PASSWORD=d8e76e8737
# moderator password (optional - has to be set to the moderator password of moodle/greenlight or any other frontend to allow joining via their links):
- BBB_MODERATOR_PASSWORD=f04cd6fc5c
# meeting title (optional):
- BBB_MEETING_TITLE=liveStreaming
# download / save BigBlueButton meeting
- BBB_DOWNLOAD_MEETING=false
# play intro file (can be a local file in videodata folder e.g. /video/intro.mp4 or a url of a mediastream e.g. https://my.intro.stream)
- BBB_INTRO=false
- BBB_AS_MODERATOR=true
# begin the intro at position (optional, e.g. 00:00:05)
- BBB_BEGIN_INTRO_AT=
# end intro after (optional, e.g. 01:00:00 - after one hour)
- BBB_END_INTRO_AT=
# Media server url:
- BBB_STREAM_URL=rtmp://rtmp..............# Timezone (default: Europe/Vienna): - TZ=Europe/Vienna volumes: - ./videodata:/video
Thank you for your guidance
Hi,
i get the following error:
File "./get_meetings.py", line 5, in
from bigbluebutton_api_python import BigBlueButton
ImportError: No module named 'bigbluebutton_api_python'
I have installed https://github.com/yunkaiwang/bigbluebutton-api-python.
Hi, Thank you so much for bringing this module available. However the installation steps are not clear. I have already installed BBB and greenlight.
Can you kindly list the quick steps on how to install this module and start our live with youtube and facebook.
Can you please help on the same. I am pretty new with docker and other live meeting. Your inputs will be a great help.
[aac @ 0x55fb5b270780] Queue input is backward in time
liveStreaming | frame= 6429 fps= 13 q=0.0 size= 105561kB time=00:06:45.60 bitrate=2132.0kbits/s d[flv @ 0x55fb5b26a680] Non-monotonous DTS in output stream 0:1; previous: 405587, current: 405569; changing to 405587. This may result in incorrect timestamps in the output file.
[aac @ 0x55fb5b270780] Queue input is backward in time2.53 bitrate=2110.5kbits/s dup=0 drop=5 speed=0.836x 5 speed=0.829x
liveStreaming | Last message repeated 2 times
I don't know what this is about ? Help ?
It just a basic setup... I could post it but nothing in it says turn this on to make time flow backwards :-)
Thanks
Don
Hello we are using the AWS to run this container in t2.medium
In the above screen shot you are seeing the 87% of CPU just we up the container, once we start the live streaming it crossing to 150% CPU
Also can we run multiple streaming (2 to 3 container with different name and rtmp) in a single t2.medium server
Hi
This error still here, tested on two servers without issues !!!
I test evry things on others issues but no way !!!
I have vps on aws, and dedicated server, both gives some error !!!
sudo docker-compose up
Starting liveStreaming ... done
Attaching to liveStreaming
liveStreaming | INFO:root:Starting browser!!
liveStreaming | INFO:root:Open BBB and hide elements!!
liveStreaming | INFO:root:create_meeting...
liveStreaming | INFO:root:get_join_url...
liveStreaming | Traceback (most recent call last):
liveStreaming | File "stream.py", line 157, in
liveStreaming | bbb_browser()
liveStreaming | File "stream.py", line 75, in bbb_browser
liveStreaming | WebDriverWait(browser, selelnium_timeout).until(element)
liveStreaming | File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/support/wait.py", line 80, in until
liveStreaming | raise TimeoutException(message, screen, stacktrace)
liveStreaming | selenium.common.exceptions.TimeoutException: Message:
liveStreaming |
liveStreaming exited with code 1
Thanks to give solution...
Here is the log of docker.
INFO:root:Starting browser!!
INFO:root:Open BBB and hide elements!!
INFO:root:get_join_url...
Traceback (most recent call last):
File "stream.py", line 121, in
bbb_browser()
File "stream.py", line 67, in bbb_browser
WebDriverWait(browser, selelnium_timeout).until(element)
File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/support/wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
I can see the Live user in the room for a while but after some time, it drops and can not start streaming.
i followed the documentation...first downloaded the yml file.. i have put my variables there then run docker-compose up -d.. then some pacakage downloads and it says Creating liveStreaming and starting no error but stream blank..hel
I tried installing the docker
i can see the process running but unable to view the stream
i need to know how to check logs
https://pix.cobrasoftwares.org/image/jRuf
https://pix.cobrasoftwares.org/image/jvWn
output - https://cuetube.in/plugin/Live/?c=jack
need to know what is wrong
Hi,
Every time it shows
INFO:root:Meeting isn't running. We will try again in 5 seconds!
can you please help!!!
I setup the configuration as described in required-settings section and I changed the version from 3.3 to 3.0 in docker-compose.yml.example
because docker-compose was not working with 3.3.
I started a meeting and found a user with name Live
in BigBlueButton html5client/join
screen, Now It is able to publish Audio but not video.
I am publishing rtmp stream to Nginx (setup on different machine) and its is working fine I tested it from a different rtmp publisher.
Here is the log after docker-compose up
and starts of meting.
liveStreaming | libavutil 56. 22.100 / 56. 22.100
liveStreaming | libavcodec 58. 35.100 / 58. 35.100
liveStreaming | libavformat 58. 20.100 / 58. 20.100
liveStreaming | libavdevice 58. 5.100 / 58. 5.100
liveStreaming | libavfilter 7. 40.101 / 7. 40.101
liveStreaming | libavresample 4. 0. 0 / 4. 0. 0
liveStreaming | libswscale 5. 3.100 / 5. 3.100
liveStreaming | libswresample 3. 3.100 / 3. 3.100
liveStreaming | libpostproc 55. 3.100 / 55. 3.100
liveStreaming | [x11grab @ 0x55bbf91f7c80] Stream #0: not enough frames to estimate rate; consider increasing probesize
liveStreaming | Input #0, x11grab, from ':122':
liveStreaming | Duration: N/A, start: 1589131712.446474, bitrate: N/A
liveStreaming | Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1920x1080, 24 fps, 1000k tbr, 1000k tbn, 1000k tbc
liveStreaming | Guessed Channel Layout for Input Stream #1.0 : stereo
liveStreaming | Input #1, alsa, from 'pulse':
liveStreaming | Duration: N/A, start: 1589131712.497579, bitrate: 1536 kb/s
liveStreaming | Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
liveStreaming | Codec AVOption preset (Configuration preset) specified for output file #0 (rtmp://myserver_ip/live/rtmp_stream_demo) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
liveStreaming | Stream mapping:
liveStreaming | Stream #0:0 -> #0:0 (rawvideo (native) -> flv1 (flv))
liveStreaming | Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (native))
liveStreaming | Press [q] to stop, [?] for help
liveStreaming | [alsa @ 0x55bbf9202800] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
liveStreaming | Output #0, flv, to 'rtmp://myserver_ip/live/rtmp_stream_demo':
liveStreaming | Metadata:
liveStreaming | encoder : Lavf58.20.100
liveStreaming | Stream #0:0: Video: flv1 (flv) ([2][0][0][0] / 0x0002), yuv420p(progressive), 1920x1080, q=2-31, 200 kb/s, 24 fps, 1k tbn, 24 tbc
liveStreaming | Metadata:
liveStreaming | encoder : Lavc58.35.100 flv
liveStreaming | Side data:
liveStreaming | cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
liveStreaming | Stream #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, 160 kb/s
liveStreaming | Metadata:
liveStreaming | encoder : Lavc58.35.100 aac
liveStreaming | [x11grab @ 0x55bbf91f7c80] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
Any idea whats going wrong?
I have made some changes to the script and want to use it for production. it would be great if you share docker Image build script for this code.
thanks.
Hi. For now when streaming starts bot sends a chat message with the full link to RTMP server with stream ID (Message is like "This meeting is streamed to: rtmp://..."). Is there an option to not let streaming bot to send this message?
I am using google cloud console...so I start stream by docker conpose up...its stops if i close the shell..is there any way i can keep it running even the shell is closed... sometimes. Electricity might go..and i can't use the chat feature it's not working..how to use the php.chat file
Hi there,
first of all thanks for your great work on streaming BBB sessions!
I'd like to use nginx with rtmp stream support to stream BBB sessions via liveStreaming to a webpage with video.js eg.
The architecture is quite simple and straight forward:
There is a nice video and documentation at https://www.nginx.com/blog/video-streaming-for-remote-learning-with-nginx/ for nginx+rtmp with HLS and dash output.
Connecting with VLC to nginx rtmp stream is no problem and works as expected.
Connecting with VLC to nginx HLS or dash output gives only audio of the BBB session.
I suppose the video output parameters of BBB-liveStreaming are not compatible with HLS or dash.
I've currently no evidence for my thesis but streaming an mp4 movie works as expected via HLS or dash.
Is there any way how I can change ffmpeg parameters of docker container on my own?
Other suggestions are welcome as well!
Kind regards
Timm
full log
liveStreaming | libavresample 4. 0. 0 / 4. 0. 0
liveStreaming | libswscale 5. 7.100 / 5. 7.100
liveStreaming | libswresample 3. 7.100 / 3. 7.100
liveStreaming | libpostproc 55. 7.100 / 55. 7.100
liveStreaming | [x11grab @ 0x558a84850b00] Stream #0: not enough frames to estimate rate; consider increasing pro
besize
liveStreaming | Input #0, x11grab, from ':122':
liveStreaming | Duration: N/A, start: 1596003871.224501, bitrate: 1988667 kb/s
liveStreaming | Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1920x1080, 1988667 kb/s, 29.97 fps, 1
000k tbr, 1000k tbn, 1000k tbc
liveStreaming | Guessed Channel Layout for Input Stream #1.0 : stereo
liveStreaming | Input #1, alsa, from 'pulse':
liveStreaming | Duration: N/A, start: 1596003871.271654, bitrate: 1536 kb/s
liveStreaming | Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
liveStreaming | Stream mapping:
liveStreaming | Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
liveStreaming | Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (native))
liveStreaming | Press [q] to stop, [?] for help
liveStreaming | [libx264 @ 0x558a8487a980] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
liveStreaming | [libx264 @ 0x558a8487a980] profile Constrained Baseline, level 4.2
liveStreaming | [libx264 @ 0x558a8487a980] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-
2018 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 ps
y_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_o
ffset=0 threads=1 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_int
ra=0 bframes=0 weightp=0 keyint=60 keyint_min=6 scenecut=0 intra_refresh=0 rc_lookahead=0 rc=cbr mbtree=0 bitrate=4
000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=4000 vbv_bufsize=8000 nal_hrd=cbr filler=1 ip_rati
o=1.40 aq=0
liveStreaming | Output #0, flv, to 'rtmps://live-api-s.facebook.com:443/rtmp/3247149751974439?s_bl=1&s_sc=3247149
775307770&s_sw=0&s_vt=api-s&a=Abwtzvha1Q_-SYP_':
liveStreaming | Metadata:
liveStreaming | encoder : Lavf58.45.100
liveStreaming | Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p(progressive), 1920x1080,
q=-1--1, 4000 kb/s, 29.97 fps, 1k tbn, 29.97 tbc
liveStreaming | Metadata:
liveStreaming | encoder : Lavc58.91.100 libx264
liveStreaming | Side data:
liveStreaming | cpb: bitrate max/min/avg: 4000000/0/4000000 buffer size: 8000000 vbv_delay: N/A
liveStreaming | Stream #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, 160 kb/s
liveStreaming | Metadata:
liveStreaming | encoder : Lavc58.91.100 aac
[alsa @ 0x558a8485b5c0] Thread message queue blocking; consider raising the thread_queue_size option (current value
: 1024)
Hello Team ,
I am getting issue with Following things when i started streaming on youtube.
But when I share any external video then it works fine in streaming.
any small help is appreciated.
Thanks
if more than one meeting is currently running, the following error message appears:
Traceback (most recent call last):
File "./get_meetings.py", line 46, in
print(meetings['xml']['meetings'][meeting]['meetingName'])
TypeError: list indices must be integers or slices, not str
But if only one meeting is running, there is no problem
Describe the bug
Trying to launch docker-compose up throw an error.
Starting liveStreaming Attaching to liveStreaming liveStreaming | usage: stream.py [-h] [-s SERVER] [-p SECRET] [-i ID] [-I INTRO] liveStreaming | [-B BEGININTROAT] [-E ENDINTROAT] [-l] [-d] [-m] [-S] liveStreaming | [-A ATTENDEEPASSWORD] [-M MODERATORPASSWORD] liveStreaming | [-T MEETINGTITLE] [-u USER] [-t TARGET] [-c] liveStreaming | stream.py: error: unrecognized arguments: liveStreaming exited with code 2
To Reproduce
Debian 9 + Docker
Minimal .yml file
version: '2'
services:
bbb-streamer:
image: aauzid/bigbluebutton-livestreaming
container_name: liveStreaming
environment:
Describe the bug
If a MeetingID
includes a space, the sh script fails to pass the MeetingID
correctly
To Reproduce
Steps to reproduce the behavior:
"Demo Meeting"
(created by the Demo APIs)BBB_MEETING_ID="Demo Meeting"
Expected behavior
MeetingID
with a space should be supported.
Simply wrap ${BBB_MEETING_ID}
in double quotes possibly in startStream.sh
Additional context
Great feature though. Thank you very much for sharing your implementation of a RTMP streamer for BBB. Looking forward to using it soon.
I did all in the readme and installed and configured. But I dont know How to start the meeting.
I have few meetings with Greenlight as front end.
I want to use this feature experimentally in those meetings. How can I do that please?
How to hide the presentation...is there any way i can edit the stream.py file and use it...i have forked this project then edited stream.py and created and build repo in docker..still it runs old stream.py file...which branch is docker using
Describe the bug
Running xvfb/chrome + pulseaudio + ffmpeg is quite resource intensive.
This ticket is partially related to #27
To Reproduce
Stream a session for 5 hours from BBB to RTMP/YouTubeLive
With a 4 cpu / 8 gb VM, the BigBlueButton-liveStreaming service (ffmpeg really) runs out of memory under one hour
Observed behavior
When running normally, the ffmpeg process seems to consume ~300MB of res mem. When the thread message queue blocks, it shoots up to 2.5GB+ res mem. Sometimes it recovers and sometimes not.
Expected behavior
The BigBlueButton-liveStreaming service (on a dedicated VM/server) should be able to live stream for the whole duration of a meeting. In our case, about 5 hours.
Tested with the latest BigBlueButton-liveStreaming on Ubuntu 20.04, project's docker image, and project's docker image (upgraded to 20.04).
Question for the team
I have followed instruction and used default docker-compose.yml with required variables. when i run docker-compose up "Live" user join into the meeting for few seconds and then disappeared ( i can see "live" user appear and disappear in participants list in html5 client . so in youtube rmtp server only 1 or 2 seconds recorded .
Room has been created through moodle . moodle and BBB integration working fine and there are no issue
BBB version 2.2
I have followed all standard steps for docker container for streaming .
Is it bug or something that i have missed . I have searched google without any help. Does anyone has any idea what is going on?
Thank you
Please add some suggestions to the documentation on how to use this tool legally regarding GDPR and CCPA or similar regulation.
Hi,
I created a test meeting and configured You app to join that meeting. I see that live user is showing for a moment with headset icon but after while he just gets kicked out.
Did You have that happening also?
cant get checksum
Thanks for this great solution. I have implemented and it works well. However, I don't see the chats from youtube viewers. The default chat message is sent and the Chat user is present in the meeting, but nothing afterwards. Has anyone been able to see the chats in the meeting room? Thanks.
Hi Team,
I setup a BBB Live Streaming you can check here.
Required settings
BBB_URL - URL to BBB including http/https e.g. https://your_BigBlueButton_server/bigbluebutton/api -----I done this
BBB_MEETING_ID - ID of the BBB Meeting (You can get the ID via an API call: https://your_bbb_server/bigbluebutton/api/getMeetings?checksum=) -----I don't know how to get it.?
when i tried https://bbb.xyz.com/bigbluebutton/api/getMeetings?checksum= to copy past on browser it revert me with
root@vmi381532:~/stream# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
af1263dfd39e aauzid/bigbluebutton-livestreaming "sh docker-entrypoin…" 2 hours ago Up 2 hours liveStreaming
db27545b7773 xyz:release-v2 "bin/start" 2 hours ago Up 2 hours 127.0.0.1:5000->80/tcp greenlight-v2
3689e7b9758a postgres:9.5 "docker-entrypoint.s…" 2 hours ago Up 2 hours 127.0.0.1:5432->5432/tcp greenlight_db_1
Please let me know if you need more infromation i installed Greenlight and BBB and it's working fine.
How to do below setting and where ? which path?
BBB_ENABLE_CHAT - Enable Chat feedback channel
BBB_REDIS_HOST - Set REDIS host (Default: redis)
BBB_REDIS_CHANNEL - Set REDIS channel (Default: chat)
BBB_CHAT_NAME - the username to join the meeting for chatting. (Default: Chat)
Does it mean we can only have one stream per server? Is it possible to send Meeting_ID as an API so that we can have many streams
root@livestream:/home/shikkhangon_com# docker-compose up
Creating network "shikkhangon_com_default" with the default driver
Creating liveStreaming ... done
Attaching to liveStreaming
liveStreaming | INFO:root:Starting browser!!
liveStreaming | INFO:root:streaming intro...
liveStreaming | ffmpeg version 4.3-218.04.york0 Copyright (c) 2000-2020 the FFmpeg developers18.04)
liveStreaming | built with gcc 7 (Ubuntu 7.5.0-3ubuntu1
liveStreaming | configuration: --prefix=/usr --extra-version='2~18.04.york0' --toolchain=hardened --libdir=/usr/lib/x86_6
4-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disabl
e-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enabl
e-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribi
di --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libo
penmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --en
able-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --en
able-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --e
nable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --en
able-sdl2 --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r
--enable-libx264 --enable-shared
liveStreaming | libavutil 56. 51.100 / 56. 51.100
liveStreaming | libavcodec 58. 91.100 / 58. 91.100
liveStreaming | libavformat 58. 45.100 / 58. 45.100
liveStreaming | libavdevice 58. 10.100 / 58. 10.100
liveStreaming | libavfilter 7. 85.100 / 7. 85.100
liveStreaming | libavresample 4. 0. 0 / 4. 0. 0
liveStreaming | libswscale 5. 7.100 / 5. 7.100
liveStreaming | libswresample 3. 7.100 / 3. 7.100
liveStreaming | libpostproc 55. 7.100 / 55. 7.100
liveStreaming | false: No such file or directory
liveStreaming | INFO:root:Open BBB and hide elements!!
liveStreaming | INFO:root:create_meeting...
liveStreaming | INFO:root:get_join_url...
liveStreaming | Traceback (most recent call last):
liveStreaming | File "stream.py", line 157, in
liveStreaming | bbb_browser()
liveStreaming | File "stream.py", line 75, in bbb_browser
liveStreaming | WebDriverWait(browser, selelnium_timeout).until(element)
liveStreaming | File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/support/wait.py", line 80, in until
liveStreaming | raise TimeoutException(message, screen, stacktrace)
liveStreaming | selenium.common.exceptions.TimeoutException: Message:
liveStreaming |
liveStreaming exited with code 1
fonally some eroor..whats the prb??
Hi,
Great to see this module for BBB. Want to reconfirm whether we can live stream multiple conferences at a time?
Thanks and Regards,
KiranKumar
Describe the bug
startStream.sh
expects a couple of boolean ENV parameters (e.g. BBB_ENABLE_CHAT
, BBB_SHOW_CHAT
,BBB_START_MEETING
, BBB_INTRO
).
However, BBB_INTRO
, BBB_START_MEETING
are checked against an empty string instead of true.
As a result, chat.py tries to start a meeting, even though BBB_START_MEETING is set to false.
Hi team,
I just want to ask a simple question, but I can not find an FAQ or mailling list. So decided to ask here.
I am going to use liveStreaming to stream some meetings to youtube. But I want to resize/hide the presentation section, focus some videos on the go.. It is possible or a trick that I can use?
Thanks for your efforts.
Hi folks, I have problems with the docker...
my current config:
environment:
# BigBlueButton Server url:
- BBB_URL=https://bbb.xxxxxx.com/bigbluebutton/
# BigBlueButton secret:
- BBB_SECRET=therightsecretishere
# BigBlueButton meetingID:
- BBB_MEETING_ID=rightIDobtainedfromBBB
# Media server url:
- BBB_STREAM_URL=rtmps://live-api-s.facebook.com:443/rtmp/myrightFBstreamkey
Start BBB meeting successfully, with 2 users connected ok watching & listening
Started docker liveStreaming successfully, but stream never reaches FB Live
Checking docker liveStreaming logs... message is:
"INFO:root:Meeting isn't running. We will try again in 5 seconds!"
Why docker cant see meeting running?
Do I need to do something else?
Thanks!!!
Describe the bug
The transmission to youtube is done very well, however it consumes more than 100% of the CPU.
To Reproduce
Expected behavior
The consumption should not be so high if there is only the slide.
Thank you for your time in contributing to this wonderful complement to BigBlueButton.
Hi, I can see the examples folder player_and_chat.php and sendChatMessage.php but I can't find any instructions to use this feature, and it's very important to let viewers interact to the participants in the BBB meeting room that are making the livestreaming. Any help is appreciated.
Best regards.
finally live stream working..but when i write something in whiteboard it doesnt come in live feed and i have hide the whiteboard it still shows in livestream...here is my log
liveStreaming | libavcodec 58. 91.100 / 58. 91.100
liveStreaming | libavformat 58. 45.100 / 58. 45.100
liveStreaming | libavdevice 58. 10.100 / 58. 10.100
liveStreaming | libavfilter 7. 85.100 / 7. 85.100
liveStreaming | libavresample 4. 0. 0 / 4. 0. 0
liveStreaming | libswscale 5. 7.100 / 5. 7.100
liveStreaming | libswresample 3. 7.100 / 3. 7.100
liveStreaming | libpostproc 55. 7.100 / 55. 7.100
liveStreaming | [x11grab @ 0x5588758c9b00] Stream #0: not enough frames to estimate rate; consider increasing probesize
liveStreaming | Input #0, x11grab, from ':122':
liveStreaming | Duration: N/A, start: 1594542045.850971, bitrate: 1988667 kb/s
liveStreaming | Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1920x1080, 1988667 kb/s, 29.97 fps, 1000k tbr,
1000k tbn, 1000k tbc
liveStreaming | Guessed Channel Layout for Input Stream #1.0 : stereo
liveStreaming | Input #1, alsa, from 'pulse':
liveStreaming | Duration: N/A, start: 1594542045.873492, bitrate: 1536 kb/s
liveStreaming | Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
liveStreaming | Stream mapping:
liveStreaming | Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
liveStreaming | Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (native))
liveStreaming | Press [q] to stop, [?] for help
liveStreaming | [libx264 @ 0x5588758f3980] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
liveStreaming | [libx264 @ 0x5588758f3980] profile Constrained Baseline, level 4.2
liveStreaming | [libx264 @ 0x5588758f3980] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - htt
p://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed
_ref=0 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=1 lookahead_th
reads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=60 keyin
t_min=6 scenecut=0 intra_refresh=0 rc_lookahead=0 rc=cbr mbtree=0 bitrate=4000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep
=4 vbv_maxrate=4000 vbv_bufsize=8000 nal_hrd=cbr filler=1 ip_ratio=1.40 aq=0
liveStreaming | Output #0, flv, to 'rtmps://live-api-s.facebook.com:443/rtmp/3198707180152030?s_bl=1&s_sc=3198707210152027&
s_sw=0&s_vt=api-s&a=AbwpW7x1fRUw1NB5':
liveStreaming | Metadata:
liveStreaming | encoder : Lavf58.45.100
liveStreaming | Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p(progressive), 1920x1080, q=-1--1, 4
000 kb/s, 29.97 fps, 1k tbn, 29.97 tbc
liveStreaming | Metadata:
liveStreaming | encoder : Lavc58.91.100 libx264
liveStreaming | Side data:
liveStreaming | cpb: bitrate max/min/avg: 4000000/0/4000000 buffer size: 8000000 vbv_delay: N/A
liveStreaming | Stream #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, 160 kb/s
liveStreaming | Metadata:
liveStreaming | encoder : Lavc58.91.100 aac
When streaming several meetings in separate docker containers, both users get kicked out shortly after the second stream starts, thereby ending both streams.
Steps to reproduce the behavior:
docker-compose up -d
and observe that Live user joins the meeting and the first stream start.docker-compose up -d
and observe that Live user joins the meeting for a few seconds but stream 2 does not start.Expected behavior
Both meetings should be streamed to respective URLs and Live users should not get kicked out.
Desktop :
It will be great if we can stream to Multiple RTMP URL. It will be great if we can have an update based on the solution provided by Antonio Guirado
Hi,
you can edit code and use ffmpeg commands to do a "tee" to encode only one time and have 2 or more outputs (you don't need more CPU or Memory resources).
For example, I use the following command (see mainly bold parameters):
$FFMPEG -thread_queue_size 1024 -f x11grab -draw_mouse 0 -s 1920x1080 -i :1000 -f alsa -i pulse -ac 2 -c:a aac -b:a 64k -threads 0 -flags +global_header -c:v libx264 -pix_fmt yuv420p -s 1920x1080 -preset ultrafast -threads 0
-f tee -map 0:0 -map 1:0 "[f=flv]$BBB_STREAM_URL1|[f=flv]$BBB_STREAM_URL2"
Hi Man,
I finally got it how to get the meeting id and callbacks but once it is started it always gives this error and crashes
liveStreaming | INFO:root:Starting browser!!
liveStreaming | INFO:root:Open BBB and hide elements!!
liveStreaming | Traceback (most recent call last):
liveStreaming | File "stream.py", line 94, in <module>
liveStreaming | bbb_browser()
liveStreaming | File "stream.py", line 63, in bbb_browser
liveStreaming | browser.find_elements_by_css_selector('[aria-label="Listen only"]')[0].click()
liveStreaming | File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py", line 80, in click
liveStreaming | self._execute(Command.CLICK_ELEMENT)
liveStreaming | File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
liveStreaming | return self._parent.execute(command, params)
liveStreaming | File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
liveStreaming | self.error_handler.check_response(response)
liveStreaming | File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
liveStreaming | raise exception_class(message, screen, stacktrace)
liveStreaming | selenium.common.exceptions.WebDriverException: Message: unknown error: session deleted because of page crash
liveStreaming | from unknown error: cannot determine loading status
liveStreaming | from tab crashed
liveStreaming | (Session info: chrome=81.0.4044.129)
When live Streaming it shows in Public Chat as
"Live Streaming to : YouTubeStreamURL/StreamKey"
This is very dangerous as stream Key should be kept a secret as anyone can use it to stream to my Channel. Is there a way to hide this Public Chat Message?
Hello BigBlueButton-liveStreaming team,
Thanks for this great project. I have followed all the steps you've mentioned in the readme page on Github. I am stuck getting the BBB_STREAM_URL value. Is BBB_STREAM_URL my Facebook page/youtube channel I am going to stream the meeting to?
I have tried to stream a meeting on a Facebook page, it gave me Stream URL and Stream key but I couldn't find a way to put the stream key into the docker-compose.yml file. To test it, I put the stream URL into the file but got this error:
liveStreaming | libavutil 56. 51.100 / 56. 51.100
liveStreaming | libavcodec 58. 91.100 / 58. 91.100
liveStreaming | libavformat 58. 45.100 / 58. 45.100
liveStreaming | libavdevice 58. 10.100 / 58. 10.100
liveStreaming | libavfilter 7. 85.100 / 7. 85.100
liveStreaming | libavresample 4. 0. 0 / 4. 0. 0
liveStreaming | libswscale 5. 7.100 / 5. 7.100
liveStreaming | libswresample 3. 7.100 / 3. 7.100
liveStreaming | libpostproc 55. 7.100 / 55. 7.100
liveStreaming | [x11grab @ 0x5587fdc13200] Stream #0: not enough frames to estimate rate; consider increasing probesize
liveStreaming | Input #0, x11grab, from ':122':
liveStreaming | Duration: N/A, start: 1594463332.353569, bitrate: 1988667 kb/s
liveStreaming | Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1920x1080, 1988667 kb/s, 29.97 fps, 1000k tbr, 1000k tbn, 1000k tbc
liveStreaming | [x11grab @ 0x56087da2a6c0] Stream #0: not enough frames to estimate rate; consider increasing probesize
liveStreaming | Input #0, x11grab, from ':122':
liveStreaming | Duration: N/A, start: 1594463332.365846, bitrate: 1988667 kb/s
liveStreaming | Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1920x1080, 1988667 kb/s, 29.97 fps, 1000k tbr, 1000k tbn, 1000k tbc
liveStreaming | ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused
liveStreaming |
liveStreaming | [alsa @ 0x56087da35180] cannot open audio device pulse (Connection refused)
liveStreaming | pulse: Input/output error
liveStreaming | ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused
liveStreaming |
liveStreaming | [alsa @ 0x5587fdc1de00] cannot open audio device pulse (Connection refused)
liveStreaming | pulse: Input/output error
liveStreaming exited with code 0
Thanks in advance.
Is your feature request related to a problem? Please describe.
How to combine this docker with GreenLight Docker
Describe the solution you'd like
We use greenlight for our BBB Server 2.9.11. It also use docker. How to combine docker-compose.yml between greenlight and BBB-liveStreaming
Thank you,
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.