рдиреЛрдб .js + php рдФрд░ ffmpeg рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯреНрд░реАрдо рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╡реАрдбрд┐рдпреЛ - рдПрдХ

рдореИрдВ рдПрдХ рдЖрдЙрдЯрд╕реЛрд░реНрд╕рд┐рдВрдЧ рдХрдВрдкрдиреА рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛рдо рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЖрдВрддрд░рд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рд╡реАрдбрд┐рдпреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдерд╛: рд╕рд╣реА рдЖрдХрд╛рд░ рдХрд╛ рдЖрдХрд╛рд░, рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдирд╛, рдСрдбрд┐рдпреЛ рдЯреНрд░реИрдХ (рдпрджрд┐ рдХреЛрдИ рд╣реЛ), рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдирд╛ред рдЕрдВрдд рдореЗрдВ, рдкрд░рд┐рдгрд╛рдо рдХреЛ рдмрд╛рдж рдореЗрдВ рдСрдирд▓рд╛рдЗрди рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ: рдорд╛рдкрдиреАрдпрддрд╛, рдЕрд╕реАрдорд┐рдд рд╡реАрдбрд┐рдпреЛ рдЖрдХрд╛рд░, рдЧрддрд┐, рдХреНрд░реЙрд╕-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрдЧрддрддрд╛, рджреГрд╢реНрдпрддрд╛ред

рдЪреВрдВрдХрд┐ рд╡рд┐рд╖рдп рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдЦрдВрдбреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реВрдВрдЧрд╛:

  1. рдЖрдо рд╕рдорд╕реНрдпрд╛рдУрдВ, рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдЬреЛ рдореБрдЭреЗ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛
  2. рд╡реАрдбрд┐рдпреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ (рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рд░реБрдХрдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдФрд░ рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдЙрдард╛рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред
  3. рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдгред
  4. рдмрд╛рджрд▓ рдХреЛ рдмрдЪрд╛рдУред


рдПрдХ рднрд╛рдЧ


1. рдХреНрд░реЙрд╕-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрдЧрддрддрд╛
рдЗрд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, HTML5 рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдерд╛ (рдпрд╣ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реИ)ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рд╕рд╛рдорд╛рдиреНрдп HTML4 рдлреЙрд░реНрдо рдмрдирд╛рдХрд░ рдЧрдП, рдЬрд┐рд╕реЗ рдиреЛрдб.рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдХреЛ рд╕рдмрдорд┐рдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡реАрдбрд┐рдпреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ / рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рд╡рд░реНрддрдорд╛рди рдкреНрд░рдЧрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, AJAX рдЕрдиреБрд░реЛрдз рдмрдирд╛рдП рдЧрдП рдереЗред рдкреНрд░рдкрддреНрд░ рдореЗрдВ рдПрдХ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЙрддреНрдкрдиреНрди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 32 рд╡рд░реНрдг) рд╢рд╛рдорд┐рд▓ рдереЗред Node.js рдиреЗ рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдкрд░ рдЗрд╕рд╕реЗ рдЬреБрдбрд╝реА рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд░рд╛рдЬреНрдп рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдЗрд╕ JSON рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛:

