UPD:
- В docker-compose1.yml внизу указываете айдишник (https://events.webinar.ru/21390906/1711152720/record-new/1794592932 айдишник это последнее число 1794592932) либо же можно прям ссылку указать.
- Запускаете download.bat
- Он скачивает чанки/файлы и создает файл "скрипта" -- этот файл это описание всех этапов стрима с таймингами и файлами
Изменил название чанков -- теперь тип и время от начало не подписывается, потому что это указано в вышеупомянутом скрипте, то есть по факту мы имеем скаченные чанки (демонстрация экрана/вебки/слайды) вебинара + хронология вебинара с указанием когда какой файл должен запускаться и какой у него тип, так же там в скрипте и сообщения из чата.
Сделал контейнер-базу для gpu, он хавает пустой файл new_mount.py -- В нём можно писать логику монитирования. Для винды11 нужна wsl2 и туда cuda ставить (Вторая ссылка может оказаться самой полезной, там покомандно весь процесс описан) https://learn.microsoft.com/en-us/windows/ai/directml/gpu-cuda-in-wsl https://gist.github.com/nekiee13/c8ec43bce5fd75d20e38b31a613fd83d https://stackoverflow.com/questions/49589229/is-gpu-pass-through-possible-with-docker-for-windows
Всё ниже -- старье (Для общей информации); наработки
================
- Создание вирутального окружения
python -m venv env
- Активация виртуального окружения
source env/bin/activate
- Установка зависимостей
pip install -r requirements.txt
- Запуск
python download_webinar.py
- Вводим ссылку на вебинар или последнее число в ссылке
Скрипт создает папку downloads куда сохраняет полученные чанки, сохраняются под именем (время от начала)_(тип видео).mp4 Время от начало ведется с самого первого аудио-видео клипа (сделано для того, чтобы не создавать время тишины, когда вебинар начался, люди пишут, а админ ещё не начал ничего показывать/говорить) Тип видео в данный момент 4:
- screensharing (демонстрация экрана) с указанием времени
- conference (вебка) с указанием времени
- Слайд (jpg) с указанием времени
- Файл (FILE_) в основном слайды берутся из вордовских файлов, их тоже можно скачивать, они сохраняются в downloads с префиксом FILE_(название файла) без указания времени
На скрине выше можно видеть в самом низу по центру видео-файл, но без превью: это аудио-файл, без видео (когда не включена вебка, или вебинар баганул)
Скрипт создает файл chat.txt в нем хранятся сообщения чата и время отправки в секундах сначала вебинара (начала вебинара считается от первого видео-аудио файла, это значит, что сообщения написанные раньше этого момента будут иметь время отправки 0)
ещё раз по-простому: за ноль берется первый видеоряд, остальные файлы имеют префикс в секундах от этого самого нуля. Сообщения в чате ДО первого видеоряда зануляются
ЧТО НУЖНО СДЕЛАТЬ: Какой-то софт (скорее всего ffmpeg) который будет монтировать скачанные видео, аудио и слайды (хз что ещё может быть в вебинарах, с ютубом и прочими штуками, иногда встречающимися в вебинаре -- не разбирался ещё). В идеале, чтобы слайды (или скрин-каст) отображался в центре экрана, конференция (вебка) и чат сбоку -- в общем компоновка как в оригинальном вебинаре. Но в вебке смысла особого нет, а чат можно и из файла прочитать, при этом большая нагрузка при монтирование. Самая минимальная штука это:
- Взять аудио со всех файлов
- Склеить все скрин-касты и слайды
- Налепить поверх аудио
ЧТО НА ДАННЫЙ МОМЕНТ ЕСТЬ:
Cкрипт для ffmpeg (python mount.py
), в целом он склеивает, вроде даже норм (только аудио-видео файлы, слайды ещё не делал), но где-то небольшой расинхрон по звуку (output1.mp4) случается. Настройки монтирования поставил самые ужасные (линь, дрова нвидиа ¯_(ツ)_/¯). Расинхрон убирается (output.mp4), если перед монтированием удалить 0.0_conference.mp4 -- как-то связано с записью видимо, потому что этот файл до включения записи в вебинаре. В папке downloads щас находится часть файлов (удалил остальные, чтобы монтирование меньше занимало)