Comments 13
Чем-то сильно напоминает сотовую связь, так скоро M2M соцсеть вещей увидим.
Jitsi небось активно JNI использует, как это сказывается на задержках?
ZGC ещё не молодец?
Выбирали ли системный аллокатор?
> Jitsi небось активно JNI использует, как это сказывается на задержках?
Если имеется в виду Быстро ли делать JNI вызовы в натив, то да, быстро, оверхед приемлем. Если речь о том, что у нас какие-то операции в джаве, а у Jitsi в нативе, и может быстрее сходить в натив, то тут мы сравнений не проводили. А абстрактно это зависит от конкретных операций. Мы тоже не всё делаем в джаве. Например, сетевые вызовы идут через one-nio и linux сокеты, просто потому что в джаве не все есть. Например, нет sendmmsg. Для dtls шифрования мы используем Jitsi либу, которая использует openssl опять-таки через JNI.
> ZGC ещё не молодец?
Тоже молодец. На Java 17 и нашем размере хипа (10G) мы не увидели разницы против Shenandoah.
> Выбирали ли системный аллокатор?
При дефолтном аллокаторе в linux видели утечки памяти. Перешли на jemalloc. Когда-то пробовали tcmalloc, с ним не задалось. Также проверяли mimalloc, с ним футпринт вышел больше, чем с jemalloc.
История звонков ВКонтакте началась гораздо раньше:
Весьма громкое заявление, если учесть, что webrtc гугл пилит с 2011 года и сразу сделал на нем свой hangouts или как оно тогда называлось.
Или у вас какая-то своя собственная реализация?
Да и в принципе WebRTC никак не реализует групповую топологию
Для груповых звонков webrtc умеет симулькаст. Вы ниже как раз об этом и пишете. Как раз потому что все-со-всеми звонок не скейлится вообще никак.
Вдобавок, Гугл опирался на исходник продукта от Global IP Solution, купленный компанией Google в мае 2010
Про «история звонков ВКонтакте началась гораздо раньше» там по тексту имеется в виду не раньше других сервисов, но сильно раньше пандемии. И когда видеосвязь стала так необходима, у нас уже была неплохая, чтобы соответствовать рынку.
В Chrome, например, звонок развалится на 50 треках, в iOS Safari — при количестве треков больше 1.
Отличная статья, спасибо! :)
Я правильно понял, что для iOS Safari в одном peerConnection может быть только один видеотрэк?
Отличная статья, спасибо!
Решил попробовать звонок в ВК, но к сожалению даже на двоих пока не работает. Висит "Ожидание" и нет картинки от другого пользователя. Надеюсь скоро поправите.
Мне всегда казалось, что Mesh — это скорее слово про репитеры (точки-коммутаторы). По идее, этим словом стоило бы назвать топологию, в которой Петя может гнать видео Кате, как через выделенный SFU-сервер, так и через другого участника звонка (Васю).
О том, чего стоит реализовать такую схему, и нужно ли оно — отдельный большой вопрос. Кажется, что для звонков скорее нет :)
@alatobolно в какой момент P2P топологию WebRTC-звонка (каждый с каждым) начали называть словом Mesh? Чо-то у всех вижу этот термин.
кажется это терминология webRTC https://webrtcglossary.com/mesh/
mesh можно делать, если групповой звонок на небольшое количество участников и не хочется вкладываться в серверное решение и CDN
Было бы здорово, если бы была возможность подключить ВК к телефонной станции по SIP, чтобы принимать вызовы.
Пользователи ВК могли бы звонить в техподдержку своего провайдера или справочную службу банка.
Как это устроено: видеоконференции ВКонтакте на безлимитное число участников