{"id":234139,"date":"2014-08-21T16:12:03","date_gmt":"2014-08-21T12:12:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=234139"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=234139","title":{"rendered":"<span class=\"post_title\">\u0412\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u043e\u0442 \u0438\u0434\u0435\u0438 \u0434\u043e\u2026 \u0438\u0434\u0435\u0438<\/span>"},"content":{"rendered":"<div class=\"content html_format\">     \t\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430, \u0435\u0441\u0442\u044c \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0445\u043e\u0442\u044f\u0442 \u00ab\u043d\u0430\u0447\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0431\u0438\u0437\u043d\u0435\u0441\u00bb. \u041e\u043d\u0438 \u0441\u0432\u043e\u0439 \u0438\u043c\u0435\u044e\u0442, \u043d\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0445\u043e\u0442\u044f\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c\u0441\u044f. \u0418 \u0432\u043e\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u044d\u0442\u043e\u0433\u043e \u0445\u043e\u0442\u044f\u0442, \u043e\u043d\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u043a\u043e \u043c\u043d\u0435 \u0437\u0430 \u0441\u043e\u0432\u0435\u0442\u0430\u043c\u0438. \u0418\u0434\u0435\u044f \u043b\u0435\u0436\u0438\u0442 \u043d\u0430 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438. \u00ab\u041c\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043e\u043c, \u0430 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0435\u0449\u0435 \u0447\u0435\u043c \u043d\u0438\u0431\u0443\u0434\u044c \u043d\u0430 \u043d\u0430\u0448\u0435\u0439 \u0442\u0435\u043c\u0435\u00bb. \u0422\u0430\u043a \u043c\u044b \u043d\u0430\u0447\u0430\u043b\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438\u0435\u0439, \u043f\u0440\u043e\u0434\u0430\u0436\u0435\u0439 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u043e\u043c, \u043a\u043e\u043b\u043e\u043a\u0435\u0439\u0448\u0438\u043d\u043e\u043c. \u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u0435\u043d\u044f \u0440\u0430\u0434\u043e\u0432\u0430\u043b\u0430. \u00ab\u0414\u0430\u0432\u0430\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438\u0435\u0439\u00bb, \u00ab\u0414\u0430\u0432\u0430\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u043e\u043c\u00bb. \u041d\u0443 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u00ab\u0414\u0430\u0432\u0430\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435\u043c\u00bb.<br \/>  \u0412\u043e\u0442 \u00ab\u0414\u0430\u0432\u0430\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435\u043c\u00bb \u044d\u0442\u043e \u0438 \u0431\u044b\u043b\u043e \u0437\u0430\u0432\u0435\u0442\u043d\u043e \u0422\u0417.<br \/>  \u0427\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0438 \u043e\u043f\u044b\u0442 \u043e\u043f\u0438\u0448\u0443 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u0422\u0430\u043a \u0443\u0436 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043b\u043e\u0436\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f\u0445 \u0433\u0434\u0435 \u043c\u0435\u043d\u044f \u043e\u043a\u0440\u0443\u0436\u0430\u044e\u0442 <s>\u043f\u0438<\/s>\u043f\u0440\u043e\u0434\u0430\u0436\u043d\u0438\u043a\u0438, \u0430 \u044f <s>\u0414\u0430\u0440\u0442\u0430\u043d\u044c\u044f\u043d<\/s>\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442, \u043a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c (\u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c) \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f.<br \/>  \u0417\u0430 \u0441\u0432\u043e\u0439 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b \u043d\u0435 \u043e\u0434\u0438\u043d \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0439-\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u0442\u0434\u0435\u043b, \u043d\u043e \u0434\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0445(\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432) \u043b\u044e\u0434\u0435\u0439 \u043d\u0435 \u0434\u043e\u0445\u043e\u0434\u0438\u043b\u043e. \u041f\u043e \u044d\u0442\u043e\u043c\u0443 \u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u043d\u0430 \u0432\u0438\u0434\u0443, \u0432\u0441\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043f\u043e IT \u043a\u043e \u043c\u043d\u0435. \u0418\u0445 (\u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0445) \u0443\u0436\u0435 \u043c\u043d\u043e\u0433\u043e \u043b\u0435\u0442 \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 IT, \u044f\u0432\u043b\u044f\u044f\u0441\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0438 \u0431\u0438\u0437\u043d\u0435\u0441 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u043c, \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u043c :). \u0422\u0435\u043f\u0435\u0440\u044c \u043a \u0442\u0435\u043c\u0435.<\/p>\n<p>  \u041e\u0434\u043d\u0430\u0436\u0434\u044b \u043b\u044e\u0434\u0438 \u043f\u0440\u0438\u0448\u043b\u0438 \u043a\u043e \u043c\u043d\u0435 \u0438 \u0441\u043a\u0430\u0437\u0430\u043b\u0438 \u00ab\u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435\u00bb. \u042f \u0431\u044b\u043b \u0437\u0430\u043d\u044f\u0442 \u0438 \u043d\u0435 \u0431\u044b\u043b\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u0443 \u0441\u0442\u043e\u0440\u043e\u043d\u0443, \u0442\u043e\u0433\u0434\u0430 \u0438 \u0431\u0435\u0437 \u044d\u0442\u043e\u0433\u043e \u0445\u0432\u0430\u0442\u0430\u043b\u043e \u0437\u0430\u0431\u043e\u0442. \u041e\u043d\u0438 \u043d\u0430\u0448\u043b\u0438 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u00ab\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430\u00bb, \u043f\u0440\u043e\u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u044c 6 \u043c\u0435\u0441\u044f\u0446\u0435\u0432, \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u043e\u0441\u044c \u044d\u0442\u043e \u043d\u0438 \u0447\u0435\u043c. \u0427\u0435\u043b\u043e\u0432\u0435\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u00ab\u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u043c\u00bb, \u043d\u0430\u043f\u0435\u043b \u043f\u0440\u043e \u041c\u041e\u0429\u042c zoneminder \u0438 motion, \u0442\u043e \u0447\u0442\u043e \u043e\u0431\u043b\u0430\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u0417\u0430 6 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430.<br \/>  \u041e\u043d\u0438 \u0443\u0441\u0442\u0430\u043b\u0438, \u043f\u0440\u0438\u0448\u043b\u0438 \u043a\u043e \u043c\u043d\u0435. \u0422\u0430\u043a \u043a\u0430\u043a \u044f \u0441 \u043d\u0438\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0443\u0436\u0435 \u043b\u0435\u0442 \u0442\u0430\u043a 10, \u0442\u043e \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u0435\u0449\u0435 \u0440\u0430\u0437 \u043d\u0435 \u043f\u043e\u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0430\u0432\u0430\u043d\u0442\u044e\u0440\u0435. \u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u0434\u043a\u0443\u043f\u0430\u043b\u043e \u0441\u0432\u043e\u0435\u0439 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u043d\u043e\u0432\u0438\u0437\u043d\u043e\u0439:<br \/>   \u2014 \u0425\u043e\u0442\u0438\u043c \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u043c \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435\u043c. \u0412\u043b\u043e\u0436\u0435\u043d\u0438\u0439 0, \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0443\u043f\u0438\u043c, \u0437\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 0, \u0434\u0435\u043d\u044c\u0433\u0438 \u0434\u0435\u043b\u0438\u043c 50\/50.<br \/>  \u041a \u0441\u043b\u043e\u0432\u0443 \u0442\u0430\u043a \u0431\u044b\u043b\u043e \u0432\u0441\u0435\u0433\u0434\u0430, \u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u0435\u043d\u044c\u0433\u0438 \u0431\u044b\u043b\u0438 50\/50, \u0438\u043b\u0438 30\/30\/30 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043b\u0438\u0446.<br \/>  \u00ab\u041f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u0438 \u043d\u0435\u0442\u00bb, \u043f\u043e\u0434\u0443\u043c\u0430\u043b \u044f. \u041e\u043f\u044b\u0442 \u043b\u0438\u0448\u043d\u0438\u043c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. (\u0445\u043e\u0442\u044f \u0442\u043e\u043b\u043a\u0443 \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430, \u0435\u0441\u043b\u0438 \u0442\u044b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442 \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u0438 \u0440\u0430\u0437 \u0432 \u0433\u043e\u0434 \u043c\u0435\u043d\u044f\u0435\u0448\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \ud83d\ude42<\/p>\n<h2>\u0418\u0434\u0435\u044f \u043e\u0437\u0432\u0443\u0447\u0435\u043d\u0430: \u00ab\u0425\u043e\u0447\u0443 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0435 \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435\u00bb.<\/h2>\n<p>  \u041b\u044e\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0442\u044f\u0442 \u0447\u0442\u043e \u0442\u043e \u043f\u0440\u043e\u0434\u0430\u0442\u044c, \u043e\u043d\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u00ab\u0447\u0442\u043e \u0442\u043e\u00bb \u043f\u0440\u043e\u0434\u0430\u0432\u0430\u0442\u044c.<br \/>  \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u044d\u0442\u043e \u00ab\u0427\u0442\u043e \u0442\u043e\u00bb \u0438 \u043e\u0444\u043e\u0440\u043c\u0438\u0442\u044c.<\/p>\n<p>  \u041e\u0431\u043b\u0430\u043a\u043e. \u0414\u0435\u043d\u0435\u0433 0, \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0431\u043e\u043b\u044c\u0448\u0430\u044f. \u0417\u043d\u0430\u0447\u0438\u0442 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0448\u0430\u0442\u044c \u044d\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0438.<br \/>  \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0437\u0433\u043b\u044f\u0434 \u0443\u043f\u0430\u043b \u043d\u0430 Openstack. \u041c\u043e\u0436\u043d\u043e \u043d\u0430 \u043b\u0435\u0442\u0443 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u043e\u0449\u0438, \u043d\u043e \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0430\u0448\u0438\u043d. \u041f\u043e\u0438\u0433\u0440\u0430\u0432\u0448\u0438\u0441\u044c \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 Openstack \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0438\u0441\u043a\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435. \u0412\u0437\u0433\u043b\u044f\u0434 \u0443\u043f\u0430\u043b \u043d\u0430 Proxmox.<br \/>  \u0417\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u043b\u043e \u043f\u043e\u0434 \u043d\u0430\u0448\u0438 \u043d\u0443\u0436\u0434\u044b \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435. \u0418 \u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u0435 VM \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0436\u0435\u043b\u0435\u0437\u043e \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u043e\u0435 \u043e\u0431\u043b\u0430\u043a\u043e.<br \/>  \u0412 \u043f\u043e\u043a\u0443\u043f\u043a\u0435 \u0436\u0435\u043b\u0435\u0437\u0430 \u044f \u043d\u0435 \u0443\u0441\u043f\u0435\u043b \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0443\u0447\u0430\u0441\u0442\u0438\u0435, \u0434\u043e \u043c\u043e\u0435\u0433\u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u044b\u043b\u0430 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0430\u044f \u043b\u043e\u0448\u0430\u0434\u043a\u0430: Intel Core i5-3570K @ 3.40GHz<br \/>  \u0418 \u0432\u043e\u0442 \u043d\u0430 \u044d\u0442\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u043c \u0432\u0438\u0434\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435\u043c. \u0410\u0431\u0441\u0443\u0440\u0434\u043d\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \ud83d\ude42 \u041d\u043e \u043c\u044b \u043d\u0435 \u0441\u0434\u0430\u0435\u043c\u0441\u044f.<br \/>  \u041f\u0440\u0438\u0434\u0443\u043c\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043a\u0430\u043a\u0430\u044f-\u043d\u0438\u043a\u0430\u043a\u0430\u044f, \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0440\u043e\u0434\u0430\u0436\u0438. \u0412\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0432 \u043a\u0443\u043f\u0435 \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438 \u0432\u0441\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c\u0438 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u0441 \u0437\u0430\u0432\u044f\u0437\u043a\u043e\u0439 \u043d\u0430 \u0427\u041e\u041f\u044b(\u0432\u044b\u0445\u043e\u0434 \u0435\u0441\u0442\u044c \u043d\u0430 \u0433\u043e\u0441 \u0443\u0440\u043e\u0432\u043d\u0435).<br \/>  \u041a \u044d\u0442\u043e\u043c\u0443 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043f\u0440\u0438\u043a\u043b\u0435\u0438\u043b\u043e\u0441\u044c<br \/>  1) \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430\u044f \u0432\u0438\u0434\u0435\u043e\u0437\u0430\u043f\u0438\u0441\u044c<br \/>  2) \u0437\u0430\u043f\u0438\u0441\u044c \u043f\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044e<br \/>  3) timelapse \u0437\u0430\u043f\u0438\u0441\u044c<br \/>  4) \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e SMS<br \/>  5) \u0437\u0432\u043e\u043d\u043e\u043a \u0438\u0437 \u0446\u0435\u043d\u0442\u0440\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f. \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044c, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0427\u041e\u041f, \u043e\u043f\u043e\u0432\u0435\u0449\u0430\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430.<br \/>  \u0427\u041e\u041f \u0440\u044b\u043d\u043e\u043a \u0432 \u041c\u043e\u0441\u043a\u0432\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c\u0441\u044f \u0438\u0437 \u0433\u043e\u0434\u0430 \u0432 \u0433\u043e\u0434. <s>\u041c\u0438<\/s>\u041f\u043e\u043b\u0438\u0446\u0438\u044f \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0433\u043e\u0434\u043e\u043c \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043c \u043e\u0445\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u0438\u0437\u043d\u0435\u0441\u0430. \u0422\u0430\u043a \u0447\u0442\u043e \u0432\u0441\u0451 \u044d\u0442\u043e \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u0437\u0430\u0435\u0442 \u043d\u0430 \u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432.<\/p>\n<p>  \u041e\u0431\u0449\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0430 \u0442\u0430\u043a:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/0dd\/a6e\/47d\/0dda6e47d35042ccb8c7d5873b55d59f.png\" alt=\"image\"\/><\/p>\n<p>  \u041a\u0430\u043c\u0435\u0440\u044b \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u043a\u0430\u043a\u0443\u044e \u043b\u0438\u0431\u043e \u0436\u0435\u043b\u0435\u0437\u043a\u0443, \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e. \u042d\u0442\u0430 \u0436\u0435\u043b\u0435\u0437\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0430\u043a \u0441\u043e\u0444\u0442\u0432\u0430\u0440\u043d\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442, \u0442\u0430\u043a \u0438 \u0445\u0430\u0440\u0434\u0432\u0430\u0440\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 OpenWrt. RPC \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a. \u0418\u0434\u0435\u044f \u0431\u044b\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0442\u044c 2 \u043c\u043e\u0434\u0443\u043b\u044f. \u041f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u0439. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0431\u044b \u0435\u0433\u043e \u0432\u0436\u0438\u0432\u043b\u044f\u0442\u044c \u0432 \u0436\u0435\u043b\u0435\u0437\u043e, \u0432\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u043c. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0431\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0436\u0435\u043b\u0435\u0437\u043a\u043e\u0439 \u0441 \u043b\u044e\u0431\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430. \u0421 \u043a\u043e\u043c\u043f\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0441 \u043a\u043e\u043c\u043f\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0438 \u0442.\u0434. \u0422\u0430\u043a\u0436\u0435 \u043f\u0435\u0440\u0432\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0434\u043b\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0438 \u0441\u0442\u043e\u043f\u043a\u0430\u0434\u0440\u043e\u0432 \u0441 \u043a\u0430\u043c\u0435\u0440. \u0422\u0430\u043a\u0438\u0435 \u0436\u0435\u043b\u0435\u0437\u043a\u0438 \u043d\u0430\u043c\u0438 \u0443\u0436\u0435 \u043e\u0431\u043a\u0430\u0442\u044b\u0432\u0430\u043b\u0438\u0441\u044c. \u0414\u043b\u044f \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u043b\u0438, \u043e\u043f\u044b\u0442 \u0431\u044b\u043b. \u041d\u0438 \u043a\u0442\u043e \u043d\u0435 \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u043b \u043b\u043e\u0433\u0438\u043a\u0443 \u044d\u0442\u043e\u0439 \u0436\u0435\u043b\u0435\u0437\u043a\u0438 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u043a \u043d\u0430\u043c \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0442\u0430\u043d\u0446\u044b \u0441 \u0431\u0443\u0431\u043d\u043e\u043c \u043e \u0442\u043e\u043c \u043a\u0430\u043a \u0437\u043e\u043e\u043f\u0430\u0440\u043a h264 \u0437\u0430\u0433\u043d\u0430\u0442\u044c \u043d\u0430 \u0434\u0438\u0441\u043a, \u0438 \u0432 web + \u043f\u0440\u0438\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440\u044b \u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u0443\u044e \u043b\u0430\u0431\u0443\u0434\u0443, \u0438 \u0432\u0441\u0451 \u044d\u0442\u043e \u0443\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u043e\u0434\u043d\u043e i5.<br \/>  ZoneMinder \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438 \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f 4\u0445 \u043a\u0430\u043c\u0435\u0440 \u043e\u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0430 \u0432\u0441\u0435 4 \u044f\u0434\u0440\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043d\u0430 70%. \u041e\u0442 \u043d\u0435\u0433\u043e \u0441\u0440\u0430\u0437\u0443 \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c.<\/p>\n<p>  \u0414\u043b\u044f \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 \u0432\u0437\u044f\u043b\u0438 VLC. \u0420\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u0430\u0432\u043d\u043e, \u043e\u0431\u043a\u0430\u0442\u0430\u043d \u043c\u043d\u043e\u0433\u0438\u043c\u0438, \u043c\u044b \u0435\u0433\u043e \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0434\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.<br \/>  \u0415\u0441\u0442\u044c \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c 2 \u0437\u0430\u0434\u0430\u0447\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c<br \/>  1) \u0432\u044b\u0434\u0430\u0442\u044c \u0432 \u0441\u0435\u0442\u044c<br \/>  2) \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043e\u0442\u043e\u043a<\/p>\n<p>  \u0417\u043e\u043e\u043f\u0430\u0440\u043a \u043a\u0430\u043c\u0435\u0440 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 rtsp \u0438 http \u043f\u043e\u0442\u043e\u043a\u043e\u0432. VLC \u0432\u0441\u0451 \u0443\u043c\u0435\u0435\u0442. \u0420\u0435\u0448\u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c VLM. \u0418\u043c\u0435\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e tlenet \u0438 http.<br \/>  \u0412 input \u043a\u043e\u0440\u043c\u0438\u0442\u0441\u044f \u0441\u0441\u044b\u043b\u043a\u0430, \u0432 output<br \/>  <code>&quot;#{$transcode}std{access=http{mime={$this-&gt;mime}},mux=ts{use-key-frames},dst=*:{$this-&gt;getPort()}\/{$this-&gt;path}}&quot;;<\/code><br \/>  \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c HTTP \u043f\u043e\u0442\u043e\u043a \u0441 \u043b\u044e\u0431\u043e\u0439 \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0439 url.<br \/>  HTTP \u043d\u0430\u043c \u0443\u0434\u043e\u0431\u0435\u043d \u0447\u0435\u043c? \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u043d\u0430\u0442\u044c \u0432 hginx, \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443, \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c. \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 https.<br \/>  1 \u043a\u043b\u0438\u0435\u043d\u0442 \u2014 1 vlc \u043f\u0440\u043e\u0446\u0435\u0441\u0441.<br \/>  \u0421\u043a\u0440\u0438\u043f\u0442\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u0440\u0435\u0448\u0438\u043b\u0438 \u043d\u0430 PHP, \u0442\u0430\u043a \u043a\u0430\u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043e\u0434\u0438\u043d, \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043c\u0430\u043b\u043e, \u0444\u0438\u043d\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f 0.<br \/>  \u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430. (\u0431\u0443\u0434\u0443 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043a\u043e\u0434, \u0438\u0437 \u043d\u0435\u0433\u043e \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u043e \u0432\u044b\u0442\u0430\u0449\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u0435\u0441\u043b\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f)  <\/p>\n<pre><code class=\"php\">$vlc_ifs = &quot;-I http --http-host=0.0.0.0 --http-port {$this-&gt;getHttpPort()} -I telnet --telnet-port {$this-&gt;getTelnetPort()}  --telnet-password &quot;.TLPWD;         if(VLC_USE_LOG)             $vlc_logs = &quot;--extraintf=http:logger --file-logging --log-verbose 0 --logfile {$this-&gt;getLogFile()}&quot;;         else             $vlc_logs = '--extraintf=http';         \/\/$vlc_shell = VLCBIN.&quot; --rtsp-tcp --ffmpeg-hw --http-reconnect --http-continuous --sout-keep &quot;.VLCD.&quot; $vlc_ifs  --repeat --loop --network-caching &quot;.VLCNETCACHE.&quot; --sout-mux-caching &quot;.VLCSOUTCACHE.&quot; $vlc_vlm --pidfile {$this-&gt;getPidFile()} $vlc_logs \\n&quot;;         $vlc_shell = VLCBIN.&quot; --rtsp-tcp &quot;.VLCD.&quot; $vlc_ifs --repeat --loop --live-caching &quot;.VLC_LIVE_CACHE.&quot; --network-caching &quot;.VLCNETCACHE.&quot; --sout-mux-caching &quot;.VLCSOUTCACHE.&quot;  --sout-ts-dts-delay 400 $vlc_vlm --pidfile {$this-&gt;getPidFile()} $vlc_logs &quot;;          if($this-&gt;isValgrind()){             $vlc_shell = &quot;valgrind -v --trace-children=yes --log-file={$this-&gt;getValgrindFile()} --error-limit=no --leak-check=full $vlc_shell&quot;;         } <\/code><\/pre>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c live stream \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441 \u043d\u0435\u0433\u043e \u0438 \u043f\u0438\u0441\u0430\u0442\u044c.<br \/>  <code>return &quot;#std{access=file{append},mux=ts{use-key-frames},dst=$filePath.avi}&quot;;<\/code><\/p>\n<p>  VLM \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e<br \/>  \u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u0443 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c 3 \u043f\u043e\u0442\u043e\u043a\u0430<br \/>  1) live stream<br \/>  2) rec stream<br \/>  3) motion stream<br \/>  <code>$this-&gt;execute(&quot;new {$this-&gt;cam} broadcast enabled loop&quot;);<\/code><br \/>  \u043f\u043e\u0441\u043b\u0435 \u043c\u043e\u0436\u043d\u043e play, stop \u0434\u0435\u043b\u0430\u0442\u044c<br \/>  <code>$command = &quot;control {$this-&gt;cam} $command&quot;;<\/code><br \/>  \u0434\u043b\u044f rec \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0437 \u0432 10 \u0441\u0435\u043a\u0443\u043d\u0434 \u0434\u0435\u043b\u0430\u0442\u044c stop, \u043c\u0435\u043d\u044f\u0442\u044c $filePath, \u0434\u0435\u043b\u0430\u0442\u044c play<br \/>  \u041c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043d\u0430\u0431\u043e\u0440 \u0444\u0430\u0439\u043b\u0438\u043a\u043e\u0432 \u0441 \u0437\u0430\u043f\u0438\u0441\u044f\u043c\u0438. \u0414\u043b\u044f motion play \u0438 stop.<br \/>  VLC \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0438 \u00ab\u0443 \u043d\u0430\u0441\u00bb \u0438 \u00ab\u0443 \u043d\u0438\u0445\u00bb.<br \/>  \u0412\u043e\u043f\u0440\u043e\u0441 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f.<br \/>  \u0415\u0441\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 motion. \u041e\u043d \u043f\u043e Jpeg \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435. \u041a\u0430\u043c\u0435\u0440\u044b \u043e\u0442\u0434\u0430\u044e\u0442 \u0441\u0442\u043e\u043f\u043a\u0430\u0434\u0440 \u0432 Jpeg. \u0411\u0435\u0440\u0435\u043c \u0441\u0442\u043e\u043f\u043a\u0430\u0434\u0440, \u043a\u043e\u0440\u043c\u0438\u043c \u0432 motion, \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u043e \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e.<\/p>\n<p>  \u0417\u043e\u043e\u043f\u0430\u0440\u043a \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c, \u043d\u0443\u0436\u043d\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443.<br \/>  \u0422\u0430\u043a \u0438 \u0434\u0435\u043b\u0430\u0435\u043c. \u041d\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0432\u0441\u0451 System \u0438 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043b\u0430\u0431\u043e\u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0447\u0442\u043e\u0431\u044b \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c \u0437\u0430\u043c\u0435\u043d\u044f\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<br \/>  \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043a\u0430\u043c\u0435\u0440\u044b, Vlc, Motion, \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u0430 \u0434\u0438\u0441\u043a, \u043e\u043d\u043b\u0430\u0439\u043d \u0432\u0435\u0449\u0430\u043d\u0438\u0435.<\/p>\n<p>  Vlc \u0438 motion \u044d\u0442\u043e unix \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b. \u041d\u0430\u0437\u043e\u0432\u0435\u043c \u0438\u0445 \u0434\u0435\u043c\u043e\u043d\u0430\u043c\u0438. (abstract class Daemon)<br \/>  \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0447\u0442\u043e \u0441 \u043a\u0430\u043c\u0435\u0440\u044b \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e 2 \u043f\u043e\u0442\u043e\u043a\u0430. jpeg \u0438 h264.<br \/>  \u0412 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438<br \/>  user-dvr-cam-stream<br \/>  user \u2014 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c<br \/>  dvr-\u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0434\u0435\u043c\u043e\u043d\u044b \u0438 \u043a\u0430\u043c\u0435\u0440\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0434\u0435\u043c\u043e\u043d\u0430\u043c\u0438<br \/>  cam \u2014 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043a\u0430\u043c\u0435\u0440\u044b, \u0445\u0440\u0430\u043d\u0438\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u0430\u043c\u0435\u0440\u044b \u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 streams<br \/>  stream \u2014 \u043f\u043e\u0442\u043e\u043a, \u043b\u044e\u0431\u043e\u0439 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a.<\/p>\n<p>  Straem \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c, \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c, \u0434\u0438\u0441\u0430\u0431\u043b\u0438\u0442\u044c, \u00ab\u0434\u0435\u0440\u0433\u0430\u0442\u044c\u00bb \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u00ab\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u00bb \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043f\u043e \u044d\u0442\u0438\u043c \u044d\u0432\u0435\u043d\u0442\u0430\u043c \u043e\u043d \u0441\u0430\u043c \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c.<\/p>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c System-common, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0445 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0431\u0449\u0443\u044e \u0444\u0430\u0431\u0440\u0438\u043a\u0443 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"php\">abstract class AbstractFactory {     private static $instance = null;      \/**      * @var array      *\/     private $commands;      \/**      * @return AbstractFactory      *\/     public static function getInstance(){         if(self::$instance == null) self::$instance = new static;         return self::$instance;     }      \/**      * permanentCommand      * @param ICommand $command      *\/     protected function addPermanentCommand(ICommand $command){         $this-&gt;commands[] = $command;     }      \/**      * @param ISystem $system      *\/     protected function addCommands(ISystem $system){         foreach($this-&gt;commands as $command)             $system-&gt;addPermanentCommand($command);     }      \/\/todo buildSystem method     \/**      * @return ISystem      *\/     public function createSystem(){         return System::getInstance();     }      \/**      * @return array of Users      *\/     public function createUsers(){         return array(AbstractFactory::getInstance()-&gt;createUser(1));     }      \/**      * @param int $id      * @return IUser      *\/     public function createUser($id)     {         return new User($id);     }      \/**      * @param IUser $user      * @return IDVR      *\/     public function createDvr(IUser $user)     {         $dvr = new Dvr($user);          $cams = $this-&gt;createCams($dvr);    \/\/new+add         foreach($cams as $cam){             \/** @var $cam Cam *\/             $dvr-&gt;addCam($cam);         }          $daemons = $this-&gt;createDaemons($dvr);          foreach($daemons as $daemon){             \/** @var $daemon Daemon *\/             $dvr-&gt;addDaemon($daemon);         }          return $dvr;     }      \/**      * @param DVR $dvr      * @return array of Cams      *\/     abstract protected function createCams(DVR $dvr);      \/**      * @param DVR $dvr      * @return array of Daemons      *\/     abstract protected function createDaemons(DVR $dvr);      \/**      * @param IDVR $dvr      * @param ICamSettings $cs      * @return ICam      *\/     public function createCam(IDVR $dvr, ICamSettings $cs)     {         return new Cam($dvr, $cs);     }      \/**      * @param $from      * @param $to      * @return MoveToNfsCommand      *\/     public function createMoveToNfsCommand($from, $to){         return new MoveToNfsCommand($from, $to);     }      \/**      * @param ICam $cam      * @return ICamStream      *\/     abstract public function createStream(ICam $cam); }  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u042d\u0442\u043e \u043d\u0430\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u0443 \u043d\u0430\u0432\u0435\u0448\u0438\u0432\u0430\u0442\u044c \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043b\u044e\u0431\u044b\u0435 \u043f\u043e\u0442\u043e\u043a\u0438 \u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043d\u0438\u043c\u0438 \u0447\u0442\u043e \u043d\u0430\u043c \u0432 \u0433\u043e\u043b\u043e\u0432\u0443 \u043f\u0440\u0438\u0434\u0435\u0442. \u0418 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0445\u043e\u0442\u044c \u043a\u0430\u043a \u0442\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448 \u0437\u043e\u043e\u043f\u0430\u0440\u043a. (\u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u043e\u043d \u0442\u0430\u043a\u043e\u0439)<\/p>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 \u0440\u0430\u0431\u043e\u0447\u0430\u044f \u043b\u043e\u0448\u0430\u0434\u043a\u0430 \u044d\u0442\u043e VLC, \u0442\u043e \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043f\u043e\u0434\u0433\u043e\u043d\u044f\u0442\u044c VLC \u043f\u043e\u0434 \u043d\u0430\u0448\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u0443.<br \/>  \u0421\u043e\u0437\u0434\u0430\u0435\u043c abstract class VlcStream extends Stream, class LiveVlcStream extends VlcStream.<br \/>  VlcStream \u00ab\u0434\u0440\u0443\u0436\u0438\u0442\u00bb \u0441 Vlm ($this-&gt;vlm = new HttpVlm($this-&gt;getVlcName(), &#8216;localhost&#8217;, HTSTART+$this-&gt;cam-&gt;getDVR()-&gt;getID());)<br \/>  \u0418 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c start, stop<br \/>  \u0414\u0430\u043b\u0435\u0435 <br \/>  abstract class VlcReStream extends VlcStream<br \/>  VlcReStream \u2014 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0431\u0435\u0440\u0435\u0442 LiveVlcStream<br \/>  class RecVlcStream extends VlcReStream \u2014 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0437\u0430\u043f\u0438\u0441\u044c, \u00ab\u0434\u0432\u0438\u0433\u0430\u0435\u0442\u00bb \u0432\u0438\u0434\u0435\u043e \u0438\u0437 Ram \u0432 Nfs<\/p>\n<p>  \u0418 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f class Vlc extends Daemon, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0432 DVR \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  DVR \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 start \u0438 stop  <\/p>\n<pre><code class=\"php\">public function start()     {         $this-&gt;log(__FUNCTION__);          $this-&gt;startDaemons();         $this-&gt;startCams();     } <\/code><\/pre>\n<p>  \u0441\u0442\u0430\u0440\u0442 \u043a\u0430\u043c\u0435\u0440\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0432\u0441\u0435 stream \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043a\u0430\u043c\u0435\u0440\u043e\u0439.<br \/>  \u0422.\u0435. \u041c\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c unix \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b Vlc, motion, \u0434\u0435\u043b\u0430\u0435\u043c VLM \u0447\u0435\u0440\u0435\u0437 HTTP.<br \/>  \u041e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435.<br \/>  \u0412\u043c\u0435\u0441\u0442\u043e VLC \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0432\u0435\u0449\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f.<\/p>\n<p>  \u041d\u043e \u0443 \u043d\u0430\u0441 \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u0431\u043b\u0430\u043a\u0435. \u0417\u043d\u0430\u0447\u0438\u0442 \u043d\u0443\u0436\u043d\u044b Sql \u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445.<br \/>  \u0420\u0430\u0431\u043e\u0447\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0442\u0430\u043a\u0430\u044f:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u0430\u0431\u0440\u0438\u043a\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"php\">&lt;?php \/**  * Created by PhpStorm.  * User: calc  * Date: 16.06.14  * Time: 10:56  *\/  namespace system2;  \/**  * Class BBFactory  * @package system2  *\/ class BBFactory extends AbstractFactory {     \/**      * @return ISystem      *\/     public function createSystem()     {         $system =  parent::createSystem();          $e = new BBLogMotionEvent(Motion::EVENT_MOTION_START);         $system-&gt;addEventHandler($e);          $e = new BBLogMotionEvent(Motion::EVENT_MOTION_STOP);         $system-&gt;addEventHandler($e);          $e = new BBLogMotionEvent(Motion::EVENT_MOTION_DETECTED);         $system-&gt;addEventHandler($e);          $e = new BBLogMotionEvent(Motion::EVENT_CAMERA_LOSS);         $system-&gt;addEventHandler($e);          $recMotionEvent = new BBRecMotionEvent(Motion::EVENT_MOTION_START);         $system-&gt;addEventHandler($recMotionEvent);         $recMotionEvent = new BBRecMotionEvent(Motion::EVENT_MOTION_STOP);         $system-&gt;addEventHandler($recMotionEvent);          \/\/\u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0442\u0430\u0440\u0448\u0435 30 \u0434\u043d\u0435\u0439 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c update         \/\/$system-&gt;addPermanentCommand(new RotateRecCommand());         $this-&gt;addPermanentCommand(new RotateRecCommand());          $this-&gt;addCommands($system);          return $system;     }      \/**      * @param DVR $dvr      * @return array of Daemons      *\/     protected function createDaemons(DVR $dvr)     {         $vlc = new Vlc($dvr);         $this-&gt;addPermanentCommand(new BBDaemonWatchdog($vlc));          \/\/ \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u043a\u0430\u043c\u0435\u0440\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u043a\u043b\u044e\u0447\u0435\u043d mtn         $cams = $dvr-&gt;getCamIDs();          $ids = array();         foreach($cams as $id){             $cam = $dvr-&gt;getCam($id);             $cs = $cam-&gt;getSettings();             \/** @var $cs BBCamSettings  *\/             if($cs-&gt;mtn) $ids[] = $id;         }          $motion = new Motion($dvr, $ids);         if(count($cams))             $this-&gt;addPermanentCommand(new BBDaemonWatchdog($motion));          return array($vlc, $motion);     }      \/**      * @return array      *\/     public function createUsers()     {         $users = array();         $db = \\Database::getInstance();         $q = &quot;select id from users where banned=0&quot;;         $r = $db-&gt;query($q);         while(($row = $r-&gt;fetch_row())){             try{                 $users[] = AbstractFactory::getInstance()-&gt;createUser($row[0]);             }             catch(\\Exception $e){                 Log::getInstance()-&gt;put($e-&gt;getCode().' '.$e-&gt;getMessage().&quot;\\n&quot;.$e-&gt;getTraceAsString().&quot;\\n&quot;, __CLASS__, Log::ERROR);             }         }          return $users;     }      \/**      * @param DVR $dvr      * @return array      *\/     protected function createCams(DVR $dvr){         $db = \\Database::getInstance();         $q = mysql::getQuery(mysql::CAM_SETTINGS, array('{dvr_id}' =&gt; $dvr-&gt;getID()));         $r = $db-&gt;query($q);          $cams = array();         while(($row = $r-&gt;fetch_object('system2\\BBCamSettings')) != null){             \/** @var BBCamSettings $row *\/              \/\/$dvr-&gt;addCam(new BBCam($this, $row));             $cam = $this-&gt;createCam($dvr, $row);             $cams[] = $cam;              \/\/\u0422\u0430\u043a \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 Motion \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0440\u0430\u0437 \u0432 \u043c\u0438\u043d\u0443\u0442\u0443 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443, \u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0442\u0430\u0439\u043c\u043b\u0430\u043f\u0441\u044b             $timelapse = new BBArchiveTimelapseCommand($cam);             $this-&gt;addPermanentCommand($timelapse);         }         return $cams;     }      \/**      * @param ICam $cam      * @return ICamStream      *\/     public function createStream(ICam $cam)     {         $stream = new Streams($cam);          $cs = $cam-&gt;getSettings();         \/** @var $cs BBCamSettings *\/         $motion = new MotionStream($cam, $cs);         $motion-&gt;setEnabled($cs-&gt;live && $cs-&gt;mtn);         $stream-&gt;addStream($motion);          $live = new BBLiveStream($cam);         $live-&gt;setTestInputCommand(new BBTestInputFailSaveCommand($cam, $live));         $live-&gt;setEnabled($cs-&gt;live);         $stream-&gt;addStream($live);          $hls = new HLSVlcStream($cam, $live);         $hls-&gt;setEnabled($cs-&gt;live);         $stream-&gt;addStream($hls);         \/\/$this-&gt;streams[] = new FlvVlcReStream($this, $live);          \/\/nginx rtmp stream         \/\/$this-&gt;streams[] = new RtmpVlcReStream($this, $live);          $rec = new BBRecStream($cam, $live);         $rec-&gt;setEnabled($cs-&gt;live && $cs-&gt;rec);         $rec-&gt;setTestInputCommand(new BBTestInputFailSaveCommand($cam, $rec));         $stream-&gt;addStream($rec);          $mtn = new BBRecStream($cam, $live, TIME_LOCK_RECORD, Path::MOTION);         $mtn-&gt;setEnabled($cs-&gt;live && $cs-&gt;mtn && BBRecMotionEvent::isMotion($cam));         $mtn-&gt;setTestInputCommand(new BBTestInputFailSaveCommand($cam, $mtn));         $stream-&gt;addStream($mtn, Path::MOTION);          \/\/motion flv stream         $flv = new UrlFlvVlcStream($cam, &quot;http:\/\/localhost:&quot;.(MOTION_STREAM_PORT + $cam-&gt;getID()));         $flv-&gt;setEnabled($cs-&gt;live);         $stream-&gt;addStream($flv);          return $stream;     } }   <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  createSystem, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0441 \u044d\u0432\u0435\u043d\u0442\u044b. \u0417\u0430 \u0438\u0445 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043a\u043b\u0430\u0441\u0441 System.<br \/>  EVENT_MOTION_START, EVENT_MOTION_STOP, EVENT_MOTION_DETECTED, EVENT_CAMERA_LOSS<br \/>  \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0442\u043e, \u0447\u0442\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u043a\u043e\u043d\u0444\u0438\u0433\u0430 moton  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">thread<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\"># Command to be executed when an event starts. (default: none) # An event starts at first motion detected after a period of no motion defined by event_gap on_event_start php ~\/dvr\/bin\/system2\/main.php event {user_id} {cam_id} motion_start 0 &quot;%Y-%m-%d %T&quot;  # Command to be executed when an event ends after a period of no motion # (default: none). The period of no motion is defined by option event_gap. on_event_end php ~\/dvr\/bin\/system2\/main.php event {user_id} {cam_id} motion_stop 0 &quot;%Y-%m-%d %T&quot;  # Command to be executed when a picture (.ppm|.jpg) is saved (default: none) # To give the filename as an argument to a command append it with %f ; on_picture_save value  # Command to be executed when a motion frame is detected (default: none) ; on_motion_detected php ~\/dvr\/bin\/system2\/main.php event {user_id} {cam_id} motion_detected 0 &quot;%Y-%m-%d %T&quot;  # Command to be executed when motion in a predefined area is detected # Check option 'area_detect'.   (default: none) ; on_area_detected value  # Command to be executed when a movie file (.mpg|.avi) is created. (default: none) # To give the filename as an argument to a command append it with %f ; on_movie_start value  # Command to be executed when a movie file (.mpg|.avi) is closed. (default: none) # To give the filename as an argument to a command append it with %f ; on_movie_end value  # Command to be executed when a camera can't be opened or if it is lost # NOTE: There is situations when motion don't detect a lost camera! # It depends on the driver, some drivers dosn't detect a lost camera at all # Some hangs the motion thread. Some even hangs the PC! (default: none) on_camera_lost php ~\/dvr\/bin\/system2\/main.php event {user_id} {cam_id} motion_camera_lost 0 &quot;%Y-%m-%d %T&quot; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0442\u0430\u043c \u0438\u0434\u0435\u0442 \u0432\u044b\u0437\u043e\u0432 main.php event uid cid event_name \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b<br \/>  System \u043a\u043b\u0430\u0441\u0441 \u044d\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442.<br \/>  \u041f\u043e cron \u0440\u0430\u0437 \u0432 10 \u043c\u0438\u043d\u0443\u0442 (\u0440\u0430\u0437 \u0432 \u043b\u044e\u0431\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0438\u043d\u0443) \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f System-update.<br \/>  \u041f\u043e update \u0438\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 update \u0432\u0441\u0435\u0445 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c \u0438  <\/p>\n<pre><code class=\"php\">$this-&gt;executeCommands(); $this-&gt;executePermanentCommands(); <\/code><\/pre>\n<p>  \u041a\u043e\u043c\u0430\u043d\u0434\u044b \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u043d\u0430\u043a\u0438\u0434\u0430\u043b\u0438 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a RotateRecCommand \u2014 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0440\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439.<\/p>\n<p>  \u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0434\u0435\u043c\u043e\u043d\u043e\u0432 \u0438\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, BBDaemonWatchdog, \u043e\u043d\u0430 \u0441\u043b\u0435\u0434\u0438\u0442 \u043d\u0435 \u0443\u043f\u0430\u043b \u043b\u0438 \u0434\u0435\u043c\u043e\u043d.<\/p>\n<p>  \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u0411\u0414.<br \/>  \u041f\u043e\u0442\u043e\u043c \u043a\u0430\u043c\u0435\u0440\u044b \u0438\u0437 \u0411\u0414. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0430\u0439\u043c\u043b\u0430\u043f\u0441\u0430. \u041a\u043e\u0442\u043e\u0440\u0430\u044f, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u0432 TIME_LOCK_TIMELAPSE (8 \u0447\u0430\u0441\u043e\u0432) \u0438 \u0441\u0443\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 Mysql<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u2014 \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u044d\u0442\u043e \u043f\u043e\u0442\u043e\u043a\u0438 (streams)<br \/>  \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0442\u043e\u043a motion, live, hls (HTTP Live Stream), rec, mtn, flv.<br \/>  live \u2014 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 http<br \/>  rec, mtn \u2014 \u043f\u043e\u0442\u043e\u043a\u0438 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438<br \/>  hls \u0438 flv \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440.<\/p>\n<p>  Github: <a href=\"https:\/\/github.com\/Calc86\/dvr\/tree\/master\/bin\/system2\">github.com\/Calc86\/dvr\/tree\/master\/bin\/system2<\/a><\/p>\n<p>  \u041b\u043e\u0433\u0438\u043a\u0430 \u0435\u0441\u0442\u044c. \u041d\u0443\u0436\u043d\u043e \u00ab\u0444\u0438\u0437\u0438\u043a\u0430\u00bb.<br \/>  \u041a\u0430\u043c\u0435\u0440 \u043c\u043d\u043e\u0433\u043e, \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u043c\u043d\u043e\u0433\u043e, \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043e\u0434\u0438\u043d.<br \/>  \u0412\u0441\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432 ramdisk, hls \u0432 ramdisk, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 vlc \u0438\u0434\u0435\u0442 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0431\u044b\u043b\u043e \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0442\u0440\u0430\u043d\u0441\u043a\u043e\u0434\u0438\u043d\u0433\u0430. \u0427\u0438\u0441\u0442\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u0437\u0430\u0431\u0440\u0430\u043b\u0438, \u0447\u0438\u0441\u0442\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0438. \u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0441 ram \u0434\u0438\u0441\u043a\u0430 \u043d\u0430 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 (\u0432 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0435 \u0431\u044b\u043b\u043e NFS) \u0448\u043b\u043e \u0447\u0435\u0440\u0435\u0437 ffmpeg codec copy<br \/>  \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u0447\u0435\u0440\u0435\u0437 html5 \u0437\u0430\u043f\u0438\u0441\u0438.<br \/>  3 \u0432\u0438\u0434\u0430 \u0437\u0430\u043f\u0438\u0441\u0435\u0439. \u041f\u043e\u043b\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0441 \u043d\u0430\u0440\u0435\u0437\u043a\u043e\u0439 \u0440\u0430\u0437 \u0432 10 \u043c\u0438\u043d\u0443\u0442, \u0437\u0430\u043f\u0438\u0441\u044c \u043f\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044e \u0438 timelaps \u0437\u0430\u043f\u0438\u0441\u044c \u0437\u0430 8 \u0447\u0430\u0441\u043e\u0432 \u0433\u0434\u0435 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f 3 \u043c\u0438\u043d\u0443\u0442\u044b.<\/p>\n<p>  \u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 DVR (\u043c\u0430\u0448\u0438\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438), \u0434\u0430\u0436\u0435 \u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438 \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u043a\u043e\u0434\u0430.<\/p>\n<p>  \u0427\u0442\u043e \u0431\u044b\u043b\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e<br \/>  1) \u0432\u0441\u0435 \u0436\u0435\u043b\u0430\u0435\u043c\u044b\u0435 \u043d\u0430\u043c\u0438 \u0437\u0430\u043f\u0438\u0441\u0438<br \/>  2) \u0432\u044b\u0432\u043e\u0434 \u0432 web, hls, flash, \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 html5, \u0438\u0437-\u0437\u0430 \u0437\u043e\u043e\u043f\u0430\u0440\u043a\u0430 \u043a\u043e\u0434\u0435\u043a\u043e\u0432 h264 live \u0432 h264 \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u0448\u0435\u043b \u0432 web, \u0432\u044b\u0432\u043e\u0434 \u0432 mjpeg (\u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0441\u0442\u0430\u0440\u044b\u0445 \u043d\u043e\u043a\u0438\u044f\u0445 \u043e\u043d\u043b\u0430\u0439\u043d \u0432\u0438\u0434\u0435\u043e)<br \/>  3) web \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u0448\u043d\u043e\u0439 \u0448\u0442\u0443\u043a\u0438 \u0441 https, nginx security url \u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u043c.<br \/>  \u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u043c\u0435\u0440 \u0447\u0435\u0440\u0435\u0437 Onvif<\/p>\n<p>  \u041f\u043e\u0447\u0435\u043c\u0443 \u043f\u0440\u043e\u0435\u043a\u0442 \u0437\u0430\u0433\u043b\u043e\u0445.<br \/>  1) \u043f\u043b\u043e\u0445\u0430\u044f \u043f\u0440\u043e\u0434\u0430\u0436\u0430 (\u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u043e\u0434\u0430\u0436\u043d\u0438\u043a\u0430 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0440\u043e\u0434\u0430\u0436)<br \/>  2) \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0444\u0438\u043d\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (\u0430\u0434\u043c\u0438\u043d \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043d\u0443\u0436\u0435\u043d \u043d\u0430 \u0442\u0430\u043a\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443)<br \/>  3) \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438<br \/>  4) \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430<br \/>  5) \u043d\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0441\u0442\u0438 \u043a\u0430\u043c\u0435\u0440\u044b \u043d\u0430 \u0442\u0435\u0441\u0442<br \/>  6) \u043d\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0435 \u043a\u0430\u043c\u0435\u0440\u044b \u043d\u0430 \u0442\u0435\u0441\u0442, \u0445\u043e\u0442\u044f \u0441 \u0443\u043f\u0440\u0430\u0432\u043e\u0439 \u0440\u0430\u0439\u043e\u043d\u0430 \u0434\u043e\u0433\u043e\u0432\u043e\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0431\u044b\u043b\u0430.<br \/>  7) \u044f \u043c\u0435\u043d\u044f\u044e \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u044b. \u041d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u044d\u0442\u0438\u043c.<br \/>  8) \u041f\u043e\u043a\u0443\u043f\u043a\u0430 \u0434\u0438\u0437\u0430\u0439\u043d\u0430 \u0438 \u043f\u043e\u043a\u0443\u043f\u043a\u0430 \u043d\u0430\u0440\u0435\u0437\u043a\u0438, \u043d\u043e \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043d\u0430\u0440\u0435\u0437\u0430\u043b\u0438 \u0441\u0432\u043e\u0438\u043c\u0438 \u0441\u0438\u043b\u0430\u043c\u0438.<br \/>  9) \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043b \u0431\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u0443 (\u043d\u0430\u0448\u043b\u0438 \u0431\u0430\u0433\u0438 \u043a\u0430\u043a \u0432 motion, \u0442\u0430\u043a \u0438 \u0432 vlc, \u043d\u043e \u0440\u0435\u0448\u0430\u044e\u0442\u0441\u044f \u043e\u043d\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u044b)<br \/>  10) \u00ab\u041f\u0440\u043e\u0434\u0430\u0436\u043d\u0438\u043a\u0438\u00bb \u0437\u0430 \u0433\u043e\u0434 \u043d\u0435 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0438 \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0440\u043e\u0434\u0430\u0436 \u0438 \u0442\u0430\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438.<br \/>  11) \u042f \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0441\u044f \u043c\u043d\u043e\u0433\u043e \u0447\u0435\u043c \u0435\u0449\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0438 \u043b\u0438\u0447\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u044c\u044e.<br \/>  12) \u0412\u0441\u0435 \u0437\u0430\u0431\u0438\u043b\u0438 \u0431\u043e\u043b\u0442 \u043d\u0430 \u0441\u0432\u043e\u0438 \u043e\u0431\u0433\u043e\u0432\u043e\u0440\u0435\u043d\u043d\u044b\u0435 \u043e\u0431\u044f\u0437\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \ud83d\ude42<\/p>\n<p>  \u041d\u043e \u0443 \u043d\u0430\u0441 \u0431\u044b\u043b\u043e 3 \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u0438\u043c \u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c. \u0414\u0435\u043d\u044c\u0433\u0438 \u0437\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0435 \u0431\u0440\u0430\u043b\u0438, \u0434\u0435\u043d\u044c\u0433\u0438 \u0431\u0440\u0430\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043a\u0430\u043c\u0435\u0440.<\/p>\n<p>  \u041a\u0430\u043a \u043e\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e \ud83d\ude42<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/259\/652\/7fa\/2596527faa6a4d8e8c7022ea1375529b.png\" alt=\"image\"\/><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0442\u0435\u043c\u0430 \u043f\u043e\u0439\u0434\u0435\u0442, \u0442\u043e \u043e\u043f\u0438\u0448\u0443 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e VLC \u0438 \u043f\u043e\u0434\u0432\u043e\u0434\u043d\u044b\u0445 \u043a\u0430\u043c\u043d\u044f\u0445. \u0418 \u043e \u00ab\u043c\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u00bb \u0436\u0435\u043b\u0435\u0437\u043a\u0435 \u0438 \u043e\u043f\u044b\u0442\u043e\u0432 \u0441 \u043d\u0435\u0439 \u0442\u043e\u0436\u0435.      \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/234139\/\"> http:\/\/habrahabr.ru\/post\/234139\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">     \t\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430, \u0435\u0441\u0442\u044c \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0445\u043e\u0442\u044f\u0442 \u00ab\u043d\u0430\u0447\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0431\u0438\u0437\u043d\u0435\u0441\u00bb. \u041e\u043d\u0438 \u0441\u0432\u043e\u0439 \u0438\u043c\u0435\u044e\u0442, \u043d\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0445\u043e\u0442\u044f\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c\u0441\u044f. \u0418 \u0432\u043e\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u044d\u0442\u043e\u0433\u043e \u0445\u043e\u0442\u044f\u0442, \u043e\u043d\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u043a\u043e \u043c\u043d\u0435 \u0437\u0430 \u0441\u043e\u0432\u0435\u0442\u0430\u043c\u0438. \u0418\u0434\u0435\u044f \u043b\u0435\u0436\u0438\u0442 \u043d\u0430 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438. \u00ab\u041c\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043e\u043c, \u0430 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0435\u0449\u0435 \u0447\u0435\u043c \u043d\u0438\u0431\u0443\u0434\u044c \u043d\u0430 \u043d\u0430\u0448\u0435\u0439 \u0442\u0435\u043c\u0435\u00bb. \u0422\u0430\u043a \u043c\u044b \u043d\u0430\u0447\u0430\u043b\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438\u0435\u0439, \u043f\u0440\u043e\u0434\u0430\u0436\u0435\u0439 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u043e\u043c, \u043a\u043e\u043b\u043e\u043a\u0435\u0439\u0448\u0438\u043d\u043e\u043c. \u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u0435\u043d\u044f \u0440\u0430\u0434\u043e\u0432\u0430\u043b\u0430. \u00ab\u0414\u0430\u0432\u0430\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438\u0435\u0439\u00bb, \u00ab\u0414\u0430\u0432\u0430\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u043e\u043c\u00bb. \u041d\u0443 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u00ab\u0414\u0430\u0432\u0430\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435\u043c\u00bb.<br \/>  \u0412\u043e\u0442 \u00ab\u0414\u0430\u0432\u0430\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435\u043c\u00bb \u044d\u0442\u043e \u0438 \u0431\u044b\u043b\u043e \u0437\u0430\u0432\u0435\u0442\u043d\u043e \u0422\u0417.<br \/>  \u0427\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0438 \u043e\u043f\u044b\u0442 \u043e\u043f\u0438\u0448\u0443 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-234139","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/234139","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=234139"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/234139\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=234139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=234139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=234139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}