(Core architecture) Large distributed real-time audio and video XRTC system project based on WebRTC

You will master the development technology of high-performance real-time audio and video background services based on WebRTC, which can be used for video calls, online education, video conferences, etc

40242 people study

primary 63 class hours Updated on September 11, 2023

 QR code Download the school APP Cache video for offline viewing

 str2num
    • Best selling package
    • Selected Package
    • Popularity package
    • Exclusive package
    • High salary package
Large scale distributed real-time audio and video XRTC system project based on WebRTC
(Core architecture) Large distributed real-time audio and video XRTC system project based on WebRTC
40242 people study
¥499.00
(Streaming) Large distributed real-time audio and video XRTC system project based on WebRTC
31205 people study
¥599.00
(Streaming) Large distributed real-time audio and video XRTC system project based on WebRTC
3677 people study
¥299.00
More 3 courses
Audio and video QoS collection: WebRTC congestion control+smooth transmission+packet loss retransmission
Audio and video QoS technology: in-depth analysis and implementation of WebRTC smooth sending (Pacer) technology
6737 people study
¥399.00
Audio and video QoS technology: in-depth analysis and implementation of WebRTC bandwidth estimation/congestion control GCC technology
28220 people study
¥1999.00
Audio and video QoS technology: in-depth analysis and implementation of WebRTC packet loss retransmission (NACK) technology
4577 people study
¥29.00
More 3 courses
C language development engineer professional learning package
C Language Programming Basic Video Course (7-Day Success)
262133 people study
¥49.00
C Language Course Sublimation Chapter - Typing Games (7-Day Butterfly)
22505 people study
¥29.00
Linux Basics Tutorial
28833 people study
¥5.00
More 45 courses
C/C++Cross platform R&D Fundamentals Introduction and Practical Series
C++Design Pattern Theory and Practice
95452 people study
¥198.00
C++QT5 Cross platform Interface Programming Principle and Practical Video Course
288243 people study
¥268.00
FFmpeg Android streaming media player development practical video course - based on NDK, C++and FFmpeg Android
157380 people study
¥298.00
More 23 courses
C/C++Cross platform R&D Fundamentals Introduction and Practical Series
C++Design Pattern Theory and Practice
95452 people study
¥198.00
C++QT5 Cross platform Interface Programming Principle and Practical Video Course
288243 people study
¥268.00
FFmpeg Android streaming media player development practical video course - based on NDK, C++and FFmpeg Android
157380 people study
¥298.00
More 23 courses
  • Course Introduction
  • Course outline

Suitable for:

Want to quickly learn WebRTC technology, master effective learning methods of WebRTC, and plan to systematically learn WebRTC technology; He is very interested in audio and video technology, high-performance background service development, and distributed architecture, and is willing to engage in related work in the future.

You will learn:

You will master the development technology of high-performance real-time audio and video background services based on WebRTC, which can be used for video calls, online education, video conferences, etc

  • Web side screen sharing technology
  • Implementation of asynchronous network programming framework based on libev+message queue
  • Design of core architecture for real-time audio and video distribution
  • Detailed explanation and implementation of network protocol stacks such as STUN/TURN/ICE/DTLS
  • Analysis of WebRTC core communication process
  • Implementation of WebRTC push and pull function

Course introduction:

By mastering the technology of this course, you can expand and realize the following functions:

1. Low latency live broadcast system (online education, etc.)
2. 1v1 video call (WeChat video chat, anchor Lianmai, etc.)
3. Video conference (Tencent conference, etc.)
4. Cloud rendering and cloud games
5. Other scenarios requiring real-time audio and video functions

Fans group of WebRTC full course consultation&question answering service can also join the group to exchange and learn WebRTC and audio and video technology without buying courses. Please be sure to add fans group after buying courses to provide better question answering service

 51 QR Code.png

Course services

1. Hand grip video tutorial
2. Iterating source code by chapter
3. Course learning notes
4. 1v1 question answering service

Introduction to core content (see the end of the article for a complete course directory)
This course consists of 4 parts in total.

Part I (Quick Start)

Through this part of course, you can learn the following core contents:
1. Web side screen sharing technology
2. WebRTC core communication process
3. Build Go static resource service and support https

