aau-zid / BigBlueButton-liveStreaming

Streams a given BBB Meeting to an RTMP Server.
GNU General Public License v3.0
200 stars 159 forks source link

docker compose is not running #93

Closed newgate1999 closed 3 years ago

newgate1999 commented 3 years ago

Hi, I want to livestream bbb-server on youtube and I have this error when I start the docker-compose.yml.

Attaching to liveStreaming liveStreaming | Starting pulseaudio... liveStreaming | Waiting for pulseaudio to start... liveStreaming | Traceback (most recent call last): liveStreaming | File "stream.py", line 214, in liveStreaming | while bbb.is_meeting_running(args.id).is_meeting_running() != True: liveStreaming | File "/usr/local/lib/python3.6/dist-packages/bigbluebutton_api_python/bigbluebutton.py", line 59, in is_meeting_running liveStreaming | response = self.send_api_request(ApiMethod.IS_MEETING_RUNNING, 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

this is my docker-compose.yml file.

version: '3.3' services: bbb-streamer: image: aauzid/bigbluebutton-livestreaming container_name: liveStreaming environment:

BigBlueButton Server url:

  - BBB_URL=
  # BigBlueButton secret:
  - BBB_SECRET=
  # BigBlueButton meetingID:
  - BBB_MEETING_ID=21f7997ee8784e937e294b44b3b95bf5363d59d6-1607520616935
  # 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=ap
  # 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=mp
  # meeting title (optional):
  - BBB_MEETING_TITLE=liveStreaming Test
  # 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=
  # Timezone (default: Europe/Vienna):
  - TZ=Europe/Vienna

volumes:
  - ./videodata:/video

can you help me? Thanks for your efforts.

mtsonline commented 3 years ago

sure the server is running? I do not get any answer on your bbb url. 403 looks as if you either have a wrong url or no access to the www root. You should not post your secret here - if it is your real key. cheers

newgate1999 commented 3 years ago

thanks @mtsonline . my bbb-server is running and meeting running too. I don't know where the problem. or my BBB_URL should remove path /api?

mtsonline commented 3 years ago

no the exact url of the server should not even matter, as far as I remember. The url as you specified should work. As said, the server could not be reached from here ... sure your liveStreaming server can reach your bbb server? What do you get when you open the specified server url manually?

Try to remove all unnecessary variables from the docker-compose. Only add the ones that are not empty or not false.

Is the meeting running? as you did not set start_meeting to true it has to be started before trying to stream it. Some reported that a webcam / screenshare has to be available in the room to work (not sure if this still is the case in the current version)

Are you using the last version? (master branch) ...or the last release?

newgate1999 commented 3 years ago

@mtsonline, I use source code on master branch. I set start_meeting to true and remove variables BBB_BEGIN_INTRO_AT but I have new problem.

Creating liveStreaming ... done Attaching to liveStreaming liveStreaming | Starting pulseaudio... liveStreaming | Waiting for pulseaudio to start... liveStreaming | INFO:root:Starting browser!! liveStreaming | INFO:root:streaming intro... liveStreaming | ffmpeg version 4.3.1-0york0~18.04 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='0york0~18.04' --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-libzimg --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 226, in liveStreaming | bbb_browser() liveStreaming | File "stream.py", line 110, in bbb_browser liveStreaming | create_meeting() liveStreaming | File "stream.py", line 164, 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

mtsonline commented 3 years ago

I suggested to remove empty and false values from the env. Looks like you try to play a non existing (or empty) intro? so remove intro from your settings or make sure the file is available. still issues?

newgate1999 commented 3 years ago

@mtsonline actually I run only docker-compose.yml to test livestream bigbluebutton on youtube. I have not tried running it with source code yet.

mtsonline commented 3 years ago

sorry, I do not understand what you are talking about. you just have to uncomment/comment the values in your docker-compose file - this has nothing to do with source.

cheers

newgate1999 commented 3 years ago

@mtsonline I comment everything related to intro but it is not the problem.

Attaching to liveStreaming liveStreaming | Starting pulseaudio... liveStreaming | Waiting for pulseaudio to start... liveStreaming | INFO:root:Starting browser!! liveStreaming | INFO:root:Open BBB and hide elements!! liveStreaming | INFO:root:create_meeting... liveStreaming | Traceback (most recent call last): liveStreaming | File "stream.py", line 226, in liveStreaming | bbb_browser() liveStreaming | File "stream.py", line 110, in bbb_browser liveStreaming | create_meeting() liveStreaming | File "stream.py", line 164, 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

mtsonline commented 3 years ago

403 means you do not have access rights to the url you open. maybe there is a problem with some redirect rules in nginx. you could try to remove the permanent redirect of greenlight if you have this installed on the same host. The liveStreaming does not do anything different than a normal webbrowser, so you should be able to try the steps manually by opening the server urls ...

newgate1999 commented 3 years ago

The problem lies with my server. I can't connect to port 1935. I have solved the problem. thank's @mtsonline.