بایگانی

نحوه دانلود ویدئوهای ضبط شده در بیگ بلو باتن

چند اسکریپت برای دانلود ضبط‌های BigBlueButton (BBB) ​​به عنوان ویدیو.

BBB به جلسات ضبط اجازه می دهد و امکان پخش مجدد ضبط ها را در صفحه پخش وب خود فراهم می کند.

برای ضبط‌هایی که برای جلسات BBB با نور سبز انجام می‌شود، URL صفحه پخش معمولاً شبیه به این است

 https://bbb.example.com/playback/presentation/2.0/playback.html?meetingId=375240faa7265529b58e0efe9f5fe793-b8b2b763a50993de7dfd0

ابزارهای ارائه شده در اینجا با چنین URL ارسال شده در آرگومان کار می کنند.

نکته ای در مورد اسلایدها و پخش ویدیو

یکی از ویژگی های خوب BBB این واقعیت است که برای ارائه یک اسلاید، نیازی به اشتراک گذاری صفحه نمایش خود (به عنوان یک جریان ویدئو) ندارید، بلکه فقط باید فایل خود را آپلود کنید، که سپس به صورت خودکار به تصاویر تبدیل می شود. همگام با مرور بعدی/قبلی شما در اسلایدها برای شرکت کنندگان ارسال می شود.

این برای افرادی با پهنای باند کم، که می‌توانند اسلایدها را (به‌عنوان تصاویر «ایستا») بدون مشکل دریافت کنند، به‌جای دریافت یک جریان ویدیوی تمام صفحه سنگین‌تر، عالی است.

اما یک عارضه جانبی این است که پخش یک ضبط با پخش مجدد اسلایدها انجام می شود، درست همانطور که به صورت زنده انجام می شود: نمایش تصاویر یکی پس از دیگری.

در حالی که بازیابی صدا، وب‌کم شرکت‌کنندگان، یا اشتراک‌گذاری‌های صفحه به‌عنوان جریان‌های ویدیویی که مستقیماً از برنامه وب در دسترس هستند، آسان است، بنابراین برای اسلایدهایی که مستقیماً به عنوان ویدیو ارائه نمی‌شوند، یکسان نیست.

بیایید ابتدا ساده‌ترین ابزار را ببینیم download_bbb_data.py که می‌توان از آن برای دانلود همه چیز به جز اسلایدها استفاده کرد، که ممکن است اولین گزینه شما باشد.

بارگیری ضبط‌های موجود از قبل

ابتدا پایتون و وابستگی های مورد نیاز آن را دانلود و نصب کنید:

sudo apt update
sudo apt install python3 python3-pip
pip3 install -r python-requirements.txt

برای دانلود ویدیوها و اسلایدهایی که از قبل برای مشاهده در صفحه پخش BBB در دسترس هستند، کافی است URL آن را به آدرس زیر ارسال کنید:

$ ./download_bbb_data.py URL

اسکریپت فایل های زیر را دانلود می کند:

Videos/deskshare.[webm|mp4]: حاوی ویدیوی deskshare است

Videos/webcam.[webm|mp4]: حاوی ویدیوی وب کم با آهنگ ضبط شده است

Slides/: شامل اسلایدهایی است که به صورت تصویر دانلود شده اند

Thumbnails/: شامل تصاویر کوچک است

افزودن آهنگ صوتی به ویدیوی اشتراک‌گذاری روی میز

برای این کار باید ffmpeg و bc را نصب کنیم:

sudo apt update
sudo apt install ffmpeg bc

track صدای ضبط شده در ویدیوی وب کم ذخیره می شود، و Deskshare هیچ صدایی ندارد. برای ادغام آهنگ صوتی با ویدیوی Deskshare، integrate_soundtrack.sh اسکریپت را اجرا کنید:

./integrate_soundtrack.sh Videos [output_file].[ext]

اسکریپت دو فایل ایجاد می کند:

output.opus: شامل آهنگ صوتی ضبط شده استخراج شده ازwebcam.webm

output_file(به طور پیش فرض: output.webm): حاوی ویدیوی DeskShare با آهنگ صوتی است.

انتخاب فرمت ویدئو

برای این کار باید ffmpeg و bc را نصب کنیم:

sudo apt update
sudo apt install ffmpeg bc

