
рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА, рд╣рдордиреЗ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдФрд░ рдЙрддреНрдкрд╛рдж рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рддрд╛рдХрд┐ рджреЛрд╕реНрддреЛрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рддреЗ рд╕рдордп рд╡реЙрдпрд╕ рдЪреИрдЯ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реЛред рдЗрди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдиреЗ рдПрдХ рдЫреЛрдЯреА рдЯреАрдо рдФрд░ рд╕реАрдорд┐рдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде, рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрд╣реБрдд рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред
рдпрд╣ рдЖрд▓реЗрдЦ рдЙрди рд╡рд┐рднрд┐рдиреНрди рддрдХрдиреАрдХреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдСрдбрд┐рдпреЛ / рд╡реАрдбрд┐рдпреЛ рдЪреИрдЯ рдХреЗ рд▓рд┐рдП Discord рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкреВрд░реЗ рд╕рдореВрд╣ рдФрд░ рдЪреИрдирд▓ "рд╕рдореВрд╣" (рдЧрд┐рд▓реНрдб) рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ - рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ "рд╕рд░реНрд╡рд░" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, "рд╕рд░реНрд╡рд░" рд╢рдмреНрдж рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИредрдореБрдЦреНрдп рд╕рд┐рджреНрдзрд╛рдВрдд
Discord рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдСрдбрд┐рдпреЛ / рд╡реАрдбрд┐рдпреЛ рдЪреИрдЯ рдХрдИ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╣рдордиреЗ рдмрдбрд╝реЗ рд╕рдореВрд╣ рдХреЗ рдЪреИрдЯ рдореЗрдВ рдПрдХ рд╣рдЬрд╛рд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдмрд╛рд░реА-рдмрд╛рд░реА рд╕реЗ рджреЗрдЦрд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреАрдпрд░-рдЯреВ-рдкреАрдпрд░ рдкреАрдпрд░-рдЯреВ-рдкреАрдпрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде рдирд┐рд╖реЗрдзрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдорд╣рдВрдЧрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
Discord рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд░реВрдЯ рдХрд░рдирд╛ рдпрд╣ рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ IP рдкрддрд╛ рдХрднреА рджрд┐рдЦрд╛рдИ рди рджреЗ - рдФрд░ рдХреЛрдИ рднреА DDoS рдЕрдЯреИрдХ рд▓реЙрдиреНрдЪ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реВрдЯрд┐рдВрдЧ рдХреЗ рдЕрдиреНрдп рдлрд╛рдпрджреЗ рд╣реИрдВ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЙрдбрд░реЗрд╢рдиред рдкреНрд░рд╢рд╛рд╕рдХ рдШреБрд╕рдкреИрдард┐рдпреЛрдВ рдХреЛ рдзреНрд╡рдирд┐ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЧреНрд░рд╛рд╣рдХ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛
рдХрдИ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдЪрд▓рддрд╛ рд╣реИред
- рд╡реЗрдм (рдХреНрд░реЛрдо / рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ / рдПрдЬ, рдЖрджрд┐)
- рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рд╡рд┐рдВрдбреЛрдЬ, рдореИрдХрдУрдПрд╕, рд▓рд┐рдирдХреНрд╕)
- рдлрд╝реЛрди (iOS / Android)
рд╣рдо рдЗрди рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
WebRTC рдХреЛрдб рдХреЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рд░реАрдпрд▓-рдЯрд╛рдЗрдо рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ, рдСрдбрд┐рдпреЛ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдорд╛рдирдХ
рд╡рд░реНрд▓реНрдб рд╡рд╛рдЗрдб рд╡реЗрдм рдХрдВрд╕реЛрд░реНрдЯрд┐рдпрдо рдФрд░
рдЗрдВрдЯрд░рдиреЗрдЯ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рд╕рдореВрд╣ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдирд╛рдпрд╛
рдЬрд╛рддрд╛ рд╣реИ ред WebRTC рд╕рднреА рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдПрдХ рдореВрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред
рдбрд┐рд╕реНрдХреЙрд░реНрдб рдореЗрдВ рдСрдбрд┐рдпреЛ рдФрд░ рд╡реАрдбрд┐рдпреЛ рд╡реЗрдмрдЖрд░рдЯреАрд╕реА рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ WebRTC рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдбреЗрд╕реНрдХрдЯреЙрдк, рдЖрдИрдУрдПрд╕ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡реЗрдмрдЖрд░рдЯреАрд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдирд┐рд░реНрдорд┐рдд рдПрдХрд▓ рд╕реА ++ рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рди рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдореВрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рд╡реЙрд▓реНрдпреВрдо рдореНрдпреВрдЯ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░реЗрдВ, рдЬрдм рд╣реЗрдбрд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдореНрдпреВрдЯ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ ред рдпрд╣ рддрдм рдЕрд╡рд╛рдВрдЫрдиреАрдп рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдФрд░ рдЖрдкрдХреЗ рдорд┐рддреНрд░ рдЫрд╛рдкреЗ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдбрд┐рд╕реНрдХреЛрд░реНрдб рдЪреИрдЯ рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рд╕рдордиреНрд╡рдп рдХрд░рддреЗ рд╣реИрдВред
- рд╡реИрд╢реНрд╡рд┐рдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдорд┐рдХреНрд╕рд░ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡реЙрд▓реНрдпреВрдо рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
- рдЦреЗрд▓реЛрдВ рдореЗрдВ рдЖрд╡рд╛рдЬ рдЧрддрд┐рд╡рд┐рдзрд┐ рдФрд░ рдкреНрд░рд╕рд╛рд░рдг рдСрдбрд┐рдпреЛ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдСрдбрд┐рдпреЛ рдбреЗрдЯрд╛ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░реЗрдВред
- рдореМрди рдХреА рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди рдмреИрдВрдбрд╡рд┐рдбреНрде рдФрд░ рд╕реАрдкреАрдпреВ рдХреА рдЦрдкрдд рдХреЛ рдХрдо рдХрд░реЗрдВ - рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрд┐рд╕реА рднреА рд╕рдордп рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╡реЙрдЗрд╕ рдЪреИрдЯ рдореЗрдВ, рдХреЗрд╡рд▓ рдХреБрдЫ рд╣реА рд▓реЛрдЧ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдмреЛрд▓рддреЗ рд╣реИрдВред
- рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╢ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо-рд╡рд╛рдЗрдб рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред
- рдСрдбрд┐рдпреЛ-рд╡реАрдбрд┐рдпреЛ рдкреИрдХреЗрдЯ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рднреЗрдЬреЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪреИрдЯ рдореЗрдВ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╕реВрдЪрдХ)ред
WebRTC рдХрд╛ рдЕрдкрдирд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдиреЗ рдХрд╛ рдЕрд░реНрде рд╣реИ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдбреЗрдЯ: рдпрд╣ рдПрдХ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдкреНрд░рдпрд╛рд╕ рд╣рдорд╛рд░реЗ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рджреЗрддрд╛ рд╣реИред
рдбрд┐рд╕реЙрд░реНрдбрд░ рдореЗрдВ, рд╡реЙрдЗрд╕ рдЪреИрдирд▓ рдФрд░ рдХреЙрд▓ рджрд░реНрдЬ рдХрд░рдХреЗ рдЖрд╡рд╛рдЬ рдФрд░ рд╡реАрдбрд┐рдпреЛ рд╕рдВрдЪрд╛рд░ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдХрдиреЗрдХреНрд╢рди рд╣рдореЗрд╢рд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рднрд╛рдЧреЛрдВ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рддреНрд░реБрдЯрд┐ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдХреЛ рднреА рдмрдврд╝рд╛рддрд╛ рд╣реИред рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреНрд░рддрд┐рднрд╛рдЧреА рдирдП рдЖрдВрддрд░рд┐рдХ рд╕рд░реНрд╡рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ
рджреЗрд╢реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рдЖрдкрдХреЛ рд╡реЗрдмрдЖрд░рдЯреАрд╕реА рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, WebRTC рд╕рддреНрд░ рд╡рд┐рд╡рд░рдг рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (
рдПрд╕рдбреАрдкреА ) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдСрдбрд┐рдпреЛ / рд╡реАрдбрд┐рдпреЛ рдкрд░ рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдкреНрд░рддрд┐ рдкреИрдХреЗрдЯ 10 рдХреЗрдмреА рддрдХ)ред рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ, WebRTC (
webrtc::Call
) рд╕реЗ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп API рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЛрдиреЛрдВ рдкреНрд░рд╡рд╛рд╣ - рдЗрдирдмрд╛рдЙрдВрдб рдФрд░ рдЖрдЙрдЯрдмрд╛рдЙрдВрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдПрдХ рд╡реЙрдЗрд╕ рдЪреИрдирд▓ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕реВрдЪрдирд╛рдУрдВ рдХрд╛ рдиреНрдпреВрдирддрдо рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдмреИрдХрдПрдВрдб рд╕рд░реНрд╡рд░ рдПрдбреНрд░реЗрд╕ рдФрд░ рдкреЛрд░реНрдЯ, рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╡рд┐рдзрд┐, рдЪрд╛рдмрд┐рдпрд╛рдБ, рдХреЛрдбреЗрдХ рдФрд░ рд╕реНрдЯреНрд░реАрдо рдкрд╣рдЪрд╛рди (рд▓рдЧрднрдЧ 1000 рдмрд╛рдЗрдЯреНрд╕) рд╣реИред
webrtc::AudioSendStream* createAudioSendStream( uint32_t ssrc, uint8_t payloadType, webrtc::Transport* transport, rtc::scoped_refptr<webrtc::AudioEncoderFactory> audioEncoderFactory, webrtc::Call* call) { webrtc::AudioSendStream::Config config{transport}; config.rtp.ssrc = ssrc; config.rtp.extensions = {{"urn:ietf:params:rtp-hdrext:ssrc-audio-level", 1}}; config.encoder_factory = audioEncoderFactory; const webrtc::SdpAudioFormat kOpusFormat = {"opus", 48000, 2}; config.send_codec_spec = webrtc::AudioSendStream::Config::SendCodecSpec(payloadType, kOpusFormat); webrtc::AudioSendStream* audioStream = call->CreateAudioSendStream(config); audioStream->Start(); return audioStream; }
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, WebRTC рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд░реНрд╡реЛрддреНрддрдо рдорд╛рд░реНрдЧ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рдЗрд╕реНрдЯреИрдмреНрд▓рд┐рд╢рдореЗрдВрдЯ (
ICE ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ ICE рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк NAT рдХреЗ рдкреАрдЫреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдХрдиреЗрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЕрдиреНрдп рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рд╕реЗ рдЖрдкрдХреЗ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рдЧреБрдкреНрдд рд░рдЦрддрд╛ рд╣реИред рдЧреНрд░рд╛рд╣рдХ рд╕рдордп-рд╕рдордп рдкрд░ рдкрд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдПрдХ рдЦреБрд▓рд╛ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдП рд░рдЦреЗред
рдЕрдВрдд рдореЗрдВ, WebRTC рдореАрдбрд┐рдпрд╛ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдХреНрдпреЛрд░ рд░рд┐рдпрд▓-рдЯрд╛рдЗрдо рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (
SRTP ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬрд┐рдпрд╛рдБ рдорд╛рдирдХ рдЯреАрдПрд▓рдПрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛рдЧреНрд░рд╛рдо рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рд▓реЗрдпрд░ рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА (
DTLS ) рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд WebRTC рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдкрдХреЛ
webrtc::Transport
API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдкрд░рд┐рд╡рд╣рди рдкрд░рдд рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
DTLS / SRTP рдХреЗ рдмрдЬрд╛рдп, рд╣рдордиреЗ рддреЗрдЬ
Salsa20 рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдореМрди рдХреА рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди рдСрдбрд┐рдпреЛ рдбреЗрдЯрд╛ рдирд╣реАрдВ рднреЗрдЬрддреЗ рд╣реИрдВ - рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдирд╛, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрдбрд╝реЗ рдЪреИрдЯ рд░реВрдо рдореЗрдВред рдпрд╣ рдмреИрдВрдбрд╡рд┐рдбреНрде рдФрд░ рд╕реАрдкреАрдпреВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрдЪрдд рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рджреЛрдиреЛрдВ рдХреЛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдФрд░ рдСрдбрд┐рдпреЛ / рд╡реАрдбрд┐рдпреЛ рдкреИрдХреЗрдЯ рдХреЗ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕рдордп рддреИрдпрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЪреВрдВрдХрд┐ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди
WebRTC API , SDP, ICE, DTLS рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░-рдЖрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ SRTP рдХреЛ рдЫреЛрдбрд╝рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ред рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ (рдкреИрдХреЗрдЯреЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╕рдордп 1200 рдмрд╛рдЗрдЯреНрд╕ рд╕реЗ рдХрдо) - рдФрд░ рдПрд╕рдбреАрдкреА рд╕рддреНрд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреИрдХрдПрдВрдб рдбреЗрд╕реНрдХрдЯреЙрдк рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
рдмреИрдХрдПрдВрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░
рдмреИрдХрдПрдВрдб рдкрд░ рдХрдИ рд╡реЙрдпрд╕ рдЪреИрдЯ рд╕реЗрд╡рд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рддреАрди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ: рдбрд┐рд╕реНрдХрд╛рд░реНрдб рдЧреЗрдЯрд╡реЗ, рдбрд┐рд╕реНрдХреЛрд░реНрдб рдЧрд┐рд▓реНрдбреНрд╕ рдФрд░ рдбрд┐рд╕реЙрд░реНрдб рд╡реЙрдпрд╕ред рд╣рдорд╛рд░реЗ рд╕рднреА рд╕рд┐рдЧреНрдирд▓ рд╕рд░реНрд╡рд░
рдПрд▓рд┐рдХреНрд╕рд┐рд░ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдЬреЛ рд╣рдореЗрдВ рдмрд╛рд░-рдмрд╛рд░ рдХреЛрдб рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЬрдм рдЖрдк рдСрдирд▓рд╛рдЗрди рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдХ WebSocket рдХрдиреЗрдХреНрд╢рди рдХреЛ рдПрдХ Discord Gateway (рд╣рдо рдЗрд╕реЗ WebSocket
рдЧреЗрдЯрд╡реЗ рдХрдиреЗрдХреНрд╢рди рдХрд╣рддреЗ рд╣реИрдВ) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдкрдХреЗ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рд╕рдореВрд╣ рдФрд░ рдЪреИрдирд▓, рдкрд╛рда рд╕рдВрджреЗрд╢, рдЙрдкрд╕реНрдерд┐рддрд┐ рдкреИрдХреЗрдЬ рдЖрджрд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдирд╛рдУрдВ рдХреА рд╕реВрдЪрдирд╛ рдорд┐рд▓рддреА рд╣реИред
рдЬрдм рдХрд┐рд╕реА рд╡реЙрдЗрд╕ рдЪреИрдирд▓ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрдиреЗрдХреНрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╡реЙрдпрд╕ рд╕реНрдЯреЗрдЯрд╕
рдСрдмреНрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЧреНрд░рд╛рд╣рдХ рдЧреЗрдЯрд╡реЗ рдХрдиреЗрдХреНрд╢рди рдкрд░ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред
defmodule VoiceStates.VoiceState do @type t :: %{ session_id: String.t(), user_id: Number.t(), channel_id: Number.t() | nil, token: String.t() | nil, mute: boolean, deaf: boolean, self_mute: boolean, self_deaf: boolean, self_video: boolean, suppress: boolean } defstruct session_id: nil, user_id: nil, token: nil, channel_id: nil, mute: false, deaf: false, self_mute: false, self_deaf: false, self_video: false, suppress: false end
рдЬрдм рдПрдХ рд╡реЙрдЗрд╕ рдЪреИрдирд▓ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдбрд┐рд╕реНрдХрд╡рд░ рд╡реЙрдпрд╕ рд╕рд░реНрд╡рд░ рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╣ рдЪреИрдирд▓ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рднрд╛рдЧреА рдХреЛ рдзреНрд╡рдирд┐ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рд╕рднреА рд╡реЙрдпрд╕ рдЪреИрдирд▓ рдПрдХ рд╕рд░реНрд╡рд░ рдХреЛ рд╕реМрдВрдкреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЪреИрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рд╣реИрдВ, рддреЛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд┐рд╕реНрдХрд╡рд░реНрдб рдЧрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рдкреВрд░реЗ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдХ рд╡реЙрдЗрд╕ рд╕рд░реНрд╡рд░ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
рд╡реЙрдпрд╕ рд╕рд░реНрд╡рд░ рдЧрдВрддрд╡реНрдп рдХреЛ рддреНрдпрд╛рдЧреЗрдВ
рдкреНрд░рддреНрдпреЗрдХ Discord Voice рд╕рд░реНрд╡рд░ рд╕рдордп-рд╕рдордп рдкрд░ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдФрд░ рд▓реЛрдб рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдПрдХ рд╕реЗрд╡рд╛ рдЦреЛрдЬ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд░рдЦреА рдЧрдИ рд╣реИ (рд╣рдо
etcd рдХрд╛ рдЙрдкрдпреЛрдЧ
рдХрд░рддреЗ рд╣реИрдВ ), рдЬреИрд╕рд╛ рдХрд┐
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИред
Discord Guilds рд╕рд░реНрд╡рд░ рд╕реЗрд╡рд╛ рдЦреЛрдЬ рдкреНрд░рдгрд╛рд▓реА рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдореВрд╣ рдХреЛ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рдмрд╕реЗ рдХрдо рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА Discord Voice рд╕рд░реНрд╡рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЪрдпрдирд┐рдд рд╣реЛрдиреЗ рдкрд░, рд╕рднреА рд╡реЙрдпрд╕ рд╕реНрдЯреЗрдЯрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (рдбрд┐рд╕реЙрд░реНрдб рдЧрд┐рд▓реНрдбреНрд╕ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд) рднреА рдбрд┐рд╕реНрдХреЙрд░реНрдб рд╡реЙрдпрд╕ рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рдСрдбрд┐рдпреЛ / рд╡реАрдбрд┐рдпреЛ рдлреЙрд░рд╡рд░реНрдбрд┐рдВрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХреЗред рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЪрдпрдирд┐рдд рдбрд┐рд╕реНрдХреЙрд░реНрдб рд╡реЙрдпрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╡реЙрдЗрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде
рджреВрд╕рд░рд╛ рд╡реЗрдмрд╕реЙрдХреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓рддрд╛ рд╣реИ (рд╣рдо рдЗрд╕реЗ рд╡реЗрдмрд╕реЙрдХреЗрдЯ
рд╡реЙрдпрд╕ рдХрдиреЗрдХреНрд╢рди рдХрд╣рддреЗ рд╣реИрдВ), рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ рдлрд╝реЙрд░рд╡рд░реНрдбрд┐рдВрдЧ рдФрд░ рд╕реНрдкреАрдЪ рдЗрдВрдбрд┐рдХреЗрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬрдм рдЧреНрд░рд╛рд╣рдХ
рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╕реНрдерд┐рддрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдбрд┐рд╕реНрдХреЙрд░реНрдб рдЧрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рдЗрд╖реНрдЯрддрдо рдбрд┐рд╕реНрдХреНрд╕реЙрд░реНрдб рд╡реЙрдпрд╕ рд╕рд░реНрд╡рд░ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред
рд╡реЙрдЗрд╕ рдХрдиреЗрдХреНрдЯреЗрдб рд╕рдВрджреЗрд╢ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдиреЗ рдЪрдпрдирд┐рдд рдбрд┐рд╕реНрдХ рд╡реЙрдЗрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдпреВрдбреАрдкреА рдкреИрдХреЗрдЯреЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рд╣реИред
рдбрд┐рд╕реНрдХреЙрд░реНрдб рд╡реЙрдпрд╕ рд╕рд░реНрд╡рд░ рдореЗрдВ рджреЛ рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ: рдПрдХ рд╕рд┐рдЧреНрдирд▓ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдПрдХ рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ рд░рд┐рд▓реЗ рдЗрдХрд╛рдИ, рдЬрд┐рд╕реЗ рдПрдХ рдЪрдпрдирд╛рддреНрдордХ рдЕрдЧреНрд░реЗрд╖рдг рдЗрдХрд╛рдИ (
SFU ) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд┐рдЧреНрдирд▓ рдореЙрдбреНрдпреВрд▓ рдПрд╕рдПрдлрдпреВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рд╡рд╛рд╣ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА, рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯрд┐рдВрдЧ рд╕рдВрдХреЗрддрдХ рд╕рдВрдХреЗрддрдХ рдЖрджрд┐ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
рд╣рдорд╛рд░рд╛ SFU (C ++ рдореЗрдВ) рдЪреИрдирд▓реЛрдВ рдХреЗ рдмреАрдЪ рдСрдбрд┐рдпреЛ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдпрд╣ рдЕрдкрдиреЗ рджрдо рдкрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рд╣рдорд╛рд░реЗ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдПрд╕рдПрдлрдпреВ рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдмрд╕реЗ рдмрдбрд╝реА рдмрдЪрддред рдЬрдм рдореЙрдбрд░реЗрдЯрд░ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддреЗ рд╣реИрдВ (рд╕рд░реНрд╡рд░ рдХреЛ рдореНрдпреВрдЯ рдХрд░рддреЗ рд╣реИрдВ), рддреЛ рдЙрдирдХреЗ рдСрдбрд┐рдпреЛ рдкреИрдХреЗрдЯ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдПрд╕рдПрдлрдпреВ рджреЗрд╢реА рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░-рдЖрдзрд╛рд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдкреБрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рджреЗрд╢реА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд╣рди рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рджреМрд░рд╛рди рдкреИрдХреЗрдЯ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, SFU
RTCP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реАрдбрд┐рдпреЛ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред SFU рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рд╕реЗ RTCP рд░рд┐рдкреЛрд░реНрдЯ рдПрдХрддреНрд░ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ - рдФрд░ рдкреНрд░реЗрд╖рдХреЛрдВ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рдмреИрдВрдб рдЙрдкрд▓рдмреНрдз рд╣реИред
рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛
рдЪреВрдБрдХрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рд╕реАрдзреЗ рдХреЗрд╡рд▓ рдбрд┐рд╕реНрдХ рд╡реЙрдЗрд╕ рд╕рд░реНрд╡рд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рд╣рдо рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рд╕рд┐рдЧреНрдирд▓ рдореЙрдбреНрдпреВрд▓ рд▓рдЧрд╛рддрд╛рд░ SFU рдкрд░ рдирдЬрд╝рд░ рд░рдЦрддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реЗрд╡рд╛ рдореЗрдВ рдиреНрдпреВрдирддрдо рдард╣рд░рд╛рд╡ (рдХрдИ рдЦреЛрдП рд╣реБрдП рдкреИрдХреЗрдЯ) рдХреЗ рд╕рд╛рде рддреБрд░рдВрдд рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрддрд╛ рд╣реИред SFU рд╕реНрдерд┐рддрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдмрд╛рддрдЪреАрдд рдХреЗ рдмрд┐рдирд╛ рд╕рд┐рдЧреНрдирд▓ рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдмрд╣рд╛рд▓ рдХреА рдЬрд╛рддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ SFU рдХреНрд░реИрд╢ рджреБрд░реНрд▓рдн рд╣реИрдВ, рд╣рдо рд╕реЗрд╡рд╛ рдореЗрдВ рд░реБрдХрд╛рд╡рдЯ рдХреЗ рдмрд┐рдирд╛ SFU рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдЬрдм рдбрд┐рд╕реНрдХ рд╡реЙрдпрд╕ рд╕рд░реНрд╡рд░ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкрд┐рдВрдЧ рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддрд╛ - рдФрд░ рд╕реЗрд╡рд╛ рдЦреЛрдЬ рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдХ рдЯреВрдЯреЗ рд╣реБрдП рд╡реЗрдмрд╕реЙрдХреЗрдЯ рд╡реЙрдпрд╕ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдХрд╛рд░рдг рдПрдХ рд╕рд░реНрд╡рд░ рдХреНрд░реИрд╢ рдХреЛ рднреА рдиреЛрдЯрд┐рд╕ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рд╡рд╣
рд╡реЙрдпрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд╡реЗрдмрд╕реНрдХреЗрдЯ рдЧреЗрдЯрд╡реЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
рдкрд┐рдВрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред Discord Guilds рд╕рд░реНрд╡рд░ рд╡рд┐рдлрд▓рддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ, рд╕реЗрд╡рд╛ рдЦреЛрдЬ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рдореВрд╣ рдореЗрдВ рдПрдХ рдирдпрд╛ Discord Voice рд╕рд░реНрд╡рд░ рдЕрд╕рд╛рдЗрди рдХрд░рддрд╛ рд╣реИред рдбрд┐рд╕реЙрд░реНрдб рдЧрд┐рд▓реНрдбреНрд╕ рддрдм рд╕рднреА рд╡реЙрдпрд╕ рд╕реНрдЯреЗрдЯрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдирдП рд╡реЙрдпрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрддреЗ рд╣реИрдВред рд╕рднреА рдХреНрд▓рд╛рдЗрдВрдЯ рдирдП рд╕рд░реНрд╡рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ рд╕реЗрдЯрдЕрдк рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдХреНрд╕рд░, рдбрд┐рд╕реЙрд░реНрдб рд╡реЙрдпрд╕ рд╕рд░реНрд╡рд░ DDoS рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддреЗ рд╣реИрдВ (рд╣рдо рдЗрд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЖрдИрдкреА рдкреИрдХреЗрдЯ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рд╡реГрджреНрдзрд┐ рдХреЗ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦрддреЗ рд╣реИрдВ)ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рдЙрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рд╕рд░реНрд╡рд░ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ: рд╣рдо рдЗрд╕реЗ рд╕реЗрд╡рд╛ рдЦреЛрдЬ рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ, рдПрдХ рдирдпрд╛ рд╕рд░реНрд╡рд░ рдЪреБрдирддреЗ рд╣реИрдВ, рд╕рднреА рд╡реЙрдЗрд╕ рдХрдореНрдпреБрдирд┐рдХреЗрд╢рди рд╕реНрдЯреЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдЗрд╕рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдирдП рд╕рд░реНрд╡рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЬрдм DDoS рд╣рдорд▓рд╛ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд░реНрд╡рд░ рд╕реЗрд╡рд╛ рдЦреЛрдЬ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рд╕рдореВрд╣ рдХрд╛ рдорд╛рд▓рд┐рдХ рд╡реЛрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдХреНрд╖реЗрддреНрд░ рдЪреБрдирдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдПрдХ рд╕рдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред рдбрд┐рд╕реЙрд░реНрдб рдЧрд┐рд▓реНрдбреНрд╕ рд╕рд░реНрд╡рд░ рдПрдХ рдирдП рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕реЗрд╡рд╛ рдЦреЛрдЬ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдкрд░рд╛рдорд░реНрд╢ рд╕реЗ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдЙрдкрд▓рдмреНрдз рд╡реЙрдЗрд╕ рд╕рд░реНрд╡рд░ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рд╡рд╣ рдЖрд╡рд╛рдЬ рд╕рдВрдЪрд╛рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирдП рд╕рд░реНрд╡рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЧреНрд░рд╛рд╣рдХ рдкреБрд░рд╛рдиреЗ рдбрд┐рд╕реНрдХреЙрд░реНрдб рд╡реЙрдпрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рд╡реЗрдмрд╕реЙрдХреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдХреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдирдП рдбрд┐рд╕реЙрд░реНрдбрд░ рд╡реЙрдпрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд╕рдВрдмрдВрдз рдмрдирд╛рддреЗ рд╣реИрдВред
рд╕реНрдХреЗрд▓рд┐рдВрдЧ
Discord Gateway, Discord Guilds рдФрд░ Discord Voice рдХреА рд╕рдВрдкреВрд░реНрдг рдЕрд╡рд╕рдВрд░рдЪрдирд╛ рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИред Google рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдбрд┐рд╕реНрдХрд╡реЗ рдЧреЗрдЯрд╡реЗ рдФрд░ рдбрд┐рд╕реНрдХреЙрд░реНрдб рдЧрд┐рд▓реНрдб рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреБрдирд┐рдпрд╛ рднрд░ рдХреЗ 13 рдХреНрд╖реЗрддреНрд░реЛрдВ (850 рд╕реЗ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░реЛрдВ рдореЗрдВ рд╕реНрдерд┐рдд) рдореЗрдВ 850 рд╕реЗ рдЕрдзрд┐рдХ рд╡реЙрдпрд╕ рд╕рд░реНрд╡рд░ рд╣реИрдВред рдпрд╣ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░реЛрдВ рдФрд░ DDoS рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдЕрддрд┐рд░реЗрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╣рдо рдХрдИ рднрд╛рдЧреАрджрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░реЛрдВ рдореЗрдВ рдЕрдкрдиреЗ рднреМрддрд┐рдХ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рджрдХреНрд╖рд┐рдг рдЕрдлреНрд░реАрдХреА рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рджреЛрдиреЛрдВ рдореЗрдВ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдбрд┐рд╕реНрдХреЙрд░реНрдб рдЕрдм рдПрдХ рд╕рд╛рде 2.6 рдорд┐рд▓рд┐рдпрди рд╕реЗ рдЕрдзрд┐рдХ рд╡реЙрдЗрд╕ рдЪреИрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ 220 рд╕реЗ рдЕрдзрд┐рдХ Gbit / s рдФрд░ 120 рдорд┐рд▓рд┐рдпрди рдкреИрдХреЗрдЯ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХреЗ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдЯреНрд░реИрдлрд┐рдХ рдХреЗ рд╕рд╛рде рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред
рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?
рд╣рдо рд▓рдЧрд╛рддрд╛рд░ рдЖрд╡рд╛рдЬ рд╕рдВрдЪрд╛рд░ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреЗ рд╣реИрдВ (рдЧреНрд░рд╛рд╣рдХ рдХреА рддрд░рдл рд╕реЗ рдмреИрдХрдПрдВрдб рд╕рд░реНрд╡рд░ рдкрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ)ред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд╣рдЪрд╛рди рдФрд░ рдХреНрд╖рд░рдг рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреАред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдордиреЗ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╡реАрдбрд┐рдпреЛ рдЪреИрдЯ рдФрд░ рд╕реНрдХреНрд░реИрдирд╛рд╕реНрдЯ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдереЗ, рд▓реЗрдХрд┐рди рдЕрдм рд╡реЗ рдХреЗрд╡рд▓ рдирд┐рдЬреА рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдСрдбрд┐рдпреЛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реАрдкреАрдпреВ рд╢рдХреНрддрд┐ рдФрд░ рдмреИрдВрдбрд╡рд┐рдбреНрде рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╡реАрдбрд┐рдпреЛ рдЧреБрдгрд╡рддреНрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдВрдбрд╡рд┐рдбреНрде рдФрд░ рд╕реАрдкреАрдпреВ / рдЬреАрдкреАрдпреВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреБрдиреМрддреА рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдПрдХ рдЪреИрдирд▓ рдореЗрдВ рдЧреЗрдорд░реНрд╕ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╣реЛрддрд╛ рд╣реИред
рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╡реАрдбрд┐рдпреЛ рдХреЛрдбрд┐рдВрдЧ (SVC) рддрдХрдиреАрдХ, H.264 / MPEG-4 AVC рдорд╛рдирдХ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░, рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдмрди рд╕рдХрддрд╛ рд╣реИред
рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╡реЗрдмрдХреИрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдЪреНрдЪрддрд░ рдПрдлрдкреАрдПрд╕ рдФрд░ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЗ рдХрд╛рд░рдг рд╡реАрдбрд┐рдпреЛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕реНрдХреНрд░реЗрдВрдХреЛрд╕реНрдЯ рдХреЛ рдФрд░ рднреА рдЕрдзрд┐рдХ рдмреИрдВрдбрд╡рд┐рдбреНрде рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдбреЗрд╕реНрдХрдЯреЙрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░-рдЖрдзрд╛рд░рд┐рдд рд╡реАрдбрд┐рдпреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред