blindsidenetworks / scalelite

Scalable load balancer for BigBlueButton.
GNU Affero General Public License v3.0
469 stars 247 forks source link

playback-format "video" shows only a empty side with scalelite 1.4.1 #912

Closed gizmo1-11 closed 1 year ago

gizmo1-11 commented 1 year ago

Hallo, installation: bigbluebutton 2.6, greenlight 3.0.3.1 and scalelite 1.4.1 greenlight show playback-format "presentation" and "video" playback for "presentation" works, but "video" shows only an empty webpage

thanks

ffdixon commented 1 year ago

Thanks @gizmo1-11 -- we see the error on our end as well. The docker container is missing some nginx configuration files for playback. Look for a forthcoming update to scaleLite 1.4.x to fix the issue.

jfederico commented 1 year ago

@gizmo1-11 there is a new beta release and image. If you can give it a try and report the results here it would be great. Otherwise it will be released as it is in 1 week.

The thing is that, even though we are still supporting the systemd deployment with all its images for the community, we are not using it in any deployment for production. So we rely on community to verify those releases.

gizmo1-11 commented 1 year ago

Still same result. video-playback leads to an empty page.

gizmo1-11 commented 1 year ago

What I think that it looks strange .... playing the presentation, the record-ID in the browser-url is the same like the one i can see in the nginx-logs

url: /playback/presentation/2.3/389b8528780f6a5c31fe0b87c0b744f37978d764-1682271066923 log: GET /presentation/389b8528780f6a5c31fe0b87c0b744f37978d764-1682271066923/...

But calling the video-playback, the record-ID in the browser-url is different from the one i can see in the nginx-logs

url: /playback/video/389b8528780f6a5c31fe0b87c0b744f37978d764-1682271066923/ logs: GET /presentation/a36df07a3fc634e86b31062a92fad1ca39b9f458-1681909580052/video/....

JeanPluzo commented 1 year ago

Hi gizmo1-11,

there's a solution posted to the german group:

Regards, J.

gizmo1-11 commented 1 year ago

thanks JeanPluzo

location /playback/video/ { alias SCALELITE_RECORDING_DIR/var/bigbluebutton/published/video/; index index.html index.htm; }

Something like this (as you wrote) is missing. In the logfile from "scalelite-nginx" the path SCALELITE_RECORDING_DIR/var/bigbluebutton/published/video/ is never mentioned.

jfederico commented 1 year ago

Yeah. I thought I had made this change here in the main repo. See https://github.com/jfederico/scalelite/commit/b4b785aabc6a010ef0df0348eb20b6d1da9a9eea

Sorry, I am multitasking on different issues. I'll get you a new image to test

gizmo1-11 commented 1 year ago

Now I can play the video, but the presentation leads to "404 Not Found"-page

jfederico commented 1 year ago

That is strange. I have a systemd deployment and tested all the formats before merging it. Can you share the URLs you are using for each format?

How do you have your deployment? systemd?, docker-compose (version1)? docker-compose (version 2)?

Here my examples

<playback>
<format>
<type>screenshare</type>
<url>http://sl-systemd.jesus.blindside-dev.com/recording/screenshare/d049f769c8768070d1a927322a40da74a15d4adf-1682534461263/</url>
<length>0</length>
</format>
<format>
<type>video</type>
<url>http://sl-systemd.jesus.blindside-dev.com/playback/video/d049f769c8768070d1a927322a40da74a15d4adf-1682534461263/</url>
<length>0</length>
</format>
<format>
<type>presentation</type>
<url>http://sl-systemd.jesus.blindside-dev.com/playback/presentation/2.3/d049f769c8768070d1a927322a40da74a15d4adf-1682534461263</url>
<length>0</length>
</format>
</playback>
gizmo1-11 commented 1 year ago

We use a systemd-service-script

video https://scalelite-server/playback/video/389b8528780f6a5c31fe0b87c0b744f37978d764-1682271066923/ presentation https://scalelite-server/playback/presentation/2.3/389b8528780f6a5c31fe0b87c0b744f37978d764-1682271066923

on disc: video: SCALELITE_RECORDING_DIR/published/video/389b8528780f6a5c31fe0b87c0b744f37978d764-1682271066923 presentation SCALELITE_RECORDING_DIR/published/presentation/389b8528780f6a5c31fe0b87c0b744f37978d764-1682271066923

/etc/default/scalelite SCALELITE_RECORDING_DIR=/scalelite-recordings/var/bigbluebutton

/etc/systemd/system/scalelite-api.service docker run .... --mount type=bind,source=${SCALELITE_RECORDING_DIR},target=/var/bigbluebutton

gizmo1-11 commented 1 year ago

"/var/bigbluebutton/playback/presentation/2.3/f08ba728521e9e4f072a96b4232f96e7e9b58d66-1623055992032" failed (2: No such file or directory), client: 83.135.9.22, server: , request: "GET /playback/presentation/2.3/f08ba728521e9e4f072a96b4232f96e7e9b58d66-1623055992032 HTTP/2.0", host: "scalelite-server"

gizmo1-11 commented 1 year ago

Shouldnt it be "/var/bigbluebutton/published/presentation" instead of "/var/bigbluebutton/published" in "location /presentation" ? And then maybe also "alias" instead of "root" ?

cat /etc/nginx/http.d/scalelite.common

location /playback/video { alias /var/bigbluebutton/published/video; index index.html index.htm; }

location /presentation { root /var/bigbluebutton/published; index index.html index.htm; }

location /recording/screenshare { alias /var/bigbluebutton/published/screenshare; index index.html index.htm; }

gizmo1-11 commented 1 year ago

I give up. I don't understand enough from nginx. A summary: With v1.4.2-beta.1 "presentation" works, but "video" does not (firefox) With v1.4.2-beta.2 "presentation" doesn't work, but "video" works (firefox)

I tried the follow: I use v1.4.2-beta.1 and added the following lines to the /etc/nginx/conf.d/scalelite.common location /playback/video/ { alias /var/bigbluebutton/published/video/; index index.html index.htm; } I always used only firefox, so I did now and got the following: "presentation" works, but when I try to play "video", I get "server or network not working or format not supported" But in Google Chrome both "presentation" and "video" are working I can not see any logic. :-(

jfederico commented 1 year ago

@gizmo1-11

Yeah, all this comes from the implementation of protected recordings. We brought the locations from BBB we had at that time into the scalelite conf files. But we now have 2 files in BBB presentation.nginx and playback.nginx. I missed one of them. And since I had cached the client in my browser (from a previous version) I did not notice the 404.

Ok, one more try

I already opened a PR, but, can you try the images from here? jfederico/scalelite:SL-270

gizmo1-11 commented 1 year ago

I better ask, what I have to do .... So I change in the systemd-files the "blindsidenetwks/scalelite" with:

docker pull jfederico/scalelite:SL-270-recording-importer
docker pull jfederico/scalelite:SL-270-poller
docker pull jfederico/scalelite:SL-270-api
docker pull jfederico/scalelite:SL-270-nginx

Should I use all of them or is it enough only the exchange the nginx ?

gizmo1-11 commented 1 year ago

ok, I tried. Using the jfederico/scalelite:SL-270-nginx, everything seems to work.

jfederico commented 1 year ago

Hey @gizmo1-11 , I extensively tested it on Friday and already merged the PR that day. The new images can be in fact found as blindsidenetwks/scalelite:master but I'll release today

Thanks for helping with the tests