بسته به پیکربندی نمونه BBB شما، ویدیوهای ضبط شده مستقیماً با فرمت mp4 یا در سرور در دسترس خواهند بود. به‌طور پیش‌فرض، اسکریپت سعی می‌کند با فرمت webm بارگیری شود و اگر وب در دسترس نباشد، سعی می‌کند به mp4 تبدیل شود. 

اگر وب را دانلود کرده اید و mp4 می خواهید، می توانید آن را با استفاده از دستور زیر انجام دهید:

$ ./webm_to_mp4.sh output.webm output.mp4

ضبط کامل پخش با تصویر الگالو/سلنیوم داکر

این گزینه بعدی شماست، اگر می‌خواهید در یک ویدیو، محتویات اسلایدها یا ناحیه تخته سفید پخش را ضبط کنید.

این ابزار دوم ضبط را در مرورگری که در داخل یک ظرف Docker اجرا می شود پخش می کند و ویدیو و صدای آن پنجره مرورگر را ضبط می کند.

به capture-full-replay.sh برخی ابزارها (Docker، ffmpeg، Python 3،…) نیاز دارد.

قبل از راه‌اندازی، برخی از وابستگی‌ها را نصب کنید:

sudo apt update
sudo apt install bc ffmpeg docker.io python3 npm python3-pip docker.io
npm install
pip3 install -r python-requirements.txt

اکنون برای ضبط مجدد آماده هستید:

bash capture-full-replay.sh URL

که در آن URL آدرس صفحه پخش است (به بالا مراجعه کنید).

حالا صبور باشید اجرا کمی بیشتر از پخش کامل ضبط طول می کشد…

صبر کنید تا پخش کامل انجام شود و ویدیوی MP4 حاصل را دریافت کنید.

نحوه اضافه کردن قابلیت دانلود ویدیو در بیگ بلو باتن

برای اینکه شما بتونید قابلیت دانلود ویدیو رو در سرور بیگ بلو باتن خودتون داشته باشید لازم هستش که یک اسکریپت رو نصب کنید پس همراه ما باشید تا این قابلیت رو روی سرورمون فعال کنیم.

ویدئوی مونتاژ شده شامل:

ویدئوهای صوتی و وب کم به اشتراک گذاشته شده
اسلایدهای ارائه شده با
اقدامات تخته سفید (متن و نقاشی)
حرکات مکان نما
بزرگنمایی
اشتراک گذاری صفحه نمایش
زیرنویس ها
به دنبال نگهدارنده فعال
نصب
دقت داشته باشید که قبل از هرکاری docker و docker-compose رو روی هاست خودتون نصب کنید.

sudo apt update
sudo apt install docker docker-compose
# (as root or with sudo)
cd /opt

## fetch source from github
git clone https://github.com/tilmanmoser/bbb-video-download.git
cd bbb-video-download

## build app with docker-compose
docker-compose build app

## create the workdir (as referenced in docker-compose.yml) and make bigbluebutton the owner
mkdir tmp
chown bigbluebutton:bigbluebutton tmp

## add bigbluebutton user to docker group
usermod -aG docker bigbluebutton

اگر می خواهید اسکریپت را برای هر ضبط جدید به طور خودکار اجرا کنید، هوک post_publish را به این صورت نصب کنید:

# (as root or with sudo)
cd /opt/bbb-video-download
export BBB_VIDEO_DOWNLOAD_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
export BBB_UID="$(cat /etc/passwd | grep bigbluebutton | cut -d: -f3)"
export BBB_GID="$(cat /etc/passwd | grep bigbluebutton | cut -d: -f4)"

## bbb v2.2:
envsubst < ./snippets/post_publish_bbb_video_download.rb.template > /usr/local/bigbluebutton/core/scripts/post_publish/a0_post_publish_bbb_video_download.rb
## bbb v2.3:
envsubst < ./snippets/bbb23_post_publish_bbb_video_download.rb.template > /usr/local/bigbluebutton/core/scripts/post_publish/a0_post_publish_bbb_video_download.rb
## bbb v2.3 with Ruby 2.7
envsubst < ./snippets/bbb23_ruby27_post_publish_bbb_video_download.rb.template > /usr/local/bigbluebutton/core/scripts/post_publish/a0_post_publish_bbb_video_download.rb

ویدیوهای قابل دانلود برای ضبط های موجود ایجاد کنید

از bbb-record --rebuild <presentation_id> برای پردازش مجدد یک ارائه یا bbb-record --rebuildall برای پردازش مجدد همه ارائه های موجود استفاده کنید. برای این کار، اسکریپت post_publish باید نصب شود.

