www.volsu.ru
DOI: https://doi.org/10.15688/NBITjvolsu.2023.L5
УДК 621.397 ББК 32.973.26
m <N
0 <N
pq
Ü
1 1-4
55. Выбор видеокодека для связи в реаль-t ном времени (RTC) зависит от нескольких S факторов, таких как доступная полоса пропускания [1], вычислительная мощность устрой-Е? ства [3] и желаемое качество видео [2]. ц. Jitsi Meet поддерживает несколько видео® кодеков для общения в реальном времени. g К ним относятся VP8, VP9 и H.264. S VP8 - это видеокодек с открытым исход-^ ным кодом, разработанный Google, был выпу-© щен в 2010 г. с целью создания альтернативы
проприетарным видеокодекам. УР8 является масштабируемыемым кодеком, что означает, что он может адаптироваться к различным сетевым условиям и устройствам, следовательно может использоватся там, где пропускная способность и вычислительная мощность могут быть ограничены. Одной из ключевых особенностей УР8 является использование внутрикад-рового кодирования, что означает, что каждый кадр кодируется независимо от других кадров. Это обеспечивает лучшее сжатие и уменьша-
АНАЛИЗ ВИДЕОКОДЕКА VP9, ПРИМЕНЯЕМОГО В МУЛЬТИПРОТОКОЛЬНОЙ ПЛАТФОРМЕ JITSI
Нина Дмитриевна Керенцева
Студент, кафедра телекоммуникационных систем, Волгоградский государственный университет kerentseva@volsu. ru
просп. Университетский, 100, 400062 r. Волгоград, Российская Федерация
Александр Игоревич Трофимов
Студент, кафедра телекоммуникационных систем, Волгоградский государственный университет trofimov.ai@volsu.ru
просп. Университетский, 100, 400062 г. Волгоград, Российская Федерация
Сергей Владимирович Галич
Кандидат технических наук, доцент кафедры телекоммуникационных систем,
Волгоградский государственный университет
galich.sv@volsu.ru
просп. Университетский, 100, 400062 г. Волгоград, Российская Федерация
Аннотация. В статье проведен сравнительный анализ различных видеокодеков, которые используются в мультипротокольной платформе Jitsi Meet основанной на технологии WebRTC. Также рассмотрены плюсы и минусы каждого видеокодека в отдельности. Приведены результаты нагрузочного тестирования данной платформы.
Ключевые слова: видеоконференцсвязь, видеокодек, WebRTC, открытый исходный код, сквозное шифрование, кроссплатформенность.
ет объем данных, которые необходимо передавать по сети. УР8 также поддерживает ряд функций, таких как временная масштабируемость, которая позволяет доставлять видео разного уровня качества на разные устройства или в разных сетевых условиях.
УР9 - это видеокодек с открытым исходным кодом, разработанный в качестве преемника УР8. Данный кодек использует передовые методы сжатия видео, включая переменные размеры блоков и компенсацию движения для обеспечения уменьшения объема данных, необходимых для представления каждого кадра, а также поддерживает расширенные функции, такие как 10-битная глубина цвета, которая обеспечивает более яркие и точные цвета, и расширенный динамический диапазон (HDR), предоставляющий более широкий диапазон яркости и контрастности. Поддерживается большинством бразуеров и в основном используется для потокового видео. Требует больше аппаратных ресурсов, чем УР8.
Н.264 или MPEG-4 - это широко используемый видеокодек, обеспечивающий хорошее качество видео при низкой скорости передачи данных. Данный видеокодек использует алгоритм сжатия на основе блоков, который делит каждый кадр на небольшие блоки, называемые макроблоками, которые затем делятся на более мелкие блоки, называемые единицами прогнозирования. Энкодер анализиру-
ет каждую единицу предсказания и генерирует набор векторов движения, которые описывают, как пиксели в блоке сместились по сравнению с предыдущим кадром, а также использует метод, называемый внутрикадровым прогнозированием, который позволяет ему прогнозировать значение каждого пикселя в блоке на основе значений соседних пикселей. H.264 также использует ряд других методов сжатия, включая переменные размеры блоков, энтропийное кодирование и фильтры удаления блочности, чтобы уменьшить объем данных, необходимых для передачи, при сохранении высокого качества видео. Он поддерживает ряд расширенных функций, таких как расширенный динамический диапазон (HDR) и преобразование цветового пространства. Одним из ключевых преимуществ H.264 является его широкая поддержка в аппаратном и программном обеспечении. Кодек од-держивается большинством веб-браузеров и платформ видеоконференцсвязи (ВКС). Основным недостатком кодека H.264 являются его лицензионные требования. Кроме того, H.264 может не обеспечивать тот же уровень сжатия, что и более новые кодеки, такие как VP9, что является недостатком для приложений с ограниченной пропускной способностью.
На рисунке 1 изображена схема взаимодействия различных блоков кроссплатформен-ной платформы Jitsi Meet [4].
jicofo ■«- -► videobridge
Рис. 1. Схема взаимодействия модулей Jitsi Meet
Н.Д. Керенцева, А.И. Трофимов, С.В.Галич. Анализ видеокодека VP9
На порт 443 приходит запрос, обрабатываемый службой веб-сервера nginx, который далее поступает на кроссплатформенный XMPP-сервер [5], после чего запрос перенаправляется на службу Jicofo, которая управляет подключением клиентских приложений к видеоконференции. Также во время проведения видеоконференции данная служба реализует функционал отправки приглашений и распределения нагрузки. Вместе с тем устанавливается соединение через 10 000 порт на Videobridge (видеомост), который является ключевым компонентом системы. При передаче видео и аудио между участниками он выполняет роль посредника, то есть осуществляет функцию терминирования RTP/RTCP, и устанавливает границы битрейта в обе стороны на каждого клиента.
При проведении нагрузочного тестирования, было выявлено, что сервер, развернутый на виртуальной машине, со спецификацией:
- 1 CPU;
- 1 RAM;
- 10 Gb HDD;
позволил провести ВКС на 14 человек при использовании кодека VP9, что можно наблю-
дать на рисунке 2 (мониторинг производился при помощи утилиты htop).
Потребление системы в режиме простоя представлено на рисунке 3.
Таким образом можно сделать вывод о том, что потребление RAM на одного пользователя составило ~ 10-15 Мбайт. Потребление CPU ~ 7 % на одного пользователя. Приблизительная пропускная способность на одного пользователя составляет 0.93 Мбит/с (см. рис. 4).
Современный кодек обрабатывает каждый кадр в отдельности, но также анализирует последовательность кадров на предмет повторений во времени (между кадрами) и пространстве (внутри одного кадра), что является сложной вычислительной задачей.
В результате нагрузочного тестирования было определено, что спецификации, указанной в данной статье, оказалось недостаточно для проведения ВКС на 15 человек. Также в ходе работы был проведен обзор видеокодека с открытым исходным кодом VP9, определены минимальные системные требования к серверу ВКС.
I мг.егэзбб] out of remory
Killed process 414 (Java) totaI-vni:5514216kB, anon-rss:669592kB,
нет [I llllliii Hill! III
Sue!
Pit) USER PR I N1 VIRT
B52 ivb 20 0 5372H
868 Jvb 20 0 5372H
1025 Jvb 20 0 5372M
B60 Jvb 20 0 5372H
1008 Jvb 20 0 5372H
869 Jvb 20 0 5372M
1054 Jvb 20 0 5372M
1036 Jvb 20 0 5372H
1044 Jvb 20 0 5372H
1062 Jvb 20 0 5372H
1019 Jvb 20 0 5372H
1048 Jvb 20 0 5372H
915 Jvb 20 0 5372H
416 prosody 20 0 6-060
384 Jicofo 20 0 5194H
397 oiLiiut-data 20 0 65960
B58 Jvb 20 0 5372H
1047 Jvb 20 0 5372M
1032 Jvb 20 0 5372H
1049 Jvb 20 0 5372H
607 root 20 0 11740
1060 Jvb 20 0 5372M
1023 Jvb 20 0 5372H
419 Jicofo 20 0 5194H
1029 Jvb 20 0 5Э72Н
B79 Jvb 20 0 5372И
1052 Jvb 20 0 5372H
1001 Jvb 20 0 5372H
1010 Jvb 20 0 5372H
1057 Jvb 20 0 S372M
1046 Jvb 20 0 5372H
723 Jicofo 20 0 5194И
443 Jicofo 20 0 51Э4М
1040 Jvb 20 0 5372H
881 Jvb 20 0 5372H
1009 Jvb 20 0 5372H
1053 Jvb 20 0 5372M
B63 Jvb 20 0 5372H
1031 Jvb 20 0 5372H
618 licofo 20 0 5194M
1020 ..Ivb_ 20 0 5372H
helo BSetuc 1 Bsearcf« Filter
ill ; - ixl 529Н/977И] 0К/0К]
RES SHR S CPUX NEHX 294H 30592 S 66.2 30.1
R 37.5 30.1
R 13.6 30.1
R 4.6 30.1
R 3.3 30.1
S 2.6 30.1
S 2.6 30.1
S 2.6 30.1
S 2.0 30.1
S 2.0 30.1
R 2.0 30.1
S 2.0 30.1
R 1.3 30.1
S 1.3 2.5
S 1.3 15.1
S 1.3 0.9
S 0.7 30.1
S 0.7 30.1
S 0.7 30.1
S 0.7 30.1
R 0.7 0.4
S 0.7 30.1
S 0.7 30.1
S 0.7 15.1
S 0.7 30.1
S 0.0 30.1
S 0.0 30.1
S 0.0 30.1
S 0.0 30.1
S 0.0 30.1
S 0.0 30.1
S 0.0 15.1
S 0.0 15.1
S 0.0 30.1
S 0.0 30.1
S 0.0 30.1
S 0.0 30.1
S 0.0 30.1
S O.O 30.1
S 0.0 15.1
S 0.0 30.1
TasKs: 24, 240 Ihr; 1 running Load average: 2.63 1.10 0.47 Uptime: 00:17:13
-XX:+USeGlGC -
11.32 Java -x«»3072m -xx:.useG 03.76 Java -xo»3072m -xx:4lseG 00.66 lava -Xm>:3072m -xx:-HJseG 00.59 Java -ХЯ0.3О72Ш -XX:HJseG 04.21 Java -xm>3072m -xx:+useG 00.26 Java -xm>:3072m -xx:HiseG 00.47 lava -xir»3072m -xx:4JseG 00.22 java -x«t-3072m -xx:HlseG 00.17 Java -Xm>:3072m -XX:4lseG 00.66 lava -ХТО.3072П1 -XX:»UseG 00.16 Java -ХЮ-Э072П1 -xx:4lseG 00.41 Java -Xm*3072m -XX:tUseG 04.83 lua /usr/bin/prosody -F 19.03 Java -Xnw3072n> -XX:-HeapC 05.79 rglnx: июгхег process 00.77 lava -ХГО3072В -xx:.useGl 00.26 lava -хю.Э072п> -xx:-useGl 00.37 lava -xm>3072ni -xx:*UseGl 00.32 lava -Хю307?п> -xx:.useGl 06.96 htop
00.02 lava -xm>3072m -XX:.useGl 00.05 lava -КИ. 3072m -xx:.useGl 06.58 Java -ХЮ.3072Ш -xx:-Heap0 00.02 lava -Ko*3072t» -XX:4JseGl 00.07 lava -ХГО.Э072П! -xx:.useGl 00.05 lava -ХЮ.3072Ш -xx:*useGl 00.11 Java -Xm>3072m -XX:*UseGl 00.05 lava -xm>3072m -xx:-useGl 00.02 Java -xm>3072m -*K:-IJSPE1 00.02 Java -ХК3072» -XX:4lseGl 00.11 lava -Xm*3072m -xx:.HeacD 00.85 lava -xi*3072m -xx:-HeaoO 00.01 lava -x».3072m -xx:4)seGl 00.08 lava -ХИ.3072Ш -xx:-UseGl 00.05 lava -ХЮЭ0721» -xx:*useGl 00.09 lava -xm-3072m -xx:-useGl 00.43 lava -x».3072n> -xx:-useGl 00.08 lava -Х«ю3072т -xx:-useGl 01.85 Java -Xm>3072m -XX:.«eao0 00.18 Java -Xax3072m -xx:.useGl
Рис. 2. Результат нагрузочного тестирования
CPUЕI о."?«] Tasks: 24, 99 thr; 1 running
MemtlI I I I I I I I I I I I I I I I I I I I I I I I 11 I I I 11 11 11 11 I III1446M/977M] Load average: 0.00 0.00 0.00 Sujpt OK/OK] Uptime: 03:26:13
1 PID USER PRI N1 VIRT RES SHR S CPUS MEM* TIME+ Command
485 jvb 20 0 5341M 235H 30900 S 0 0 24 1 0 07 23 java -Xmx3072m -XX -HJseGlGC -XX +HeapDumpOnOutOfMemoryError -XX
486 jvb 20 0 5341M 235H 30900 s 0 0 24 0 00 02 java -Xmx3072m -XX +UseGlGC -xx HJeapDumpOnOutOfMemoryError -XX
601 jvb 20 0 5341M 235M 30900 s 0 0 24 0 00 10 java -Xmx3072m -XX +UseGlGC -XX -HHeapDumpOnOutOfMemoryError -XX
602 jvb 20 0 5341M 235H 30900 s 0 0 24 0 00 13 java -Xmx3072m -XX ■HJseGlGC -xx -HHeapDumpOnOutOfMemoryError -xx
611 jvb 20 0 5341M 235H 30900 s 0 0 24 0 00 69 java -Xmx3072m -XX ■HJseGlGC -XX HHeapDumpOnOutOf MemoryError -XX
615 jvb 20 0 5341M 235H 30900 s 0 0 24 0 00 35 java -Xmx3072m -XX -HJseGlGC -XX +HeapDumpOnOutOfMemoryError -XX
616 jvb 20 0 5341M 235M 30900 s 0 0 24 0 04 50 java -Xmx3072m -XX ■HJseGlGC -XX +HeapDump0n0ut0fMemoryError -XX
623 jvb 20 0 5341M 235M 30900 s 0 0 24 0 05 20 java -Xmx3072m -XX ■HJseGlGC -XX +HeapDump0n0ut8fMemoryError -XX
624 jvb 20 0 5341M 235H 30900 s 0 0 24 0 07 36 java -Xmx3072m -XX -HJseGlGC -XX HHeapDumpOnOutOfMemoryError -XX
625 jvb 20 0 5341M 235H 30900 s 0 7 24 0 06 61 java -Xmx3072m -XX ■HJseGlGC -XX HHeapDumpOnOutOfMemoryError -XX
623 jvb 20 0 5341M 235M 30900 s 0 0 24 0 02 15 java -Xmx3072m -XX ■HJseGlGC -XX +HeapDumpOnOutCfMemoryError -XX
629 jvb 20 0 5341M 235H 30900 s 0 0 24 0 03 28 java -Xmx3072m -XX -HJseGlGC -XX HHeapDumpOnOutOfMemoryError -XX
644 jvb 20 0 5341M 235M 30900 s 0 0 24 0 00 02 java -Xmx3072m -XX +UseGlGC -XX HHeapDumpOnOutOfMemoryError -XX
645 jvb 20 0 5341M 235H 30900 s 0 0 24 0 00 01 java -Xmx3072m -XX ■HJseGlGC -XX +HeapDump0n0ut0fMemoryError -XX
646 jvb 20 0 5341M 235H 30900 s 0 0 24 0 00 41 java -Xmx3072m -XX -HJseGlGC -XX HHeapDumpOnOutOfMemoryError -XX
647 jvb 20 0 5341M 235H 30900 s 0 0 24 0 00 15 java -Xmx3072m -XX ■HJseGlGC -XX +HeapDumpOnOutOfMemoryError -XX
643 jvb 20 0 5341H 235H 30900 s 0 0 24 0 00 17 java -Xmx3072m -XX HlseGlGC -XX HHeapDumpOnOutOfMemoryError -XX
649 jvb 20 0 5341H 235H 30900 s 0 0 24 0 00 03 java -Xmx3072m -XX ■HJseGlGC -XX HHeapDumpOnOutOfMemoryError -XX
650 jvb 20 0 5341M 2Э5Н 30900 s 0 0 24 0 00 07 java -Xmx3072m -XX ■HJseGlGC -XX ■meapDumponoutofMemoryError -XX
651 jvb 20 0 5341M 235H 30900 s 0 0 24 0 00 02 java -Xmx3072m -XX ■HJseGlGC -XX +HeapDumponoutofMemoryError -XX
653 jvb 20 0 5341H 235H 30900 s 0 0 24 0 00 00 java -Xmx3072m -XX ■HJseGlGC -XX HHeapDumpOnOutOfMemoryError -XX
654 jvb 20 0 5341M 235H 30900 s 0 0 24 0 00 00 java -Xmx3072m -XX HJseGlGC -XX +HeapDump0n0ut0fMemoryError -XX
655 jvb 20 0 5341M 235H 30900 s 0 0 24 0 00 02 java -Xmx3072m -XX ■HJseGlGC -XX HHeapDumpOnOutOfMemoryError
656 jvb 20 0 5341H 235H 30900 s 0 0 24 0 00 01 java -Xmx3072m -XX ■HJseGlGC -XX HHeapDumpOnOutOfMemoryError -XX
657 jvb 20 0 5341M 235H 30900 s 0 0 24 0 00 00 java -Xmx3072m -XX ■HJseGlGC -XX HHeapDumpOnOutOfMemoryError -XX
658 jvb 20 0 5341M 235M 30900 s 0 0 24 0 00 01 java -Xmx3072m -XX -HJseGlGC -XX HHeapDumpOnOutOfMemoryError -XX
659 jvb 20 0 5341M 235M 30900 s 0 0 24 0 00 : 1 java -Xmx3072m -XX -HJseGlGC -XX -meapDumponoutofMemoryError -XX
660 jvb 20 0 5341M 235M 30900 s 0 0 24 0 00 02 java -Xmx3072m -XX -HJseGlGC -XX +HeapDump0n0ut8fMemoryError -XX
952 jvb 20 0 5341M 235H 30900 s 0 0 24 0 00 25 java -Xmx3072m -XX ■HJseGlGC -XX ■meapDumponoutofMemoryError -XX
1111 jvb 20 0 5341M 235H 30900 s 0 0 24 0 00 00 java -Xmx3072m -XX ■HJseGlGC -XX HHeapDuirpOnOut Of MemoryError -XX
465 jvb 20 0 5341M 235H 30900 s 0 0 24 1 14 92 java -Xmx3072m -XX +UseGlGC -XX +HeapDumpOnOutOfMemoryError -XX
1254 jvb 20 0 5341M 235M 30900 s 0 0 24 0 00 15 java -Xmx3072m -XX ■HJseGlGC -XX +HeapDumpOnOutOfMemoryError -XX
1258 jvb 20 0 5341M 235H 30900 s 0 0 24 0 00 00 java -Xmx3072m -XX ■HJseGlGC -XX ■HHeapDumpOnOutOfMemoryError -XX
1259 jvb 20 0 5341M 235M 30900 s 0 0 24 0 00 10 java -Xmx3072m -XX HJseGlGC -XX HHeapDumpOnOutOfMemoryError -XX
1260 jvb 20 0 5341M 235M 30900 s 0 0 24 0 00 10 java -Xmx3072m -XX +UseGlGC -XX HHeapDumpOnOutOfMemoryError -XX
1261 jvb 20 0 5341M 235H 30900 s 0 7 24 0 01 26 java -Xmx3072m -XX ■HJseGlGC -XX +HeapDumpOnOutOfMemoryError -X»
1281 jvb 20 0 5341H 235H 30900 s 0 0 24 0 01 01 java -Xmx3072m -XX HJseGlGC -XX HHeapDumpOnOutOfMemoryError
1282 jvb 20 0 5341M 235H 30900 s 0 0 24 0 00 00 java -Xmx3072m -XX ■HJseGlGC -XX HHeapDumpOnOutOfMemoryError -XX
469 jvb 20 0 5341H 235H 30900 s 0 0 24 0 02 78 java -Xmx3072m -XX ■HJseGlGC -XX +HeapDumpOnOutOfMemoryError —XX
470 jvb 20 0 5341H 235M 30900 s 0 0 24 0 02 07 java -Xmx3072m -XX ■HJseGlGC -XX HHeapDumpOnOutOfMemoryError -XX
471 jvb 20 0 5341M 235H 30900 s 0 0 24 0 00 00 java -Xmx3072m -XX +UseGlGC -XX +HeapDumpOnOutOfMemoryError -XX
F 1 ISHBF 1'ЕПЛ ÏKJÎ2É5 ■ЯМЗПЕ F5ÎBH ■F63 и ЭИПиИРв! ттт 3EF93!1 ■FIOHB _
Рис. 3. Потребление системы с установленной ВКС в режиме простоя
Рис. 4. График общей пропускной способности (в пике)
СПИСОК ЛИТЕРА ТУРЫ
1. Исследование влияния характеристик каналов связи на качество видео-конференц-связи / Н. Н. Ермакова [и др.] // Инфокоммуникационные технологии. - 2021. - №№ 4. - С. 395-400.
2. Керенцева, Н. Д. Аналитический обзор метрик, используемых для оценки качества мультимедийной информации / Н. Д. Керенцева, А. И. Трофимов // НБИ технологии. -2022. - Т. 16, №> 3. - С. 27-31. - ЕО: к^:/Ш.О1£/10.15688/]^Щтоки.2022.3.5
3. Ткаченко, Н. И. Исследование потребления аппаратных мощностей системами видеокон-ференцсвязи / Н. И. Ткаченко, С. В. Галич, Е. С. Семенов // Успехи современной радиоэлектроники. -2017. - С. 645-649.
4. Установка сервера для видеоконференций Jitsi Meet - Блог о видеоконференцсвязи // Защищенная платформа для корпоративного общения. -Электрон. текстовые дан. - Режим доступа: https:// trueconf.ru/blog/baza-znaniy/ustanovka-servera-dlya-videokonferenczij-jitsi-meet.html
H.ff. Керенцеeа, A.M. Tpo^uMoe, C.B. ranm. AH&IH3 BHgeoKogera VP9
5. Specifications // XMPP The Universal Messaging Standard. - Electronic text data. - Mode of access: https://xmpp.org/extensions
REFERENCES
1. Ermakova N.N., Tyukhtyaev D.A., SemenovE.S., Osipov O.V. Issledovanie vlijanija harakteristik kanalov svjazi na kachestvo video-konferenc-svjazi [Study of the Impact of Communication Channel Characteristics on Video Conferencing Quality]. Infokommunikacionnye tehnologii [Infocommunication Technologies], 2021, no. 4, pp. 395-400.
2. Kerentseva N.D., Trofimov A. I. Analiticheskij obzor metrik, ispolzuemyh dlja ocenki kachestva multimedijnoj informacii [Analytical Overview of the Metrics Used to Assess the Quality of Multimedia Information]. NBI tehnologii [NBI Technologies],
2022, vol. 16, no. 3, pp. 27-31. DOI: https://doi.org/ 10.15688/NBIT.jvolsu2022.3.5
3. Tkachenko N.I., Galich S.V., Semenov E.S. Issledovanie potreblenija apparatnyh moshhnostej sistemami videokonferencsvjazi [Research of Hardware Capacity Consumption by Video Conferencing Systems]. Uspehi sovremennoj radioelektroniki [The Successes of Modern Radio Electronics], 2017, pp. 645-649.
4. Ustanovka servera dlja videokonferencij Jitsi Meet - Blog o videokonferencsvjazi [Installation of a Server for Video Conferencing Jitsi Meet - Blog About Video Conferencing]. Zashhishhjonnaja platforma dlja korporativnogo obshhenija [Secure Platform for Corporate Communication]. URL: https://trueconf.ru/blog/baza-znaniy/ustanovka-servera-dlya-videokonferenczij-jitsi-meethtml
5. Specifications. XMPP The Universal Messaging Standard. URL: https://xmpp.org/extensions
ANALYSIS OF VP9 VIDEO CODEC USED IN JITSI MULTI-PROTOCOL PLATFORM
Nina D. Kerentseva
Student, Department of Telecommunications Systems, Volgograd State University kerentseva@volsu. ru
Prosp. Universitetsky, 100, 400062 Volgograd, Russian Federation
Aleksandr I. Trofimov
Student, Department of Telecommunications Systems,
Volgograd State University
trofimov.ai@volsu.ru
Prosp. Universitetsky, 100, 400062 Volgograd, Russian Federation
Sergey V. Galich
Candidate of Sciences (Engineering),
Associate Professor, Department of Telecommunication Systems,
Volgograd State University
galich.sv@volsu.ru
Prosp. Universitetsky, 100, 400062 Volgograd, Russian Federation
Abstract. Jitsi is an open-source video conferencing platform that utilizes WebRTC technology to provide secure, high-quality communication for businesses and individuals alike. Jitsi's commitment to open-source software ensures that the platform is constantly evolving to meet the changing needs of its users. Jitsi offers a range of features that make it an attractive option for remote communication, including end-to-end encryption, screen sharing, virtual backgrounds, and a chat feature. Participants can also be easily managed, with the ability to add, remove, and mute attendees as needed. One of Jitsi's most significant advantages is its
ease of use - participants can join meetings without the need for an account or an app, making it an ideal option for one-time meetings or for those who do not want to install additional software. Custom branding options also allow organizations to personalize the platform to reflect their own branding. In addition to its user-friendly design and advanced security features, Jitsi supports recording and live streaming, making it an excellent option for webinars, online classes and virtual events. The platform is also cross-platform compatible, with support for Windows, Mac, Linux, Android, and iOS, ensuring that anyone can participate in meetings regardless of their device. With its commitment to open-source software, advanced security features, and robust functionality, Jitsi is an excellent choice for those looking for a powerful, user-friendly video conferencing platform. Its ability to support large meetings with hundreds of participants makes it an ideal option for businesses and organizations of all sizes.
Key words: video conferencing, video codec, WebRTC, open source, end-to-end encryption, cross-platform compatibility.