SlideShare a Scribd company logo
Jitsi Videobridge, Octopodes, and
Kotlin
JITSI.ORG | @JITSINEWS | 8X8
BORIS GROZEV
Jitsi Videobridge, Octopodes, and Kotlin
Jitsi Videobridge, Octopodes, and Kotlin
https://meet.jit.si
Jitsi Videobridge: Selective Forwarding Unit (SFU)
Jitsi Videobridge, Octopodes, and Kotlin
A
B
A
A
B
A
S1
C
B
A
S1
C
B
A
S1
S2
C
B
A
S1
S2
D
Server-to-server
C
B
A
D
S2
S1
END OF “WHY”
Also: big conferneces?
RTP
(Video) RTP
(Video)
XMPP/Jingle (Signaling)
XMPP/Jingle (Signaling)
Colibri
RTP
(Video) RTP
(Video)
XMPP/Jingle (Signaling)
XMPP/Jingle (Signaling)
Colibri
OCTO
OCTO
OCTO
OCTO
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R| M | S | res | Conference ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Endpoint ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Jitsi Videobridge, Octopodes, and Kotlin
Jitsi Videobridge 2.0
src: https://en.wikipedia.org/wiki/Recurrent_laryngeal_nerve
• SIP Communicator (2003-)
• Softphone for PC, mac, linux
• SIP, XMPP
• Multi-party calls (c. 2009)
• Transcoding/relaying in the client
• Cross protocol
• Offload the media to a server (2011)
• Jitsi Videobridge
src: https://en.wikipedia.org/wiki/Recurrent_laryngeal_nerve
• SIP Communicator (2003-)
• Softphone for PC, mac, linux
• SIP, XMPP
• Multi-party calls (c. 2009)
• Transcoding/relaying in the client
• Cross protocol
• Offload the media to a server (2011)
• Jitsi Videobridge
• Support for WebRTC (late 2012)
• ICE & DTLS
• Simulcast
• Bandwidth estimation & adaptivity
• Data Channels (SCTP and WS)
• Octo src: https://en.wikipedia.org/wiki/Recurrent_laryngeal_nerve
src: https://rationalwiki.org/wiki/File:GiraffaRecurrEn.svg
SRTP
HandleDTLS,initiateSRTP
Decryption
Encryption
DebugTransformEngine
Optional.Savepacketstoa.pcapfile.
TransportCCEngine
Transporrt-widecongestioncontrol.
Readincomingseq.num.,
sendRTCPfeedback
Addtransport-cc
sequencenumberext
AbsSendTimeEngine
RTPAbsoluteSendTimeHeaderextension
No-op
Addtheabs-sendtime
headerextension
RemoteBitrateEstimator
ImplementGoogleCongestionControl
theoverusedetectorUpdate
onreceivedRTPpackets
No-op.
RtxTransformer
HandleretransmissionwiththeRTXformat.
APItoretransmitpackets.
RTCP:handleincomingNACK
RTP:de-RTX
No-op.
PaddingTermination
Discardspadding-onlypackets
RTP:discardpadding-only
No-op.
MediaStreamTrackReceiver
Simulcast-relatedlogic.
FindandupdatetheFrameDesc
No-op.
DiscardTransformEngine
Timestampandsequencenumberrewriting.
DiscardingpacketsmarkedwiththeDISCARD
flag.
???
???
CachingTransformer
CacheRTPpackets.
Savetoincomingcache.
Savetooutgoingcache.
RetransmissionRequester
Monitorincomingstreamsandrequest
missingRTPpacketswithRTCPNACK.
SendNACKsformissingRTPpackets.
No-op.
StatisticsEngine
UpdateMediaStreamStatswithinfogathered
fromreceivedpackets.ForRTP,count
numberofpacketsandbytes.ForRTCP,
parsethecontentsandfireevents.
ParseincomingREMB.TODO:transport-cc?
PayloadTypeTransformEngine
Re-writeRTPPayloadTypenumberstowhat
thereceiverexpects.
No-op.
RewriteRTPPT.
RTCPReceiverFeedbackTermination
DropRTCPRRand
REMB.TODO:drop
transport-cc?
DropRTCPRRand
REMB.TODO:drop
transport-cc?
MediaStream
-TransformEngineChainchain
RTPConnectorInputStreamRTPConnectorInputStream
DatagramSocket
RTPTranslator
ExternalTransformer
Anothertransformerchain,implementedin
jitsi-videobridge.
jitsi-videobridge
(RTPChannelTransformEngine)
LipSyncHack
No-op.
Insertsframes,Aaaah!
rewritesstuff...
BitrateController
Bitratecontrolandsimulcastlogic?
No-op.
TheTransportCCEngineand
DTLSTransformEngineinstancesmightbe
sharedbetweenmorethanoneMediaStream
iftheyusethesametransport(e.g.an
audioandvideostreamforthesame
endpointinajitsi-videobridge
conference.
WemayneedtomaketheRemoteBitrateEstimator
sharedbetweenMediaStreamswhichhavethesame
transport,andfeeditinformationreceivedinRTCP
transport-ccpackets,insteadofactualRTPpackets.
WedropReceiverReportsandREMBs,becausewe
performtermination--thesepacketsareinterpreted
bridge-to-endpointonly,andnotend-to-end.Wedrop
themhere,becauseonthereceivesidethisisafterwe
havehandledthem.Whensending,weinsertthemlater
inthechain(viaMediaStream#injectPacket,see
RTCPReceiverFeedbackTermination.javalines~140).
Weneedtodecidewhattodofortransport-cc.
Thisiscodewhichdeterminedwhattosendtoa
particularreceiver(whichsenders,atwhatquality).It
doesnotdobandwidthestimationandIdon'tthinkwe
willneedtomodifyitfortransport-cc.
• Hard to maintain
• Hard to improve performance
Major surgery
• Remove deprecated code
• Recording, Transcoding, Non-ICE, non-bundle, non-rtcpmux
• Replace libjitsi
• Re-design the Conference and Endpoint abstractions
• Re-design the threading model
• Keep the COLIBRI interface
• Shim layer
jitsi-videobridge
(40k LoC)
libjitsi
(230k LoC)
jitsi-videobridge
(34k LoC)
jitsi-media-transform
(12k LoC)
jitsi-rtp
(6k LoC)
Jitsi-rtp
• Generic library for RTP and RTCP
• Designed to be efficient
• 6000 lines of Kotlin
• https://github.com/jitsi/jitsi-rtp
Jitsi Videobridge, Octopodes, and Kotlin
jitsi-media-transform
• RTP processing pipeline
• Transceiver
• Node tree
• Useful Node
• 12000 lines of Kotlin
• https://github.com/jitsi/jitsi-media-transform
Jitsi Videobridge, Octopodes, and Kotlin
Demux
Parse RTP SRTP decrypt
RTP
Read audio
level
Stats Demux
Video
Parse VP8 NACK
RTC
P
Parse RTCPSRTCP decrypt
RTCP
Termination
Audio
Discard silence
Jitsi Videobridge, Octopodes, and Kotlin
Performance
OLD NEW
NEW + POOL NEW + POOL + CMS
Current status
Current status
• The libraries are released
• Builds cleanly (try it out)
• Automated tests pass
• Merges cleanly with master
• The last remaining blockers
• BWE stability
• Debian packaging
Thank you!
Any questions?
JITSI.ORG | @JITSINEWS | 8X8
BORIS GROZEV

More Related Content

PDF
Jetson NanoとCoral USB Acceleratorでつくるセルフレジ
PDF
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
PDF
SRv6 Mobile User Plane : Initial POC and Implementation
PPTX
AN Intelligent Realtime multiple vessel collision risk assessment system
PDF
OCP-SPIRIT-Final-v5
PDF
Navigation Systems Laboratory - Moscow Power Engineering Institute
PDF
Track Finding in LHCb's 2020 Trigger
PPTX
Static partitioning virtualization on RISC-V
Jetson NanoとCoral USB Acceleratorでつくるセルフレジ
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
SRv6 Mobile User Plane : Initial POC and Implementation
AN Intelligent Realtime multiple vessel collision risk assessment system
OCP-SPIRIT-Final-v5
Navigation Systems Laboratory - Moscow Power Engineering Institute
Track Finding in LHCb's 2020 Trigger
Static partitioning virtualization on RISC-V

What's hot (20)

PDF
The FE-I4 Pixel Readout System-on-Chip for ATLAS Experiment Upgrades
PDF
PIERS2018 Korogodin Naive beamforming for multi-element antenna GNSS receiver
PDF
Using GTP on Linux with libgtpnl
PDF
GTPing, How To
PDF
OPAL-RT RT14 Conference: egston compiso opal-rt
PDF
計算機結構 (習題:Nand2tetris硬體部分)
PPTX
小型安価なFPGAボードの紹介と任意波形発生器
PDF
Klessydra-T: Designing Configurable Vector Co-Processors for Multi-Threaded E...
PDF
Etl Overview
PDF
SGI OpenFOAM Cloud Benchmark Part 3, OpenFOAM Study Meeting for beginner@Kans...
PPT
QCrypt
PPT
High Definition On MPEG In Internet Protocol (Wbm Comments)
PDF
SGI OpenFOAM Cloud Benchmark Part 2, OpenFOAM Study Meeting for beginner@Kant...
PPT
Precision Timing Protocol NAB2010
PDF
Z Garbage Collector
PDF
DAIS19: On the Performance of ARM TrustZone
PPTX
Computer Performance Microscopy with SHIM
PDF
RISC-V Zce Extension
PDF
Samsung 1.8 inch AMOLED(128x60) Datasheet
PDF
Using GPUs to accelerate nonstiff and stiff chemical kinetics in combustion s...
The FE-I4 Pixel Readout System-on-Chip for ATLAS Experiment Upgrades
PIERS2018 Korogodin Naive beamforming for multi-element antenna GNSS receiver
Using GTP on Linux with libgtpnl
GTPing, How To
OPAL-RT RT14 Conference: egston compiso opal-rt
計算機結構 (習題:Nand2tetris硬體部分)
小型安価なFPGAボードの紹介と任意波形発生器
Klessydra-T: Designing Configurable Vector Co-Processors for Multi-Threaded E...
Etl Overview
SGI OpenFOAM Cloud Benchmark Part 3, OpenFOAM Study Meeting for beginner@Kans...
QCrypt
High Definition On MPEG In Internet Protocol (Wbm Comments)
SGI OpenFOAM Cloud Benchmark Part 2, OpenFOAM Study Meeting for beginner@Kant...
Precision Timing Protocol NAB2010
Z Garbage Collector
DAIS19: On the Performance of ARM TrustZone
Computer Performance Microscopy with SHIM
RISC-V Zce Extension
Samsung 1.8 inch AMOLED(128x60) Datasheet
Using GPUs to accelerate nonstiff and stiff chemical kinetics in combustion s...
Ad

Similar to Jitsi Videobridge, Octopodes, and Kotlin (20)

PDF
Experimental evaluation of dynamic switching between one on-one and group vid...
PDF
Janus RTP forwarders @ FOSDEM 2020
PDF
Multistream in SIP and NoSIP @ OpenSIPS Summit 2025
PDF
Janus Workshop pt.2 @ ClueCon 2021
PDF
Write a SocialTV app @ OpenSIPS 2021
PDF
Janus/SIP @ OpenSIPS 2019
PDF
Janus/Asterisk @ Astricon 2017
PDF
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
PDF
WebRTC Standards from Tim Panton
PDF
WebRTC and SIP not just audio and video @ OpenSIPS 2024
PPTX
Driving Communications Directly Into The Web Browser
PDF
The Road to End-to-End Encryption in Jitsi Meet
PDF
R&D activities of radio-over-fiber technology in NICT
 
PPT
RADVISION IPTV: Interactive Live Person To Person Video
PDF
rtpengine - Media Relaying and Beyond
PPTX
Realtimetapan
PDF
Janus Workshop @ ClueCon 2020
PDF
PLNOG 9: Donald E. Eastlake 3rd - Transparent Interconnection of Lost of Links
KEY
Bryan Johns - Presentation at Emerging Communications Conference & Awards (eC...
PDF
5 продвинутых технологий Cisco, которые нужно знать
Experimental evaluation of dynamic switching between one on-one and group vid...
Janus RTP forwarders @ FOSDEM 2020
Multistream in SIP and NoSIP @ OpenSIPS Summit 2025
Janus Workshop pt.2 @ ClueCon 2021
Write a SocialTV app @ OpenSIPS 2021
Janus/SIP @ OpenSIPS 2019
Janus/Asterisk @ Astricon 2017
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards from Tim Panton
WebRTC and SIP not just audio and video @ OpenSIPS 2024
Driving Communications Directly Into The Web Browser
The Road to End-to-End Encryption in Jitsi Meet
R&D activities of radio-over-fiber technology in NICT
 
RADVISION IPTV: Interactive Live Person To Person Video
rtpengine - Media Relaying and Beyond
Realtimetapan
Janus Workshop @ ClueCon 2020
PLNOG 9: Donald E. Eastlake 3rd - Transparent Interconnection of Lost of Links
Bryan Johns - Presentation at Emerging Communications Conference & Awards (eC...
5 продвинутых технологий Cisco, которые нужно знать
Ad

Recently uploaded (20)

PPTX
Geodesy 1.pptx...............................................
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PPTX
UNIT 4 Total Quality Management .pptx
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PPTX
Construction Project Organization Group 2.pptx
PPTX
additive manufacturing of ss316l using mig welding
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PPT
Mechanical Engineering MATERIALS Selection
PPTX
Strings in CPP - Strings in C++ are sequences of characters used to store and...
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPTX
Welding lecture in detail for understanding
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
Digital Logic Computer Design lecture notes
PPT
Project quality management in manufacturing
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PDF
Well-logging-methods_new................
Geodesy 1.pptx...............................................
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
UNIT 4 Total Quality Management .pptx
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
Construction Project Organization Group 2.pptx
additive manufacturing of ss316l using mig welding
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
Mechanical Engineering MATERIALS Selection
Strings in CPP - Strings in C++ are sequences of characters used to store and...
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
Welding lecture in detail for understanding
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Digital Logic Computer Design lecture notes
Project quality management in manufacturing
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Well-logging-methods_new................

Jitsi Videobridge, Octopodes, and Kotlin