همچنین می‌توانید bbb-video-download را به صورت دستی اجرا کنید:

cd /opt/bbb-video-download
sudo -u bigbluebutton docker-compose run --rm --user 998:998 app node index.js -h
>usage: index.js [-h] [-v] -i INPUT -o OUTPUT
>
>A BigBlueButton recording postscript to provide video download capability.
>
>optional arguments:
>  -h, --help            show this help message and exit
>  -v, --version         show program's version number and exit
>  -i INPUT, --input INPUT
>                        path to BigBlueButton published presentation
>  -o OUTPUT, --output OUTPUT
>                        path to outfile

مثالی برای ارائه منتشر شده با شناسه جلسه داخلی 9a9b6536a10b10017f7e849d30a026809852d01f-1597816023148:

sudo -u bigbluebutton docker-compose run --rm --user 997:996 app node index.js -i /var/bigbluebutton/published/presentation/9a9b6536a10b10017f7e849d30a026809852d01f-1597816023148 -o /var/bigbluebutton/published/presentation/9a9b6536a10b10017f7e849d30a026809852d01f-1597816023148/video.mp4

برای BigBlueButton 2.3 باید user:group مربوطه را پیدا کنید (cat /etc/passwd | grep bigbluebutton)

sudo -u bigbluebutton docker-compose run --rm --user 997:996 app node index.js -i /var/bigbluebutton/published/presentation/9a9b6536a10b10017f7e849d30a026809852d01f-1597816023148 -o /var/bigbluebutton/published/presentation/9a9b6536a10b10017f7e849d30a026809852d01f-1597816023148/video.mp4

لطفاً توجه داشته باشید که همه دایرکتوری هایی که می خواهید به عنوان ورودی یا خروجی به آنها دسترسی داشته باشید باید به صورت volumes در docker-compose.yml نصب شوند. 

مانیتورینگ BigBlueButton

Monitoring Web App d یک برنامه بسیار ساده برای BigBlueButton هستش که لیستی از تمام جلسات فعلی را در سرور BigBlueButton به شما نمایش میده.
متغیرهای مورد نیاز ENV:

API_BASE_URL
API_SECRET
سرور HTTP روی پورت: 5000 گوش می دهد

داکر هاب: https://hub.docker.com/r/greenstatic/bigbluebutton-monitoring

نصب و راه اندازی
ما فرض می کنیم که docker و همچنین nginx را نصب و پیکربندی کرده اید.

بنابراین با استفاده از docker-compose مطمئن شوید که docker-compose را نصب کرده اید.

حالا در سرور BigBlueButton خودتون با استفاده از دستور mkdir پوشه زیر رو ایجاد کنید.

mkdir ~/bbb-monitor
در قدم دوم فایل ~/bbb-monitor/docker-compose.yaml را ایجاد کنید و محتویات docker-compose.yaml را از این مخزن کپی کنید.
~/bbb-monitor/docker-compose.yaml را ویرایش کنید و فیلدهای لازم را جایگزین کنید.
فایل ~/bbb-monitor/secrets.env را ایجاد کنید و API_SECRET خود را در آن قرار دهید.

وارد پوشه ~/bbb-monitor بشید و sudo docker-compose up -d را اجرا کنید.
اگر می خواهید نسخه خاصی از کانتینر docker را به جای آن اجرا کنید، از دستور زیر استفاده کنید:
sudo BBB_MONITORING_VERSION= docker-compose up -d

نصب جایگزین بدون docker-compose 

# نمونه ای از URL BASE API: https://bbb.example.com/bigbluebutton/api/

# API SECRET KEY را می توان با SSH در BBB پیدا کرد و اجرا کرد: `$ bbb-conf –secret`

docker run –name bbb-monitoring -d -p 127.0.0.1:4000:5000 –env API_SECRET=<API SECRET KEY> –env API_BASE_URL=<API BASE URL> greenstatic/bigbluebutton-monitoring

# اگر می خواهید HTTP Basic Auth را پیکربندی کنید، دستورات زیر رو اجرا کنید.

sudo apt-get install apache2-utils

 sudo htpasswd -c /etc/nginx/.htpasswd admin #

کاربر: admin

# سپس رمز عبور را وارد کنید