Part II (Infrastructure)

Through this part of course, you can learn the following core contents:
1. Implement a lightweight web framework with golang
2. High performance asynchronous network programming based on libev+message queue
3. Principle and implementation of lockless queue
4. Design and implementation of rpc function between golang and c++

Part III (RTC streaming)

Through this part of course, you can learn the following core contents:
1. Implementation of RTC streaming function, compatible with WebRTC
2. Core architecture design of real-time audio and video distribution
3. The offer/answer model, SDP attributes in detail
4. Detailed explanation and implementation of protocol stacks such as STUN/ICE/DTLS
5. Implementation of ICE core functions
6. Establishment of WebRTC peerconnection core process and exception handling
7. Application of WebRTC core basic library
8. Implementation of DTLS core process

Part IV (RTC Streaming)

Through this part of course, you can learn the following core contents:
1. RTC streaming function, compatible with WebRTC
2. Obtaining the DTLS negotiation secret key
3. Audio/video packet encryption and decryption processing
4. RTP/RTCP, SRTP/SRTCP protocols

Core module composition

Xrtcclient (js+html, and courses on win/android/iOS will be developed later, please wait): responsible for rtc push and pull streaming client
Xrtcserver (c++implementation): responsible for real-time distribution of audio and video data
Signaling (go implementation): responsible for the exchange of WebRTC SDPs

Signaling (signaling service)

 signaling.png

Xrtcserver (distribution service)

 xrtcserver.png

Protocol stack and core process

 Core Process.png

Effect display

Remote sharing of local video (streaming end)

 Streaming.png

Remote sharing of local video (streaming end)

 Pull Stream.png

Delay effect test

 Stopwatch.png

Full Catalog

