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
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)
Xrtcserver (distribution service)
Protocol stack and core process
Effect display
Remote sharing of local video (streaming end)
Remote sharing of local video (streaming end)
Delay effect test
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