Nginx (متداول برای هر دو روش نصب)
می توانید به محفظه مانیتورینگ bbb که روی پورت 4000 اجرا می شود (فقط میزبان محلی) پروکسی کنید. نمونه پیکربندی nginx با احراز هویت اولیه HTTP:

# BigBlueButton Monitoring
        location /_monitoring/ {
           auth_basic "BigBlueButton Monitoring";
           auth_basic_user_file /etc/nginx/.htpasswd;
           proxy_pass         http://127.0.0.1:4000/;
           proxy_redirect     default;
           proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
           client_max_body_size       10m;
           client_body_buffer_size    128k;
           proxy_connect_timeout      90;
           proxy_send_timeout         90;
           proxy_read_timeout         90;
           proxy_buffer_size          4k;
           proxy_buffers              4 32k;
           proxy_busy_buffers_size    64k;
           proxy_temp_file_write_size 64k;
           include    fastcgi_params;
        }

آموزش تبدیل ویدئوهای ضبط شده به MP4 در بیگ بلو باتن

به راحتی این برنامه (bbb-mp4) رو در سرور BigBlueButton خودتون ادغام کنید تا به صورت خودکار ضبط های کلاس رو به ویدیوهای MP4 تبدیل کنید.

چگونه کار می کند؟

پس از پایان کلاس BigBlueButton، فرآیند ضبط شروع می شود، که ضبط را در سه مرحله پردازش می کند: بایگانی، پردازش و انتشار.

پس از انتشار ضبط، usr/local/bigbluebutton/core/scripts/post_publish/bbb_mp4.rb/ اجرا می‌شود.

در bbb_mp4.rb ما bbb-mp4.sh رو با meeting_id مربوطه فراخوانی می کنیم تا ضبط رو به ویدیوی mp4 تبدیل کنیم.

از این رو، می توانید با خیال راحت این پروژه را در سرور BigBlueButton موجود خود مستقر کنید.

در آینده، همه ضبط‌های شما به ویدیوهای MP4 تبدیل می‌شوند.

ضبط‌های قدیمی‌تر همچنان به‌عنوان ضبط پیش‌فرض پخش BBB در دسترس خواهند بود.

پیش نیاز

Docker را طبق دستورالعمل ذکر شده در اینجا نصب کنید https://docs.docker.com/engine/install/

با فرض نصب پروژه bbb-mp4 در /var/www/ از طریق ssh به سرور بیگ بلو باتن خودتون وصل بشید و دستورات زیر رو اجرا کنید:

cd /var/www
git clone https://github.com/manishkatyan/bbb-mp4.git
cd bbb-mp4

برای به روز رسانی پارامترهای زیر env. رو ویرایش کنید:

BBB_DOMAIN_NAME: (مثال – bbb.higheredlab.com)

COPY_TO_LOCATION: مکانی که ویدئوهای MP4 تبدیل شده باید در آن نگهداری شوند. آن را در مقدار پیش فرض بگذارید تا بتوانید ویدیوی MP4 را در https://<your-bbb-fqdn>/recording/<meeting_id>.mp4 مشاهده کنید.

برای نصب تمام بسته های مورد نیاز دستور زیر رو اجرا کنید.

./bbb-mp4-install.sh

bbb-mp4-install.sh بسته های زیر رو در Docker نصب می کند:

XVFB

گوگل کروم

FFmpeg

NodeJS

وابستگی ها

در طول این نصب، bbb-mp4-install.sh نیز موارد زیر را انجام می دهد:

bbb_mp4.rb را برای فراخوانی bbb-mp4.sh ایجاد کنید که تبدیل خودکار MP4 را پس از انتشار یک کلاس ضبط شروع می کند.

یک دایرکتوری ضبط شده در /var/www/bigbluebutton-default ایجاد کنید تا ویدیوهای MP4 تبدیل شده را ذخیره کنید تا از طریق مرورگر قابل دسترسی باشند.

index.html پیش‌فرض را در /var/bigbluebutton/playback/presentation/2.3/index.html به‌روزرسانی کنید تا دکمه دانلود ارائه شود.

# به کاربر bigbluebutton دسترسی sudo بدهید

usermod -aG sudo bigbluebuton

# دسترسی sudo را بدون رمز عبور کنید

sudo visudo

# خط زیر را در انتهای فایل اضافه کنید

bigbluebutton ALL=(ALL) NOPASSWD: ALL

نحوه استفاده از آن