{ "fileid":"uwrd28a9v71j444d260c55hkj6uli06j", //  "name":"test.FLV", //  "progress":"7.80", //   "status":"uploading", //  "audio":10.02, //   "frame":301, //  ,   "videoProgress":"7.80", //   "audioProgress":"3.73", //   "frameProgress":"3.73", //   "messages":[], // ,      "expectedBytes":5389574, //   "uploadedBytes":420139, //   "bps":91773.48186981214, //  / "uploadEstimated":54, //     "videoEstimated":42, //      "audioEstimated":75, //      "frameEstimated":71 //     } 


рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбрд╛рдЙрдирд▓реЛрдб рд╕реНрдерд┐рддрд┐ рджреЗрдЦрддрд╛ рд╣реИред

2. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг
рдЪреВрдВрдХрд┐ PHP рдореЗрдВ рдлреНрд░рдВрдЯрдПрдВрдб (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рднреА рд╡рд╣рд╛рдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ), рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рд╕рддреНрд░ рдбреЗрдЯрд╛ рдХреЛ рдиреЛрдб рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдореЗрдордХрд╛рдЯреЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдк рдпрд╣рд╛рдБ PHP рдореЗрдВ рд╕рддреНрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдиреАрдЪреЗ рдХреА рд░реЗрдЦрд╛ рд╕рд░рд▓ рд╣реИ: рд╕рддреНрд░ рдореЗрдордХреЗрдб рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрдм рдлреЙрд░реНрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, session_id рдкрд╛рд╕ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдиреЛрдб .js. рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж, рдиреЛрдб.рдЬреЗрдПрд╕ рд╕рдВрдмрдВрдзрд┐рдд рд╕рддреНрд░ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдореЗрдордХреЗрдб рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, user_id рд▓реЗрддрд╛ рд╣реИ, рдЖрджрд┐ред рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рд╣реИ: рд╕рддреНрд░_ рдлреЙрд░реНрдо рдореЗрдВ рд╕реНрд╡рдпрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ POST рдЕрдиреБрд░реЛрдз HTML рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдХреНрд░рдо рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рд╣рдо рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ:

 <form method="post" action="http://nodeserver.com/"> <input type="file" name="video"/> <input type="hidden" name="session_id" value="session_id"/> <input type="submit" name="submit"/> </form> 


рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рдкрд╣рд▓реЗ рдиреЛрдб.рдЬреЗрдПрд╕ рдкрд░ рдЖ рдЬрд╛рдПрдЧреА, рдФрд░ рдлрд┐рд░ рд╕рддреНрд░_рдЖрдИрдбреА, рдЬреЛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдзрд┐рдХреГрдд рдирд╣реАрдВ рд╣реИ рддреЛ рдлрд╛рдЗрд▓ рдХрд┐рд╕рдХреА рдУрд░ рд╕реЗ рдЖ рд░рд╣реА рд╣реИ рдФрд░ рдЙрд╕реЗ рд░рджреНрдж рдХрд░ рджреЗрдВред рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдФрд░ рд╕реЗрд╢рди рд╕реНрд╡реИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рддреЛ рдкрд╣рд▓реЗ рд╣рдо рд╕рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдзреАрдорд╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд╕рд░реНрд╡рд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рди рдХрд░ рд▓реЗ рдХрд┐ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдмрдХреБрдЫ рдареАрдХ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рддрдм рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВред рдиреЛрдб.рдЬреЗрдПрд╕ рдореЗрдВ, рдЖрдк рдЕрдиреБрд░реЛрдз рдХреЛ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВред

3. рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рд╡реАрдбрд┐рдпреЛ рдХреЛ рддреБрд░рдВрдд рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, mp4 рдкреНрд░рд╛рд░реВрдк рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рддреБрд░рдВрдд рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдХреМрди рд╕реЗ рдЖрдХрд╛рд░ рд╣реИрдВ, рдлрд╝рд╛рдЗрд▓, рдЕрд╡рдзрд┐ рдЖрджрд┐ рдореЗрдВ рдХреНрдпрд╛ рдЯреНрд░реИрдХ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЯреНрд░рд╛рдВрд╕рдХреЛрдбрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕реЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рджреЛ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рджреЛ рдорд╛рдорд▓реЗ рд╣реИрдВ:

1. рдбрд╛рдЙрдирд▓реЛрдб рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдЬрдм рд╣рдо рдлрд╝рд╛рдЗрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ nf.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ ffmpeg рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:

 var spawn = require('child_process').spawn; var ffmpeg = spawn('ffmpeg', ['-i', '-']); var ffmpeg_stdout = '' ffmpeg.stderr.on('data', function(buffer) { ffmpeg_stdout += buffer; //     }); // file -     file.on('data', function(buffer) { ffmpeg.stdin.write(buffer); }); 


рдЪрд░ ffmpeg_stdout рдореЗрдВ рд╣рдореЗрдВ рд╡реЗ рд╕рднреА рдЯреНрд░реИрдХ рдорд┐рд▓рддреЗ рд╣реИрдВ рдЬреЛ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдореЗрдВ рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реИ, рддреЛ ffmpeg рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдкреВрд░реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рддреБрд░рдВрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рд╣рдо рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЪрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред

2. рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЧрддрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рд╣реА рд╡реАрдбрд┐рдпреЛ рдЕрднреА рд▓реЛрдб рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкреВрд░реНрдг рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛрдиреЗ рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдмрд╛рд╣рд░ рдХрд░рддрд╛ рд╣реИ: рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдлрд┐рд░ рд╣рдо рдордХреНрдЦреА рдкрд░ рд╡реАрдбрд┐рдпреЛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЦреБрд╢ рд╣реИрдВ, рдЕрдиреНрдп рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣рдо рдкреВрд░реНрдг рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдХреБрдЫ рд╣реА рд╡реАрдбрд┐рдпреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рд╡рд╣ рд╕рдм рдЖрдЬ рдХреЗ рд▓рд┐рдП рд╣реИ, рдХрд▓ рд╕реБрдмрд╣ рдХрд╛рдо рдХреЗ рд▓рд┐рдПред

рдореИрдВ рдПрдХ рдкреНрд░рдореБрдЦ рдиреЛрдЯ рдкрд░ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛: рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдЕрдирдВрдд рд╣реИрдВ, рдЖрдк рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рд▓реЛрдб рд╡рд┐рддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╛рдиреЗ рдкрд░ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реАрдбрд┐рдпреЛ рд╕реЗ рдЕрдВрддрд┐рдо рддреИрдпрд╛рд░ рдлреНрд░реЗрдо рдЦреАрдВрдЪреЛред рдпрд╣ рд╕рдм Amazon EC2 рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЧрддрд┐ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдбрд╛рдЙрдирд▓реЛрдб рдЧрддрд┐ (рдЪреИрдирд▓ рдХрдордЬреЛрд░ рд╣реИ) рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди 10mbits рд╕реЗ рдХрдо рдирд╣реАрдВ, рдореБрдЭреЗ рдпрдХреАрди рд╣реИред рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рд▓реЛрдб рдкрд░: рдордзреНрдп рд╕рд░реНрд╡рд░ рдЕрдХреЗрд▓реЗ, рдПрдХ рд╡реАрдбрд┐рдпреЛ рд▓рдЧрднрдЧ 2Mbps рд╡реАрдбрд┐рдпреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдпрд╛рдиреА рдбрд╛рдЙрдирд▓реЛрдб рдмрд╣реБрдд рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдФрд░ рдСрдбрд┐рдпреЛ рдЯреНрд░реИрдХ рдХреЛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЬрд▓реНрджреА рд╕реЗ рдЦреАрдВрдЪрдирд╛ред

рдпрджрд┐ рдЖрдк рдкреЛрд╕реНрдЯ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЕрдЧрд▓реА рдмрд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдХрд╛рдо рдХреЗ рддрдВрддреНрд░ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред

рдХреНрдпрд╛ рд╣реБрдЖ рдЗрд╕рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯред рддреБрд░рдВрдд рдЖрд░рдХреНрд╖рдг рдХрд░реЗрдВ, рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдЦреНрддреА рд╕реЗ рдиреНрдпрд╛рдп рди рдХрд░реЗрдВ:

Source: https://habr.com/ru/post/In151783/


All Articles