------------Quick Start------------
1. XRTC1.0 - System effect demonstration
2. Course content introduction
3. Course environment preparation
4.1v1 desktop sharing - building http static resource services with golang
5. 1v1 desktop sharing - support https access
6. 1v1 desktop sharing UI interface design
7. Acquisition and configuration of 1v1 desktop sharing chrome screen sharing plug-in
8. 1v1 desktop sharing - get screen sharing video stream
9. Introduction to the core process of 1v1 desktop sharing WebRTC
10. 1v1 desktop sharing - realizing WebRTC streaming
11. 1v1 desktop sharing - WebRTC streaming (I)
12. 1v1 desktop sharing - WebRTC streaming (middle)
13. 1v1 desktop sharing - realizing WebRTC streaming (Part 2)
14. 1v1 desktop sharing - stop streaming and pulling, summary
------------Core architecture------------
15. XRTC1.0 - Basic Design Concept of Service Forwarding
16. XRTC1.0 - Streaming Basic Process Design
17. XRTC1.0-signaling Service Infrastructure 1
18. XRTC1.0 signaling service infrastructure 2
19. XRTC1.0 - Streaming UI Design
20. XRTC1.0-signaling service adds log module 1
21. XRTC1.0-signaling service adds log module 2
22. XRTC1.0 signaling service design comlog
23. XRTC1.0-signaling service comlog fills in the general log field
24. XRTC1.0 signaling service comlog add time consuming calculation
25. XRTC1.0 signaling service adds conf module
26. XRTC1.0-signaling service supports https and static resource access
27. Sending and processing of XRTC1.0 signaling service push requests
28. Analysis and exception handling of the XRTC1.0-signaling service push request parameters
29. Design of XRTC1.0 signaling service and distribution service communication protocol
30. XRTC1.0 signaling service loads xrpc client through configuration file
31. XRTC1.0 signaling service definition header, request, and response objects
32. XRTC1.0 signaling service xrpc load balancing implementation
33. XRTC1.0-xrtcserver builds the basic framework
34. XRTC1.0-xrtcserver Add conf module
35. XRTC1.0-xrtcserver Add log module
36. XRTC1.0-xrtcserver implements log asynchronous writing to files
37. XRTC1.0-xrtcserver solves the problem of log file writing failure
38. XRTC1.0-xrtcserver signaling processing module design
39. XRTC1.0-xrtcserver Create tcp server
40. XRTC1.0-xrtcserver libev package
41. XRTC1.0-xrtcserver IOWatcher adds start, stop and delete functions
42. XRTC1.0-xrtcserver adds event cycle, start and stop service functions
43. XRTC1.0-xrtcserver creates workers
44. XRTC1.0-xrtcserver distributes new_conn to workers for processing
45. Implementation of XRTC1.0-xrtcserver Lockless Queue
46. XRTC1.0-xrtcserver encapsulates TcpConnection class
47. XRTC1.0-signaling implements the forwarding and writing of requests
48. XRTC1.0-xrtcserver tcp connection data reading 1
49. XRTC1.0-xrtcserver tcp connection data reading 2
50. XRTC1.0-xrtcserver tcp connection timeout processing and resource cleaning
51. XRTC1.0-xrtcserver parses the request body and processes it
52. XRTC1.0-xrtcserver Create rtcserver
53. XRTC1.0-xrtcserver Create rtcworkers
54. XRTC1.0-rtcserver assigns the request to the worker for processing
55. XRTC1.0-xrtcserver rtcworker returns the offer to the signing worker
56. XRTC1.0-xrtcserver signaling worker constructs response packet
57. XRTC1.0-xrtcserver signaling worker writes the response packet to tcpconnection
58. XRTC1.0-signaling service reads the response result
59. The XRTC1.0-signaling service returns the offer to the client
------------RTC streaming-------------
60. XRTC1.0-Flow Manager Design
61. XRTC1.0 - Start to implement create offer
62. XRTC1.0 - Add media content to the offer
63. XRTC1.0 - Realize BUNDLE function
64. XRTC1.0 - Add m lines and supported codecs to the offer
65. XRTC1.0 - Add codec and its detailed parameters to the offer
66. XRTC1.0 - Add rtcp mux and transmission direction to the offer
67. XRTC1.0 - Add ice ufrag and ice pwd to the office
68. XRTC1.0 - Add fingerprint to the offer
69. XRTC1.0 - Add the setup attribute to the offer
70. XRTC1.0 - Create IceTransportChannel
71. XRTC1.0 - Implement SetLocalDescription
72. XRTC1.0 - Obtain all available local network interfaces
73. XRTC1.0 - Encapsulate the PortAllocator class
74. XRTC1.0-ICE operation steps and candidate classification
75. XRTC1.0 - Create UDP Port
76. XRTC1.0 - Prepare socket address
77. XRTC1.0 - Create ICE local candidate
78. XRTC1.0-ICE candidate collection and exchange mode
79. XRTC1.0-client peerconnection Set offer and create answer
80. XRTC1.0-client peerconnection sends answer to signing
81. XRTC1.0 signaling server processes sendanswer requests
82. XRTC1.0-xrtcserver processes the answer request
83. XRTC1.0 - Parsing the transport info in answer
84. XRTC1.0 - Implement SetRemoteDescription
85. XRTC1.0 - Asynchronous Reading of Streamer Network Packets
86. XRTC1.0-STUN Protocol Details
87. XRTC1.0 - Verify STUN fingerprint
88. XRTC1.0-STUN message reading
89. XRTC1.0 - Realize the reading of STUN ByteString attribute type
90. XRTC1.0 - Resolve and verify the USERNAME attribute
91. XRTC1.0 - Parse and verify the MESSAGE-INTEGRITY attribute
92. XRTC1.0-STUN Binding request exception handling
93. XRTC1.0 - Create a peer referent candidate
94. XRTC1.0 - Create IceConnection
95. XRTC1.0 - Construct binding response
96. XRTC1.0 - Add MESSAGE-INTEGRITY attribute
97. XRTC1.0 - Add FINGERPRINT attribute
98. XRTC1.0 - Send binding response
99. XRTC1.0 - High performance sending of UDP packets
100. XRTC1.0 - Complete the keepalive of ICE connection
101. XRTC1.0 - Send STUN error response message
102. XRTC1.0 - Implementation of connectivity check on the service side
103. XRTC1.0 - Design the ping execution cycle of IceTransportChannel
104. XRTC1.0-ICE Connection ping priority
105. XRTC1.0 - Select a connection to execute the current round of ping request
106. XRTC1.0 - Construct STUN request request
107. XRTC1.0-ICE general nomination and active nomination
108. XRTC1.0 - Send STUN ping request
109. XRTC1.0 - Processing STUN response
110. XRTC1.0 - Output RTT and ping ID information
111. XRTC1.0 - Update the read/write status of IceConnection
112. XRTC1.0 - Implement the handover strategy of selected connection
113. XRTC1.0 - The handover policy considers the priority and RTT of IceConnection
114. XRTC1.0 - Start Switching Selected Connection
115. XRTC1.0 - Clean STUN request and process error response
116. XRTC1.0 - Set CandidatePairState
117. XRTC1.0 - Handling the IceConnection ping Cycle Problem
118. XRTC1.0 - Implementation of IceConnection Activity Detection Mechanism
119. XRTC1.0 - Update the status of IceTransportChannel
120. XRTC1.0 - Encapsulate DtlsTransport Class
121. XRTC1.0 - Cache ClientHello packet
122. XRTC1.0 - Installing DTLS
123. XRTC1.0 - Implement SetLocalCertificate method
124. XRTC1.0 - Implement SetRemoteFingerprint method
125. XRTC1.0 - Start DTLS
126. XRTC1.0 - Reading DTLS Data
127. XRTC1.0 - Write DTLS data
128. XRTC1.0 - Set DTLS-SRTP cipher suite
129. XRTC1.0 - Set the state of DtlsTransport
130. XRTC1.0 - Set DtlsTransport receiving status
131. XRTC1.0 - Calculate the status of PeerConnection
132. XRTC1.0 - Calculate the state of IceTransportChannel
133. XRTC1.0 - Calculate the state of IceAgent
134. XRTC1.0 - Joint ICE and DTLS status Recalculate PeerConnection status
135. XRTC1.0 - Implement resource cleanup in PeerConnection failed status
136. XRTC1.0 signaling supports stopping streaming
137. XRTC1.0-xrtcserver supports stopping streaming
138. XRTC1.0 - Summary of Streaming
--------------RTC pull flow----------------
139. XRTC1.0 - Design the streaming end UI
140. XRTC1.0-xrtcserver processes the pull command
141. XRTC1.0-Audio Video Forwarding Scheme Design
142. XRTC1.0 - Parsing the ssrc information of SDP in PushStream
143. XRTC1.0 - Parsing ssrc group information
144. XRTC1.0 - Creating Audio and Video Tracks
145. XRTC1.0-PushStream Implementation Method for Acquiring Audio and Video Sources
146. XRTC1.0-PullStream Implementation Method for Setting Audio and Video Sources
147. Adding ssrc description information to XRTC1.0-offer sdp
148. XRTC1.0 - Create DtlsSrtpTransport
149. XRTC1.0 - Exporting server and client keys from DTLS
150. XRTC1.0 - Create SrtpSession and Set Parameters
151. XRTC1.0 - Introducing the libsrtp library
152. XRTC1.0 - Initialize the libsrtp library
153. XRTC1.0 - Create or update the srtp context structure
154. XRTC1.0 - Complete the set_recv and update_recv methods of srtp
155. XRTC1.0 - Start installing DTLS-SRTP
156. XRTC1.0 - Demultiplexing rtp and rtcp packets
157. XRTC1.0 - Implementation of judgment methods for rtp and rtcp packets
158. XRTC1.0-rtp packet decryption
159. XRTC1.0-rtcp packet decryption
160. XRTC1.0-RtcStream obtains rtp and rtcp packets
161. XRTC1.0 - Forwarding RTP Data
162. XRTC1.0 - Implement rtp transmission of DtlsSrtpTransport
163. XRTC1.0 - Encrypt rtp packets
164. XRTC1.0 - Send encrypted rtcp packets
165. XRTC1.0-signaling Stop Pulling
166. XRTC1.0-xrtcserver processes the command to stop streaming
167. XRTC1.0 - Exception handling and code improvement
168. XRTC1.0 - Summary and Effect Demonstration

Expand more

Course outline- (Core architecture) Large distributed real-time audio and video XRTC system project based on WebRTC

Expand more
on-line
customer service
APP
download

Download Android client

Download iPhone client

official
WeChat

Follow official WeChat

return
Top