برای مشاهده ویدیوهای MP4 ایجاد شده توسط bbb-mp4 هیچ تغییری از طرف شما لازم نیست.

همانطور که index.html پیش‌فرض را به‌روزرسانی کردیم، وقتی از URL پخش پیش‌فرض بازدید می‌کنید – https://<your-bbb-fqdn>/playback/presentation/2.3/<meeting_id> – یک دکمه دانلود را مشاهده می‌کنید.

اگر از Greenlight یا Moodle استفاده می‌کنید، همچنان از همین روش برای مشاهده ویدیوهای MP4 استفاده کنید.

آموزش نصب سرویس BigBlueButton روی اوبونتو 20.04

BigBlueButton یک سیستم کنفرانس وب منبع باز هستش.

BigBlueButton از اشتراک‌گذاری real-time صدا، ویدئو، اسلاید (با کنترل‌های تخته سفید)، چت و صفحه پشتیبانی می‌کنه.

مربیان می‌تونند دانش‌آموزان رو از راه دور با نظرسنجی، شکلک‌ها، وایت برد چند کاربره، و اتاق‌های برگزیده درگیر کنند.

ارائه دهندگان می تونند محتوا را ضبط و پخش کنند تا بعداً با دیگران به اشتراک بگذارند.

ما BigBlueButton رو برای یادگیری آنلاین طراحی کردیم (اگرچه میشه از اون برای بسیاری از برنامه های کاربردی دیگه هم استفاده کرد).

موارد استفاده آموزشی برای BigBlueButton عبارت هستند از:

تدریس خصوصی آنلاین (تک به یک)

همکاری گروهی (چند به چند)

کلاس های آنلاین (تک نفره یا چند نفره)

اگر شما قصد نصب و راه اندازی این سرویس رو دارید، می تونید روی سرور 64 بیتی اوبونتو 20.04 نصب کنید.

ما در این آموزش یک اسکریپت برای نصب بیگ بلو باتن در اختیار شما قرار میدیم که می تونید در عرض 30 دقیقه این سرویس رو راه اندازی و اجرا کنید.

پس تا انتهای این آموزش همراه ما باشید.

در حال حاضر آخرین نسخه بیگ بلو باتن نسخه 2.6 هستش که میخایم توی این آموزش اون رو نصب بکنیم.

اما قبل از شروع نصب شما بایستی به یه سری نکات توجه داشته باشید.

اولین نکته این هستش که BigBlueButton رو روی یک سرور 64 بیتی «تمیز» و اختصاصی اوبونتو 20.04 بدون هیچ نرم افزار قبلی نصب کنید.

منظور از یک سرور “تمیز” یعنی هیچ وب سرور قبلی (مانند آپاچی) یا برنامه های کاربردی وب (مانند plesk یا webadmin) که به پورت 80/443 متصل میشن نصب نشده باشه. و منظور ما از “اختصاصی” این هستش که این سرور برای هیچ چیز دیگه ای غیر از BigBlueButton استفاده نخواهد شد.

نکته : اگه میخاید نسخه قبلی BigBlueButton خودتون رو ارتقا بدید، توصیه می‌کنیم یک سرور تمیز برای BigBlueButton 2.6 در اوبونتو 20.04 راه‌اندازی کنید و پس از راه‌اندازی، سرورتون رو ارتقا بدید.

حداقل نیازهای سرور

اوبونتو 20.04، 64 بیتی با هسته لینوکس 5.x

آخرین نسخه docker نصب شده باشه

16 گیگابایت حافظه با قابلیت تعویض

8 هسته CPU

500 گیگابایت فضای دیسک

پورت های TCP 80 و 443 قابل دسترسی باشند

پورت های UDP 16384 – 32768 قابل دسترسی باشند

پهنای باند 250 مگابیت بر ثانیه یا بیشتر

یک نام میزبان (مانند bbb.example.com) برای تنظیم گواهی SSL

خب حالا برای نصب سرویس بیگ بلو باتن می تونید اسکریپت زیر رو در ترمینال لینوکس خودتون اجرا کنید. بعد از حدود 30 دقیقه بیگ بلو باتن برای شما همراه گرین لایت نصب خواهد شد.

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install-2.6.sh | bash -s — -v focal-260 -s bbb.faraznetwork.ir -e info@faraznetwork.ir -g -w

فقط به این نکته دقت داشته باشید که قبل از اجرای این دستور دامین و ایمیل خودتون رو در این دستور جایگزین کنید.