LINUX.ORG.RU

VChat — простой видеочат на WebRTC

 sfu, ,


6

2

Рад представить вам мою поделку — простенький WebRTC-чат. «Поднимается» тремя командами.

Под капотом ReactJS (это фронт + завернут в ElectronJS если хотите приложение, чтобы был звук из системы во время стрима экрана и глобально работали горячие клавиши).

На бэкенде чисто WebSocket на Node.js + Mediasoup.js в качестве SFU-сервера. Лицензия — MIT.

Я не особо планирую поддерживать этот проект, но если будут серьезные баги и все такое, то я поправлю.

>>> Проект на GitHub

★★★

Проверено: CrX ()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от LightDiver

Подскажите PROMPT для chatgpt

нужно создать первоначальное окно где вводится свой ник.

Это поле будет id пользователя в текушей сессий.

В чате ник по этому id, ну и в статистике.

Делаю с chatgpt впервый раз.

antonio-an
()
Последнее исправление: antonio-an (всего исправлений: 1)
Ответ на: комментарий от antonio-an

Я с чатгпт не работаю, у меня от них бан из за формы черепа.

Попробуй квен. Так ему своими словами и объясни - он поймет. Сначала можешь обсудить идеи, он подскажет как сделать проще и лучше. Потом код. Но по началу будет хреново, пока ты сам не понимаешь точно что как делать.

LightDiver ★★★★★
()
Ответ на: комментарий от antonio-an

Я пытался с чатгпт работать через прокси в виде согильдийца с телеге. Передавал ему запросы, он скидывал код. Еще ни разу чатгпт не сделал рабочий код.

Он умеет очень красиво пиз имитировать бурную деятельность. Убедительно врет. Показывает классный структурированный код, окторый на первый взгляд может работать, но с ним всегда вылазят косяки, которые потом неделями можешь вылавливать, не понимая, где ж ты накосячил. В итоге потом копаешься в его портянке и разбираешь построчно нелинейныые рассуждения.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Вот как раз его логику я сейчас и изучаю.

он не точно запоминает историю уже сделанного собой.

присылает рандомные нововеденья(а у меня все ходы записанны) меня не наебёшь.

В сложном проекте надо разбивать на блоки и отрабатывать каждый блок в отдельности + говорить ему другое не трогай.

Как с трудным не послушным ребёнком!

в результате получается офигенно!

antonio-an
()
Ответ на: комментарий от antonio-an

Мне проще использовать их больше как базу знаний. Ты им описываешь что хочешь, они тебе варианты, технологии, архитектуры, плюсы минусы.

А код пишешь сам. Максимум можно как генерацию функций отдельных использовать, потому что большой класс уже редко без косяков могут проследить. Всеравно придется раз за разом переделывать вручную.

LightDiver ★★★★★
()
Ответ на: комментарий от antonio-an

Я пока видео не занимался - мне нужна функциональность чисто практическая сейчас. В основном это гильдейские рейды на 10/25 игроков.

Но не вижу особо сложностей в этом. Была бы база. Ты с чего не того начинаешь. То авторизация у тебя, то сразу видео-окно. Продумай архитектуру нормально, сделай основу. Расширяему, чтобы тебе самому можно было дорабатывать нормально.

Самое сложное - маршрутизация с учетом структуры проекта. Комнаты, подкомнаты, разделения, все это надо учитывать, организовать. Обратные связи клиент-сервер. Структура хранения данных и испоьзования - это важно. Ты же не будешь с диска каждый раз данные тягать? Так у тебя все заткнется очень быстро. Нужно кэшировать данные, но не все. Протоколы общения (а их много много хороших и разных).

Вот когда будет эта база, можно уже к готовым текстовым или звуковым чатам прикрутить виде - встанет как родное.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от LightDiver

А у меня видео это основное.

Самое сложное скрывается в мелочах.

antonio-an
()
Ответ на: комментарий от antonio-an

Ну в целом в Mediasoup можно «получить тех юзерв, кто продъюсит видео» и потом на фронте у каждого юзера сортировать в нужно порядке. например сначала те, кто включил вебку или стримит экран, а потом остальные


Или вы про чо?)

romanlinux ★★★
() автор топика
Ответ на: комментарий от romanlinux

Ну в целом в Mediasoup можно «получить тех юзерв, кто продъюсит видео» и потом на фронте у каждого юзера сортировать в нужно порядке. например сначала те, кто включил вебку или стримит экран, а потом остальные

Или вы про чо?)

Про это самое..

4 чувака показывают видео.

Есть 1 главный экран он большой и посередине.

Есть внизу сетка из маленьких экранов.

Вот интересует приоритет распределения видео между маленьким и большим.

antonio-an
()
Ответ на: комментарий от antonio-an

Я сделал просто кнопку «закрепить» у каждого собеседника в его «окошке с видео» и можно просто нажать на кнопку и его окно «растягивается максимально», а все остальные сжимаются. Это все сделано простыми стилями(классами) на css. И через JS этот css-класс присваивается нужному video тегу. ИМХО норм получилось) каждый пользователь сам выбирает какого собеседника у себя «увеличить» + есть фукнкция «полноэкранный режим»

romanlinux ★★★
() автор топика
Ответ на: комментарий от daniyal

Вебня фигня

Ну ИМХО для меня как раз веб топ. Не нужно ставить себе на комп непонятные левые проги(вдруг там вирусы…). А с вебом как раз все проще ИМХО.

Открыть ссылку -> выбрать комнату -> Общаться.

А если, что-то не понравилось, то просто закрыл вкладу и все) как будто ничего и не было :)

romanlinux ★★★
() автор топика
Последнее исправление: romanlinux (всего исправлений: 2)
Ответ на: комментарий от antonio-an

Есть 1 главный экран он большой и посередине.

Можно просто по умолчанию всегда закрплять в этом большом экране одно како-то видео. А потом по нажатию на другие видео «по меньше» они будут занимать главное окно, а предыдущее видео из главного окна снова будет становиться меньше

romanlinux ★★★
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.