Zendframework + ffmpeg + gearman + amazon = рд╡реАрдбрд┐рдпреЛ рдПрдирдХреЛрдбрд░ рд╕реЗрд╡рд╛

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


рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреА рд╕рдмрд╕реЗ рд╕рд░рд▓ рдпреЛрдЬрдирд╛ред


рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдпреЛрдЬрдирд╛ POST рд╡реАрдбрд┐рдпреЛ рдЕрдкрд▓реЛрдб рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдЯ рдкрд░, рдПрдХ рдирдпрд╛ рд╡реАрдбрд┐рдпреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреНрд▓реИрд╢ рд▓реЛрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╣реИ, рдЬреЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рдХреЛ рд╡реАрдбрд┐рдпреЛ рд╕реЗрд╡рд╛ рдореЗрдВ рддреБрд░рдВрдд рднреЗрдЬрддрд╛ рд╣реИред рд╕рднреА рдЪрд░рдгреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



рд╕реЗрд╡рд╛ рдкрдХреНрд╖ рдкрд░ рдбреЗрдЯрд╛ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ред



рдкреНрд░рдорд╛рдгреАрдХрд░рдг
рдХреНрдпреЛрдВрдХрд┐ рдСрдерд░рд╛рдЗрдЬреЗрд╢рди рдХреЗ рд▓рд┐рдП рд▓реЙрдЧрд┐рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб HTML рдХреЛрдб рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рдХреБрдЫ рдХреЗ рд╕рд╛рде рдЖрдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╕реАрдорд┐рдд рдЬреАрд╡рдирдХрд╛рд▓ рдФрд░ рджреЛ-рдЪрд░рдгреАрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рд╡рди-рдЯрд╛рдЗрдо рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ред рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗрд╡рд╛ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдЬреЗрдирд░реЗрдЯ рдХрд░рддреА рд╣реИ рдФрд░ рдЙрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ (рд╕рд╛рде рд╣реА рдЬреЗрдирд░реЗрд╢рди рдЯрд╛рдЗрдо рдФрд░ рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ / рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рд╕реНрд╡рдпрдВ рд╕реЗрд╡ рдХрд░рддреА рд╣реИред рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╡реАрдбрд┐рдпреЛ рд╕реЗрд╡рд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд░реНрд╡рд░ рдкрд░ рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд URL рдкрд░ рджрд╕реНрддрдХ рджреЗрддреА рд╣реИ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИред

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

Gearman


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрд╛рд░реНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж рд╡реАрдбрд┐рдпреЛ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдерд╛ред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЕрдЪреНрдЫрд╛ рдкреБрд░рд╛рдирд╛ рдХреНрд░реЛрди рдпрд╣рд╛рдВ рдЦрд░рд╛рдм рд╣реЛрддрд╛ рд╣реИ, рдПрдХ рдорд┐рдирдЯ рдореЗрдВ рдПрдХ рдмрд╛рд░ рд▓реЙрдиреНрдЪ рд╣реЛрддрд╛ рд╣реИ, рдХреНрд░рдорд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЧрд┐рдпрд░рдореИрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдореЗрд░реА рдкрд╕рдВрдж рдЗрд╕ рдЙрдкрдХрд░рдг рдкрд░ рдЧрд┐рд░ рдЧрдИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореБрдЭреЗ рдЙрд╕рдХреЗ рд╕рд╛рде рдЯрд┐рдВрдХрд░ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдХрд┐рд╕реА рдХрд╛рд░рдгрд╡рд╢ рдкрд╣рд▓реА рдмрд╛рд░ рдмрд┐рдВрджреБ рд░рд┐рдХреНрдд рд╕реАрдорд╛ рдкрд░ рдореИрдВ рд╡рд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЬреИрд╕рд╛ рдореБрдЭреЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
function converter() { //   } $worker = new GearmanWorker(); $worker->addFunction("convert", "converter"); // .. 


рд╢реНрд░рдорд┐рдХ рд▓рдЧрд╛рддрд╛рд░ -1 рд▓реМрдЯ рдЖрдП рдФрд░ рдЙрдирдХреА рдореМрдд рд╣реЛ рдЧрдИред рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рдкрд┐рдЫрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдореИрдВрдиреЗ рдХреБрдЫ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ред рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЧрд┐рдпрд░рдореИрдирд╡рд░реНрдХрд░ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛, рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдкрд░рдд рдмрдирд╛рдпрд╛:

  class App_Model_Worker_Abstract extends GearmanWorker { public function __construct($gearman) { parent::__construct(); if (!$this->addServer($gearman['host'], $gearman['port'])) { throw new Exception("Can't connect to Gearman"); } } public function work() { while (parent::work()); return true; } } 


рдФрд░ рдлрд┐рд░ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рд╢реНрдпрдХ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд┐рдпрд╛:

  //  class App_Model_Worker_Converter extends App_Model_Worker_Abstract { public function __construct($gearman) { parent::__construct($gearman); //    } public function action($job) { $fileId = $job->workload(); $file = $this->_modelFileResponse->getPrepareToConvertFile($fileId); //  . } } //,       class App_Model_Worker_SendResponse extends App_Model_Worker_Abstract { public function __construct($gearman) { parent::__construct($gearman); } public function action($job) { $responseId = $job->workload(); //   . } } 


рдЗрд╕рдХреЗ рдмрд╛рдж, рдПрдХ рдФрд░ рдЕрдкреНрд░рд┐рдп рдмрд╛рдд рд╕рд╛рдордиреЗ рдЖрдИ, рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдХреЗ рдмрд╛рдж DB рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рд╣реЛ рдЧрдпрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдореИрдВ рд░реВрдкрд╛рдВрддрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛:

  $model->getAdapter()->closeConnection(); 


рдЖрдВрдХрдбрд╝реЗ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐ рдШрдВрдЯреЗ 10 рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 3-4 рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рдбреНрд░рд╛рдЗрд╡ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЧрд┐рдпрд░рдореИрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝реЗрдВ рдпрд╣рд╛рдВ Gearman.org

FFmpeg


рдЗрд╕ "рдлрд▓" рдХреЗ рд╕рд╛рде рдореЗрд░реА рдХрдИ рд░рд╛рддреЛрдВ рдХреА рдиреАрдВрдж рд╣рд░рд╛рдо рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рдм рдХреБрдЫ рддреБрдЪреНрдЫ рдерд╛, рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╛рдирдХ рдЕрдиреБрд░реЛрдз рдбрд┐рдмрдЧ рдХрд┐рдП рдЧрдП рдереЗ, рдЬреИрд╕реЗ рдХрд┐ рдЖрдХрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди, рдмрд┐рдЯ рджрд░ рдФрд░ рд╡рд╣ рд╕рдм - рдЬреЛ рд╕рдм рдХреБрдЫ рддреБрдЪреНрдЫ рд╣реИред рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рддрдм рд╢реБрд░реВ рд╣реБрдИ рдЬрдм рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдФрд░ рдШреБрдорд╛рдирд╛ рдФрд░ рдПрдХ рдкрд╛рд╕ рдореЗрдВ рдореБрдЦреМрдЯрд╛ рдФрд░ рдЧрджреНрджреА рдЬреЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╕рдм рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреЛрдИ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред Vfilters рдмрдЪрд╛рд╡ рдореЗрдВ рдЖрдП, рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рд╕рднреА рдЖрдХрд░реНрд╖рдг рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рд▓рдЧрд╛рддрд╛рд░ рдлрд╝рд┐рд▓реНрдЯрд░ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдШреБрдорд╛рдПрдБ, рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ, рдЧрджреНрджреА рдЬреЛрдбрд╝реЗрдВ, рд╡реЙрдЯрд░рдорд╛рд░реНрдХ рд▓рдЯрдХрд╛рдПрдБред рдпрд╣рд╛рдБ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп ffmpeg рдХрдорд╛рдВрдб рд╣реИ рдЬреЛ рдореЗрд░реА рд╕реЗрд╡рд╛ рдореЗрдВ рджрд┐рдЦрддрд╛ рд╣реИ:

/usr/local/bin/ffmpeg -i "/home/encoderws/public_html/data/files/requests/example-test-5c2a1c8a2e9e540690ba05670a526872_d917a8705cade8efdd87008df20ef19c" -acodec libfaac -vcodec mpeg4 -b 400k -ar 44100 -f mp4 -ab 96k -ac 2 -vf "[in] rotate=90 [rt0], [rt0] scale=203:360 [sc0], [sc0] pad=640:360:219 [pd0], [pd0] scale=640:360 [sc1], movie=0:png:/home/encoderws/public_html/data/files/watermarks/watermark.png [wm], [sc1] [wm] overlay=0:0:1 [out]" -y '/home/encoderws/public_html/data/files/responses/example-test-5c2a1c8a2e9e540690ba05670a526872_d917a8705cade8efdd87008df20ef19c.mp4


рдХреНрдпреЛрдВрдХрд┐ рдЪреВрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдореЗрдВ рджреЛ flv + mp4 рд╡реАрдбрд┐рдпреЛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдХрд╛рд░реНрдп рдХреЗ рдЕрдВрдд рдореЗрдВ, рдбреЗрдЯрд╛ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛, рдЬрд┐рд╕рдХрд╛ рдХрд╛рдо рдмрд╛рдж рдореЗрдВ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛, рддреИрдпрд╛рд░ рдбреЗрдЯрд╛ рдХреЛ рдЕрдореЗрдЬрд╝реЕрди рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдбрд╛рд▓рддрд╛ рд╣реИред рдпрджрд┐ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рджреМрд░рд╛рди рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ, рддреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВред

рд╡реАрд░рд╛рдВрдЧрдирд╛


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

рдЖрдк рдЕрдореЗрдЬрд╝реЕрди рдПрд╕ 3 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдпрд╣рд╛рдБ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЕрдореЗрдЬрд╝реЕрди рд╕рд┐рдВрдкрд▓ рд╕реНрдЯреЛрд░реЗрдЬ ред

рдЕрдиреНрдп рдЕрдЪреНрдЫрд╛рдИрдпрд╛рдВ


рдорд╛рдВрдЧ рдкрд░ рд╕реЗрд╡рд╛ рд╡реАрдбрд┐рдпреЛ рдкрд░ рд╡реЙрдЯрд░рдорд╛рд░реНрдХ рд▓рдЯрдХрд╛ рд╕рдХрддреА рд╣реИ, рд╡реАрдбрд┐рдпреЛ рдХреЛ рдШреБрдорд╛ рд╕рдХрддреА рд╣реИ, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЖрдХрд╛рд░ рдмрджрд▓ рд╕рдХрддреА рд╣реИ, рдЦрд╛рд▓реА рд╕реНрдерд╛рди рдХреЛ рдХрд╛рд▓реЗ рд░рдВрдЧ рдХреЗ рд╕рд╛рде рднрд░ рд╕рдХрддреА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рд╛рд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ ffmpeg рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ vfilters рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдпрд╣ ftp, imap, amazon s3 рд╕реНрдЯреЛрд░реЗрдЬ рд╕реЗ рд╡реАрдбрд┐рдпреЛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ рдФрд░ рдЗрд╕реЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рднреА рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рд╕рд░реНрд╡рд░ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╣реБрдд рдХрдо рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

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

рдФрд░ рдЕрдм рдХрдВрдкрдиреА рдПрдХ рдФрд░ рдЕрдЪреНрдЫрд╛рдЗрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣реА рд╣реИред Asteriks рдХреЛ рдлрд╛рд╕реНрдЯ рдХрд░реЗрдВ , рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдЕрдкрдиреЗ рдлреЛрди рд╕реЗ рдПрдХ рд╡реАрдбрд┐рдпреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ 3G рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд╡реАрдбрд┐рдпреЛ рд╕рдВрджреЗрд╢ рдЫреЛрдбрд╝рддрд╛ рд╣реИ, Asteriks рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╣ рдмрд╛рдд рдПрдХ рд╡рд┐рд╢реЗрд╖ рдбреИрдбреА рдореЗрдВ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ 5 рдорд┐рдирдЯ рдореЗрдВ, ftp рдореЗрдВ рдПрдХ рд╡реАрдбрд┐рдпреЛ рд╕реЗрд╡рд╛ рдЗрд╕реЗ рджреЗрдЦрддреА рд╣реИ рдпрджрд┐ рдпрд╣ рдХреБрдЫ рдирдпрд╛ рдкрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╡реАрдбрд┐рдпреЛ рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрддрд╛ рд╣реИред

рдкрд┐рдЫрд▓реЗ 3 рдорд╣реАрдиреЛрдВ рд╕реЗ, рд╕рд░реНрд╡рд░ рдХрд╛рдлреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдХрднреА рдХреНрд░реИрд╢ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдЖрдзреЗ рд╕рд╛рд▓ рдХреЗ рд▓рд┐рдП, 4000 рд╕реЗ рдЕрдзрд┐рдХ рдЕрдиреБрд░реЛрдз рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЧрдП рдереЗред

рд░рд╛рдп, рдЯрд┐рдкреНрдкрдгреА, рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рд╕реБрдирдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред

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


All Articles