{"id":307153,"date":"2020-07-18T21:01:30","date_gmt":"2020-07-18T21:01:30","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=307153"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=307153","title":{"rendered":"\u041c\u043e\u0449\u044c \u043c\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u044f\u0434\u0435\u0440 \u0434\u043b\u044f \u0443\u043a\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0435\u043a\u0430 AV1"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/511512\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/cbe\/5e1\/4e2\/cbe5e14e20c129a1efedb3ecb4e27ebd.jpg\" alt=\"image\"><\/p>\n<h2>\u041f\u0440\u043e\u043b\u043e\u0433<\/h2>\n<p>  \u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438, \u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0441\u044c \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u0434\u0435\u043a\u0430\u043c\u0438 \u0438 \u0442\u0435\u043c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u043d\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0435\u0435 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0438\u043a\u0430\u043c\u0438. \u0412 \u0441\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0441\u043b\u0435 H264 \u0432\u044b\u0448\u0435\u043b HEVC, \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u0431\u0435\u0437\u0443\u043c\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0435\u0433\u043e \u043f\u043e\u0449\u0443\u043f\u0430\u0442\u044c, \u043d\u043e \u043c\u043e\u0435 \u0436\u0435\u043b\u0435\u0437\u043e \u0442\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u043e \u0436\u0435\u043b\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0435\u0433\u043e. \u0421\u0435\u0439\u0447\u0430\u0441 \u0436\u0435 \u0436\u0435\u043b\u0435\u0437\u043e \u043f\u043e\u0434\u0442\u044f\u043d\u0443\u043b\u043e\u0441\u044c, \u043d\u043e \u0438 HEVC \u0434\u0430\u0432\u043d\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u043b, \u0435\u043c\u0443 \u043d\u0430 \u0441\u043c\u0435\u043d\u0443 \u0436\u0430\u0436\u0434\u0435\u0442 \u043f\u0440\u0438\u0434\u0442\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 AV1, \u043e\u0431\u0435\u0449\u0430\u044e\u0449\u0438\u0439 \u043d\u0430\u043c \u0434\u043e 50% \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 1080p H264, \u043d\u043e \u0435\u0441\u043b\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 HEVC \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0432\u0430\u0442\u043e\u0439 (\u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0441 H264), \u0442\u043e AV1 \u0441\u043e \u0441\u0432\u043e\u0438\u043c ~0.2 fps \u0434\u0435\u043c\u043e\u0440\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e. \u041a\u043e\u0433\u0434\u0430 \u0447\u0442\u043e-\u0442\u043e \u043a\u043e\u0434\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e, \u0442\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 10 \u043c\u0438\u043d\u0443\u0442\u043d\u044b\u0439 \u0440\u043e\u043b\u0438\u043a, \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u043a\u043e\u043b\u043e \u0441\u0443\u0442\u043e\u043a. \u0422.\u0435. \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u0438\u0442\u0440\u0435\u0439\u0442\u0430, \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0436\u0434\u0430\u0442\u044c \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0447\u0430\u0441\u0430\u043c\u0438, \u0430 \u0434\u043d\u044f\u043c\u0438\u2026<\/p>\n<p>  \u0418 \u0432\u043e\u0442, \u043a\u0430\u043a-\u0442\u043e \u0440\u0430\u0437, \u043b\u044e\u0431\u0443\u044f\u0441\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u043c \u0437\u0430\u043a\u0430\u0442\u043e\u043c (\u043a\u043e\u0434\u0435\u043a\u0430 H264), \u044f \u043f\u043e\u0434\u0443\u043c\u0430\u043b: \u00ab\u0410 \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u043d\u0430\u0442\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0430 AV1 \u0432\u0441\u0435 \u0436\u0435\u043b\u0435\u0437\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e?\u00bb<br \/>  <a name=\"habracut\"><\/a><\/p>\n<h2>\u0418\u0434\u0435\u044f<\/h2>\n<p>  \u042f \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c AV1 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u0439\u043b\u043e\u0432 \u0438 \u043c\u043d\u043e\u0433\u043e\u044f\u0434\u0435\u0440\u043d\u043e\u0441\u0442\u0438, \u043d\u043e \u043f\u0440\u0438\u0440\u043e\u0441\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043c\u043d\u0435 \u043d\u0435 \u0442\u0430\u043a\u0438\u043c \u0443\u0436 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0435 \u044f\u0434\u0440\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u0434\u0430\u0432\u0430\u044f \u043e\u043a\u043e\u043b\u043e \u043f\u043e\u043b\u0442\u043e\u0440\u0430 FPS \u043f\u0440\u0438 \u0441\u0430\u043c\u044b\u0445 \u0431\u044b\u0441\u0442\u0440\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0438 0.2 \u043f\u0440\u0438 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0445, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0433\u043e\u043b\u043e\u0432\u0443 \u043f\u0440\u0438\u0448\u043b\u0430 \u043a\u0430\u0440\u0434\u0438\u043d\u0430\u043b\u044c\u043d\u043e \u0434\u0440\u0443\u0433\u0430\u044f \u0438\u0434\u0435\u044f.<\/p>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0432, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e AV1, \u044f \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0441\u043f\u0438\u0441\u043e\u043a:<\/p>\n<ul>\n<li>\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0432 ffmpeg \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0449\u0438\u043a libaom-av1<\/li>\n<li>\u041f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/github.com\/xiph\/rav1e\" rel=\"nofollow\">rav1e<\/a><\/li>\n<li>\u041f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/github.com\/OpenVisualCloud\/SVT-AV1\" rel=\"nofollow\">SVT-AV1<\/a><\/li>\n<\/ul>\n<p>  \u0418\u0437 \u0432\u0441\u0435\u0433\u043e \u0432\u044b\u0448\u0435\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u044f \u0432\u044b\u0431\u0440\u0430\u043b rav1e. \u041e\u043d \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u043f\u043b\u043e\u0445\u0443\u044e \u043e\u0434\u043d\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043b\u043e\u0436\u0438\u043b\u0441\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b:<\/p>\n<ul>\n<li>\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0440\u0430\u0437\u0440\u0435\u0436\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u0432\u0438\u0434\u0435\u043e \u043d\u0430 \u043a\u0443\u0441\u043e\u0447\u043a\u0438 \u043f\u043e n \u0441\u0435\u043a\u0443\u043d\u0434<\/li>\n<li>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u043c\u043e\u0435\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u0431\u0443\u0434\u0435\u0442 web-\u0441\u0435\u0440\u0432\u0435\u0440 \u0441\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c<\/li>\n<li>\u041c\u044b \u043a\u043e\u0434\u0438\u0440\u0443\u0435\u043c \u0432 \u043e\u0434\u0438\u043d \u043f\u043e\u0442\u043e\u043a, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0443\u0441\u043e\u0447\u043a\u043e\u0432, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443 \u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u044b\u0445 \u044f\u0434\u0435\u0440<\/li>\n<li>\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u0443\u0441\u043e\u0447\u043a\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u044b, \u0438 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b<\/li>\n<li>\u041a\u043e\u0433\u0434\u0430 \u0432\u0441\u0435 \u043a\u0443\u0441\u043e\u0447\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0433\u043e\u0442\u043e\u0432\u044b, \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0441\u043a\u043b\u0435\u0438\u0442 \u0438\u0445 \u0432 \u043e\u0434\u0438\u043d \u0438 \u043d\u0430\u043b\u043e\u0436\u0438\u0442 \u0437\u0432\u0443\u043a \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430<\/li>\n<\/ul>\n<h2>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h2>\n<p>  \u0421\u0440\u0430\u0437\u0443 \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0434\u0435\u043b\u0430\u043d\u0430 \u043f\u043e\u0434 Windows. \u0412 \u0442\u0435\u043e\u0440\u0438\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0438 \u043f\u043e\u0434 \u0434\u0440\u0443\u0433\u0438\u0435 \u041e\u0421, \u043d\u043e \u044f \u0434\u0435\u043b\u0430\u043b \u043f\u043e\u0434 \u0442\u043e, \u0447\u0442\u043e \u0441\u0442\u043e\u044f\u043b\u043e \u0443 \u043c\u0435\u043d\u044f.<\/p>\n<p>  \u0418\u0442\u0430\u043a \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e:<\/p>\n<ul>\n<li>Web-\u0441\u0435\u0440\u0432\u0435\u0440 \u0441 PHP<\/li>\n<li>ffmpeg<\/li>\n<li>rav1e<\/li>\n<\/ul>\n<p>  1. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f Web-\u0441\u0435\u0440\u0432\u0435\u0440, \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u0440\u0430\u0441\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0438 \u043a\u0430\u043a \u044f \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u0432\u043a\u0443\u0441 \u0438 \u0446\u0432\u0435\u0442. \u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b Apache + PHP. \u0414\u043b\u044f PHP \u0432\u0430\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0443\u044e \u0435\u043c\u0443 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0444\u0430\u0439\u043b\u044b (\u043f\u043e \u0434\u0435\u0444\u043e\u043b\u0442\u0443 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 2\u041c\u0431 \u0438 \u044d\u0442\u043e \u043c\u0430\u043b\u043e, \u043d\u0430\u0448\u0438 \u043a\u0443\u0441\u043e\u0447\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435). \u0418\u0437 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0433\u043e, CURL, JSON.<\/p>\n<p>  <i>\u0422\u0430\u043a\u0436\u0435 \u0443\u043f\u043e\u043c\u044f\u043d\u0443 \u043f\u0440\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435\u0442. \u0412\u0441\u0435, \u0447\u0442\u043e \u044f \u0434\u0435\u043b\u0430\u043b \u2014 \u044f \u0434\u0435\u043b\u0430\u043b \u0432\u043d\u0443\u0442\u0440\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0439 \u043d\u0435 \u0441\u0434\u0435\u043b\u0430\u043d\u043e, \u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0434\u043b\u044f \u043d\u0430\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u0434\u0430 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0430\u043c\u0438 \u2014 \u043f\u043e\u043b\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0432 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445, \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043d\u0443\u0436\u043d\u043e \u043e\u0437\u0430\u0431\u043e\u0442\u0438\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e.<\/i><\/p>\n<p>  2. FFmpeg \u2014 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 \u044f \u043a\u0430\u0447\u0430\u043b \u0441 <a href=\"https:\/\/ffmpeg.zeranoe.com\/builds\/\" rel=\"nofollow\">Zeranoe builds<\/a><br \/>  3. rav1e \u2014 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u0438\u0437 \u0440\u0435\u043b\u0438\u0437\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <a href=\"https:\/\/github.com\/xiph\/rav1e\" rel=\"nofollow\">rav1e<\/a><\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">PHP \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c<\/b>                         <\/p>\n<div class=\"spoiler_text\">\u0424\u0430\u0439\u043b encoding.php, \u043f\u043e \u0441\u0435\u0442\u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u043e http: \/\/ HOST\/remote\/encoding.php<br \/>  \u041f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b \u0442\u0430\u043a\u043e\u0439:<\/p>\n<ol>\n<li>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043a\u0443\u0441\u043e\u0447\u0435\u043a, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0435\u0433\u043e \u0432 \u043f\u0430\u043f\u043a\u0443<\/li>\n<li>\u0413\u0435\u043d\u0435\u0440\u0438\u043c CMD \u0444\u0430\u0439\u043b \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u0434\u043b\u044f \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0430\u043c\u043e\u0433\u043e CMD \u0444\u0430\u0439\u043b\u0430 \u0432 \u043a\u043e\u043d\u0446\u0435<\/li>\n<li>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c CMD \u0444\u0430\u0439\u043b<\/li>\n<\/ol>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0435\u0441\u043b\u0438:<\/p>\n<ol>\n<li>\u0415\u0441\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0435\u0441\u0442\u044c \u0444\u0430\u0439\u043b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0438 \u0435\u0441\u0442\u044c CMD \u0444\u0430\u0439\u043b \u2014 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0435\u0449\u0435 \u0438\u0434\u0435\u0442<\/li>\n<li>\u0415\u0441\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0435\u0441\u0442\u044c \u0444\u0430\u0439\u043b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0438 CMD \u0444\u0430\u0439\u043b\u0430 \u043d\u0435\u0442 \u2014 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043e<\/li>\n<\/ol>\n<p>  \u0421\u043e\u0433\u043b\u0430\u0448\u0443\u0441\u044c, \u0447\u0442\u043e \u0442\u0443\u0442 \u0447\u0442\u043e-\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0439\u0442\u0438 \u043d\u0435 \u0442\u0430\u043a, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043d\u0435\u0448\u0442\u0430\u0442\u043d\u044b\u0445 \u0440\u0435\u0436\u0438\u043c\u0430\u0445, \u0432\u0440\u043e\u0434\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u041f\u041a \u0441 \u043d\u0435\u0434\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439, \u043d\u043e\u2026 \u0447\u0435\u0440\u0442 \u0441 \u043d\u0438\u043c, \u0441\u043e\u0439\u0434\u0435\u0442, \u044f \u0434\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0441\u044f \u0441\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u043e\u0432\u0435\u0441\u0442\u044c\u044e.<\/p>\n<p>  \u0421\u043a\u0440\u0438\u043f\u0442 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443 \u043d\u0435\u0433\u043e \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0438 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0440\u0435\u0448\u0430\u043b, \u043f\u0440\u0438\u0441\u044b\u043b\u0430\u0442\u044c \u0435\u043c\u0443 \u0435\u0449\u0435 \u043a\u0443\u0441\u043e\u0447\u043a\u0438 \u0438\u043b\u0438 \u043d\u0435\u0442. \u0422\u0430\u043a\u0436\u0435 \u0441\u043a\u0440\u0438\u043f\u0442 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u0438\u0435 \u043a\u0443\u0441\u043e\u0447\u043a\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0438 \u043a\u0430\u043a\u0438\u0435 \u0433\u043e\u0442\u043e\u0432\u044b, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043c\u043e\u0433 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0438\u0445 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.<\/p>\n<p>  encoding.php:  <\/p>\n<pre><code class=\"php\">&lt;?php  function getRoot() { \t$root = $_SERVER['DOCUMENT_ROOT']; \tif (strlen($root) == 0) \t{ \t\t$root = dirname(__FILE__).&quot;\\\\..&quot;; \t} \treturn $root; }  function getStoragePath() { \treturn getRoot().&quot;\\\\storage&quot;; }   function get_total_cpu_cores() { \t$coresFileName = getRoot().&quot;\\\\cores.txt&quot;; \tif (file_exists($coresFileName)) \t{ \t\treturn intval(file_get_contents($coresFileName)); \t} \treturn (int) ((PHP_OS_FAMILY == 'Windows')?(getenv(&quot;NUMBER_OF_PROCESSORS&quot;)+0):substr_count(file_get_contents(&quot;\/proc\/cpuinfo&quot;),&quot;processor&quot;)); }  function antiHack($str) { \t$strOld = &quot;&quot;; \twhile ($strOld != $str) \t{ \t\t$strOld = $str;   \t\t$str = str_replace(&quot;\\\\&quot;, &quot;&quot;, $str);   \t\t$str = str_replace(&quot;\/&quot;, &quot;&quot;,$str);   \t\t$str = str_replace(&quot;|&quot;,&quot;&quot;, $str);   \t\t$str = str_replace(&quot;..&quot;,&quot;&quot;, $str); \t}   return $str; }   $filesDir = getStoragePath().&quot;\\\\encfiles&quot;; if (!is_dir($filesDir)) { \tmkdir($filesDir); } $resultDir = $filesDir.&quot;\\\\result&quot;; if (!is_dir($resultDir)) { \tmkdir($resultDir); }  $active = glob($filesDir.'\\\\*.cmd'); $all = glob($resultDir.'\\\\*.*');  $info = [ \t&quot;active&quot; =&gt; count($active), \t&quot;total&quot; =&gt; get_total_cpu_cores(), \t&quot;inProgress&quot; =&gt; [], \t&quot;done&quot; =&gt; [] ];  foreach ($all as $key) { \t$pi = pathinfo($key); \t$commandFile = $pi[&quot;filename&quot;].&quot;.cmd&quot;; \t$sourceFile = $pi[&quot;filename&quot;]; \tif (file_exists($filesDir.'\\\\'.$sourceFile)) \t{ \t\tif (file_exists($filesDir.'\\\\'.$commandFile)) \t\t{ \t\t\t$info[&quot;inProgress&quot;][] = $sourceFile; \t\t} \t\telse \t\t{ \t\t\t$info[&quot;done&quot;][] = $sourceFile; \t\t} \t} }  if (isset($_GET[&quot;action&quot;])) { \tif ($_GET[&quot;action&quot;] == &quot;upload&quot; &amp;&amp; isset($_FILES['encfile']) &amp;&amp; isset($_POST[&quot;params&quot;])) \t{ \t\t$params = json_decode(hex2bin($_POST[&quot;params&quot;]), true); \t\t$fileName = $_FILES['encfile']['name']; \t\t$fileToProcess = $filesDir.&quot;\\\\&quot;.$fileName; \t\tmove_uploaded_file($_FILES['encfile']['tmp_name'], $fileToProcess); \t\t$commandFile = $fileToProcess.&quot;.cmd&quot;; \t\t$resultFile = $resultDir.&quot;\\\\&quot;.$fileName.$params[&quot;outputExt&quot;];  \t\t$command = $params[&quot;commandLine&quot;]; \t\t$command = str_replace(&quot;%SRC%&quot;, $fileToProcess, $command); \t\t$command = str_replace(&quot;%DST%&quot;, $resultFile, $command); \t\t$command .= PHP_EOL.'DEL \/Q &quot;'.$commandFile.'&quot;'; \t\tfile_put_contents($commandFile, $command); \t\tpclose(popen('start &quot;&quot; \/B &quot;'.$commandFile.'&quot;', &quot;r&quot;)); \t} \tif ($_GET[&quot;action&quot;] == &quot;info&quot;) \t{\t\t \t\theader(&quot;Content-Type: application\/json&quot;); \t\techo json_encode($info); \t\tdie(); \t} \tif ($_GET[&quot;action&quot;] == &quot;get&quot;) \t{ \t\tif (isset($_POST[&quot;name&quot;]) &amp;&amp; isset($_POST[&quot;params&quot;])) \t\t{ \t\t\t$params = json_decode(hex2bin($_POST[&quot;params&quot;]), true);  \t\t\t$fileName = antiHack($_POST[&quot;name&quot;]); \t\t\t$fileToGet = $filesDir.&quot;\\\\&quot;.$fileName; \t\t\t$commandFile = $fileToGet.&quot;.cmd&quot;; \t\t\t$resultFile = $resultDir.&quot;\\\\&quot;.$fileName.$params[&quot;outputExt&quot;]; \t\t\tif (file_exists($fileToGet) &amp;&amp; !file_exists($commandFile) &amp;&amp; file_exists($resultFile)) \t\t\t{ \t\t\t\t$fp = fopen($resultFile, 'rb');  \t\t\t\theader(&quot;Content-Type: application\/octet-stream&quot;); \t\t\t\theader(&quot;Content-Length: &quot;.filesize($resultFile));  \t\t\t\tfpassthru($fp); \t\t\t\texit; \t\t\t} \t\t} \t} \tif ($_GET[&quot;action&quot;] == &quot;remove&quot;) \t{ \t\tif (isset($_POST[&quot;name&quot;]) &amp;&amp; isset($_POST[&quot;params&quot;])) \t\t{ \t\t\t$params = json_decode(hex2bin($_POST[&quot;params&quot;]), true);  \t\t\t$fileName = antiHack($_POST[&quot;name&quot;]); \t\t\t$fileToGet = $filesDir.&quot;\\\\&quot;.$fileName; \t\t\t$commandFile = $fileToGet.&quot;.cmd&quot;; \t\t\t$resultFile = $resultDir.&quot;\\\\&quot;.$fileName.$params[&quot;outputExt&quot;]; \t\t\tif (file_exists($fileToGet) &amp;&amp; !file_exists($commandFile)) \t\t\t{ \t\t\t\tif (file_exists($resultFile)) \t\t\t\t{ \t\t\t\t\tunlink($resultFile); \t\t\t\t} \t\t\t\tunlink($fileToGet); \t\t\t\theader(&quot;Content-Type: application\/json&quot;); \t\t\t\techo json_encode([ &quot;result&quot; =&gt; true ]); \t\t\t\tdie(); \t\t\t} \t\t} \t\theader(&quot;Content-Type: application\/json&quot;); \t\techo json_encode([ &quot;result&quot; =&gt; false ]); \t\tdie(); \t} } echo &quot;URL Correct&quot;; ?&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f encode.php<\/b>                         <\/p>\n<div class=\"spoiler_text\">\u041b\u0435\u0436\u0438\u0442 \u0433\u0434\u0435 \u0443\u0433\u043e\u0434\u043d\u043e. \u0412\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442: \u043a\u0430\u043a \u0432\u044b \u0432\u0438\u0434\u0438\u0442\u0435, \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u043b\u044f \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u044d\u0442\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0438 \u044d\u0442\u0438 \u043f\u0443\u0442\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0435\u0434\u0438\u043d\u044b \u043d\u0430 \u0432\u0441\u0435\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u044f \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043b \u0444\u0430\u0439\u043b\u044b:<\/p>\n<ul>\n<li>c:\\Apps\\OneDrive\\commands\\bin\\ffmpeg\\ffmpeg.exe \u2014 \u0438\u0437 <a href=\"https:\/\/ffmpeg.zeranoe.com\/builds\/\" rel=\"nofollow\">Zeranoe builds<\/a><\/li>\n<li>c:\\Apps\\OneDrive\\commands\\bin\\ffmpeg\\rav1e.exe \u2014 \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <a href=\"https:\/\/github.com\/xiph\/rav1e\" rel=\"nofollow\">rav1e<\/a><\/li>\n<\/ul>\n<p>  \u0422\u0443\u0442 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u0432\u0430\u0448\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u044b:  <\/p>\n<pre><code class=\"php\">$servers = [ \t&quot;LOCAL&quot; =&gt; &quot;http:\/\/127.0.0.1:8000\/remote\/encoding.php&quot;, \t&quot;SERVER2&quot; =&gt; &quot;http:\/\/192.168.100.25:8000\/remote\/encoding.php&quot;, ]; <\/code><\/pre>\n<p>  encode.php:  <\/p>\n<pre><code class=\"php\">&lt;?php  $ffmpeg = '&quot;c:\\Apps\\OneDrive\\commands\\bin\\ffmpeg\\ffmpeg.exe&quot;';  $params = [ \t&quot;commandLine&quot; =&gt; '&quot;c:\\Apps\\OneDrive\\commands\\bin\\ffmpeg\\ffmpeg&quot; -i &quot;%SRC%&quot; -an -pix_fmt yuv420p -f yuv4mpegpipe - | &quot;c:\\Apps\\OneDrive\\commands\\bin\\ffmpeg\\rav1e&quot; - -s 5 --quantizer 130  -y --output &quot;%DST%&quot;', \t&quot;outputExt&quot; =&gt; &quot;.ivf&quot; ];   $paramsData = bin2hex(json_encode($params));  $servers = [ \t&quot;LOCAL&quot; =&gt; &quot;http:\/\/127.0.0.1:8000\/remote\/encoding.php&quot;, \t&quot;SERVER2&quot; =&gt; &quot;http:\/\/192.168.100.25:8000\/remote\/encoding.php&quot;, ];  if (isset($argc)) { \tif ($argc &gt; 1) \t{ \t\t$fileToEncode = $argv[1];  \t\t$timeBegin = time(); \t\t$pi = pathinfo($fileToEncode); \t\t$filePartName = $pi[&quot;dirname&quot;].&quot;\\\\&quot;.$pi[&quot;filename&quot;].&quot;_part%04d.mkv&quot;; \t\t$fileList = $pi[&quot;dirname&quot;].&quot;\\\\&quot;.$pi[&quot;filename&quot;].&quot;_list.txt&quot;; \t\t$joinedFileName = $pi[&quot;dirname&quot;].&quot;\\\\&quot;.$pi[&quot;filename&quot;].&quot;_joined.mkv&quot;; \t\t$audioFileName = $pi[&quot;dirname&quot;].&quot;\\\\&quot;.$pi[&quot;filename&quot;].&quot;_audio.opus&quot;; \t\t$finalFileName = $pi[&quot;dirname&quot;].&quot;\\\\&quot;.$pi[&quot;filename&quot;].&quot;_AV1.mkv&quot;; \t\texec($ffmpeg.' -i &quot;'.$fileToEncode.'&quot; -c copy -an -segment_time 00:00:10 -reset_timestamps 1 -f segment -y &quot;'.$filePartName.'&quot;'); \t\texec($ffmpeg.' -i &quot;'.$fileToEncode.'&quot; -vn -acodec libopus -ab 128k -y &quot;'.$audioFileName.'&quot;');  \t\t$files = glob($pi[&quot;dirname&quot;].&quot;\\\\&quot;.$pi[&quot;filename&quot;].&quot;_part*.mkv&quot;);  \t\t$sourceParts = $files; \t\t$resultParts = []; \t\t$resultFiles = []; \t\t$inProgress = []; \t\twhile (count($files) || count($inProgress)) \t\t{ \t\t\tforeach ($servers as $server =&gt; $url) \t\t\t{ \t\t\t\tif( $curl = curl_init() ) \t\t\t\t{ \t\t\t\t\tcurl_setopt($curl, CURLOPT_URL, $url.&quot;?action=info&quot;); \t\t\t\t\tcurl_setopt($curl, CURLOPT_RETURNTRANSFER, true); \t\t\t\t\t$out = curl_exec($curl); \t\t\t\t\tcurl_close($curl);  \t\t\t\t\t$info = json_decode($out, true); \t\t\t\t\t\/\/var_dump($info);  \t\t\t\t\tif (count($files)) \t\t\t\t\t{ \t\t\t\t\t\tif (intval($info[&quot;active&quot;]) &lt; intval($info[&quot;total&quot;])) \t\t\t\t\t\t{ \t\t\t\t\t\t\t$fileName = $files[0]; \t\t\t\t\t\t\t$key = pathinfo($fileName)[&quot;basename&quot;]; \t\t\t\t\t\t\t$inProgress[] = $key; \t\t\t\t\t\t\t\/\/echo &quot;Server: &quot;.$url.&quot;\\r\\n&quot;; \t\t\t\t\t\t\techo &quot;Sending part &quot;.$key.&quot;[TO &quot;.$server.&quot;]...&quot;; \t\t\t\t\t\t\tif (!in_array($key, $info[&quot;done&quot;]) &amp;&amp; !in_array($key, $info[&quot;inProgress&quot;])) \t\t\t\t\t\t\t{ \t\t\t\t\t\t\t\t$cFile = curl_file_create($fileName);  \t\t\t\t\t\t\t\t$post = ['encfile'=&gt; $cFile, 'params' =&gt; $paramsData]; \t\t\t\t\t\t\t\t$ch = curl_init(); \t\t\t\t\t\t\t\tcurl_setopt($ch, CURLOPT_URL, $url.&quot;?action=upload&quot;); \t\t\t\t\t\t\t\tcurl_setopt($ch, CURLOPT_POST,1); \t\t\t\t\t\t\t\tcurl_setopt($ch, CURLOPT_POSTFIELDS, $post); \t\t\t\t\t\t\t\tcurl_setopt($ch, CURLOPT_RETURNTRANSFER, true); \t\t\t\t\t\t\t\t$result = curl_exec($ch); \t\t\t\t\t\t\t\tcurl_close ($ch); \t\t\t\t\t\t\t} \t\t\t\t\t\t\techo &quot; DONE\\r\\n&quot;; \t\t\t\t\t\t\techo &quot;  Total: &quot;.count($sourceParts).&quot;, In Progress: &quot;.count($inProgress).&quot;, Left: &quot;.count($files).&quot;\\r\\n&quot;; \t\t\t\t\t\t\t$files = array_slice($files, 1); \t\t\t\t\t\t} \t\t\t\t\t}  \t\t\t\t\tif (count($info[&quot;done&quot;])) \t\t\t\t\t{ \t\t\t\t\t\tforeach ($info[&quot;done&quot;] as $file) \t\t\t\t\t\t{ \t\t\t\t\t\t\tif (($key = array_search($file, $inProgress)) !== false) \t\t\t\t\t\t\t{ \t\t\t\t\t\t\t\tset_time_limit(0); \t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\techo &quot;Receiving part &quot;.$file.&quot;... [FROM &quot;.$server.&quot;]...&quot;; \t\t\t\t\t\t\t\t$resultFile = $pi[&quot;dirname&quot;].&quot;\\\\&quot;.$file.&quot;.result&quot;.$params[&quot;outputExt&quot;]; \t\t\t\t\t\t\t\t$fp = fopen($resultFile, 'w+'); \t\t\t\t\t\t\t\t$post = ['name' =&gt; $file, 'params' =&gt; $paramsData]; \t\t\t\t\t\t\t\t$ch = curl_init(); \t\t\t\t\t\t\t\tcurl_setopt($ch, CURLOPT_URL, $url.&quot;?action=get&quot;); \t\t\t\t\t\t\t\tcurl_setopt($ch, CURLOPT_POST,1); \t\t\t\t\t\t\t\tcurl_setopt($ch, CURLOPT_POSTFIELDS, $post); \t\t\t\t\t\t\t\tcurl_setopt($ch, CURLOPT_FILE, $fp);  \t\t\t\t\t\t\t\tcurl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); \t\t\t\t\t\t\t\t\/\/curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); \t\t\t\t\t\t\t\tcurl_exec($ch);  \t\t\t\t\t\t\t\tcurl_close($ch); \t\t\t\t\t\t\t\t\/\/fclose($fp);  \t\t\t\t\t\t\t\t$resultFiles[] = &quot;file &quot;.$resultFile; \t\t\t\t\t\t\t\t$resultParts[] = $resultFile;  \t\t\t\t\t\t\t\t$post = ['name' =&gt; $file, 'params' =&gt; $paramsData]; \t\t\t\t\t\t\t\t$ch = curl_init(); \t\t\t\t\t\t\t\tcurl_setopt($ch, CURLOPT_URL, $url.&quot;?action=remove&quot;); \t\t\t\t\t\t\t\tcurl_setopt($ch, CURLOPT_POST,1); \t\t\t\t\t\t\t\tcurl_setopt($ch, CURLOPT_POSTFIELDS, $post); \t\t\t\t\t\t\t\tcurl_setopt($ch, CURLOPT_RETURNTRANSFER, true); \t\t\t\t\t\t\t\tcurl_exec($ch);  \t\t\t\t\t\t\t\tcurl_close($ch); \t\t\t\t\t\t\t\tfclose($fp);  \t\t\t\t\t\t\t\tunset($inProgress[$key]);  \t\t\t\t\t\t\t\techo &quot; DONE\\r\\n&quot;; \t\t\t\t\t\t\t\techo &quot;  Total: &quot;.count($sourceParts).&quot;, In Progress: &quot;.count($inProgress).&quot;, Left: &quot;.count($files).&quot;\\r\\n&quot;; \t\t\t\t\t\t\t} \t\t\t\t\t\t} \t\t\t\t\t} \t\t\t\t} \t\t\t} \t\t\tusleep(300000); \t\t}  \t\tasort($resultFiles); \t\tfile_put_contents($fileList, str_replace(&quot;\\\\&quot;, &quot;\/&quot;, implode(&quot;\\r\\n&quot;, $resultFiles)));  \t\texec($ffmpeg.' -safe 0 -f concat -i &quot;'.$fileList.'&quot; -c copy -y &quot;'.$joinedFileName.'&quot;'); \t\texec($ffmpeg.' -i &quot;'.$joinedFileName.'&quot; -i &quot;'.$audioFileName.'&quot; -c copy -y &quot;'.$finalFileName.'&quot;');  \t\tunlink($fileList); \t\tunlink($audioFileName); \t\tunlink($joinedFileName); \t\tforeach ($sourceParts as $part) \t\t{ \t\t\tunlink($part); \t\t} \t\tforeach ($resultParts as $part) \t\t{ \t\t\tunlink($part); \t\t}  \t\techo &quot;Total Time: &quot;.(time() - $timeBegin).&quot;s\\r\\n&quot;; \t} }  ?&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0424\u0430\u0439\u043b \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043b\u0435\u0436\u0438\u0442 \u0440\u044f\u0434\u043e\u043c \u0441\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c. \u041f\u0443\u0442\u044c \u043a PHP \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0435 \u0441\u0430\u043c\u0438.<br \/>  encoding.cmd:  <\/p>\n<pre><code class=\"dos\">@ECHO OFF cd \/d %~dp0 SET \/p FILENAME=Drag'n'Drop file here and Press Enter:  ..\\php7\\php.exe -c ..\\php7\\php_standalone.ini encode.php &quot;%FILENAME%&quot; PAUSE <\/code><\/pre>\n<h2>\u041f\u043e\u0435\u0445\u0430\u043b\u0438?<\/h2>\n<p>  \u0414\u043b\u044f \u0442\u0435\u0441\u0442\u0430 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043c\u0443\u043b\u044c\u0442\u0438\u043a \u043f\u0440\u043e \u043a\u0440\u043e\u043b\u0438\u043a\u0430 <a href=\"https:\/\/www.youtube.com\/watch?v=S2wAMaM2OYQ\" rel=\"nofollow\">Big Bucks Bunny<\/a>, \u0434\u043b\u0438\u043d\u043e\u0439 10 \u043c\u0438\u043d\u0443\u0442 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 150\u041c\u0431.<\/p>\n<h4>\u0416\u0435\u043b\u0435\u0437\u043e:<\/h4>\n<p>  <\/p>\n<ul>\n<li>AMD Ryzen 5 1600 (12 \u043f\u043e\u0442\u043e\u043a\u043e\u0432) + 16GB DDR4 (Windows 10)<\/li>\n<li>Intel Core i7 4770 (8 \u043f\u043e\u0442\u043e\u043a\u043e\u0432) + 32GB DDR3 (Windows 10)<\/li>\n<li>Intel Core i5 3570 (4 \u043f\u043e\u0442\u043e\u043a\u0430) + 8GB DDR3 (Windows 10)<\/li>\n<li>Intel Xeon E5-2650 V2(16 \u043f\u043e\u0442\u043e\u043a\u043e\u0432) + 32GB DDR3 (Windows 10)<\/li>\n<\/ul>\n<p>  \u0418\u0442\u043e\u0433\u043e: 40 \u043f\u043e\u0442\u043e\u043a\u043e\u0432<\/p>\n<h4>\u041a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438:<\/h4>\n<p>  <\/p>\n<pre><code class=\"dos\">ffmpeg -i &quot;%SRC%&quot; -an -pix_fmt yuv420p -f yuv4mpegpipe - | rav1e - -s 5 --quantizer 130  -y --output &quot;%DST%<\/code><\/pre>\n<h2>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b:<\/h2>\n<p>  \u0412\u0440\u0435\u043c\u044f \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f: 55\u043c\u0438\u043d\u0443\u0442<br \/>  \u0420\u0430\u0437\u043c\u0435\u0440 \u0432\u0438\u0434\u0435\u043e: 75\u043c\u0431<br \/>  \u0417\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043e\u0434\u0431\u043e\u0440 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u0434\u043d\u044f \u0437\u0430\u0432\u0440\u0430\u0448\u043d\u0435\u0433\u043e, \u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u0440\u0435\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b \u0446\u0435\u043b\u044c \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0432\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c. \u042f \u043e\u043f\u0430\u0441\u0430\u043b\u0441\u044f, \u0447\u0442\u043e \u0441\u043a\u043b\u0435\u0435\u043d\u043d\u044b\u0435 \u043a\u0443\u0441\u043e\u0447\u043a\u0438 \u0441\u043a\u043b\u0435\u044f\u0442\u0441\u044f \u043f\u043b\u043e\u0445\u043e \u0438 \u0431\u0443\u0434\u0443\u0442 \u0434\u0435\u0440\u0433\u0430\u043d\u044c\u044f \u0432 \u044d\u0442\u0438\u0445 \u043c\u043e\u043c\u0435\u043d\u0442\u0430\u0445, \u043d\u043e \u043d\u0435\u0442, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0448\u0435\u043b \u0440\u043e\u0432\u043d\u043e, \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u0440\u044b\u0432\u043a\u043e\u0432.<\/p>\n<p>  \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u0434\u043b\u044f 1080p \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043e\u043a\u043e\u043b\u043e \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0430 \u043f\u043e\u0442\u043e\u043a, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043c\u043d\u043e\u0433\u043e. \u0422\u0430\u043a\u0436\u0435 \u0437\u0430\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u043f\u043e\u0434 \u043a\u043e\u043d\u0435\u0446 \u0441\u0442\u0430\u0434\u043e \u0431\u0435\u0436\u0438\u0442 \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0441\u0430\u043c\u043e\u0433\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0431\u0430\u0440\u0430\u043d\u0430 \u0438 \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a Ryzen \u0438 i7 \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0438 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, Xeon \u0438 i5 \u0435\u0449\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u043b\u0438 \u043f\u044b\u0445\u0442\u0435\u0442\u044c \u043d\u0430\u0434 \u0441\u0432\u043e\u0438\u043c\u0438 \u043a\u0443\u0441\u043e\u0447\u043a\u0430\u043c\u0438. \u0422.\u0435. \u0431\u043e\u043b\u0435\u0435 \u0434\u043b\u0438\u043d\u043d\u043e\u0435 \u0432\u0438\u0434\u0435\u043e \u0432 \u0446\u0435\u043b\u043e\u043c \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0431\u044b \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043e\u0431\u0449\u0438\u043c fps \u0437\u0430 \u0441\u0447\u0435\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u044f\u0434\u0440\u0430 \u0443\u0441\u043f\u0435\u043b\u0438 \u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044e \u043d\u0430 \u043e\u0434\u043d\u043e\u043c Ryzen 5 1600 \u0441 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e, \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0447\u0442\u043e \u044f \u0438\u043c\u0435\u043b \u0431\u044b\u043b\u043e \u043e\u043a\u043e\u043b\u043e 1.5 fps. \u0417\u0434\u0435\u0441\u044c \u0436\u0435, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 10 \u043c\u0438\u043d\u0443\u0442 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u2014 \u044d\u0442\u043e \u0434\u043e\u0431\u0438\u0432\u043a\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u043a\u0443\u0441\u043e\u0447\u043a\u043e\u0432 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u044f\u0434\u0440\u0430\u043c\u0438, \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043e\u043a\u043e\u043b\u043e 5-6 fps, \u0447\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u0442\u0430\u043a \u043c\u0430\u043b\u043e \u0434\u043b\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0435\u043a\u0430. \u0412\u043e\u0442 \u0438 \u0432\u0441\u0435, \u0447\u0435\u043c \u044f \u0445\u043e\u0442\u0435\u043b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f, \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u043a\u043e\u043c\u0443-\u043d\u0438\u0431\u0443\u0434\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f.<\/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=\"https:\/\/habr.com\/ru\/post\/511512\/\"> https:\/\/habr.com\/ru\/post\/511512\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/511512\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/cbe\/5e1\/4e2\/cbe5e14e20c129a1efedb3ecb4e27ebd.jpg\" alt=\"image\"><\/p>\n<h2>\u041f\u0440\u043e\u043b\u043e\u0433<\/h2>\n<p>  \u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438, \u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0441\u044c \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u0434\u0435\u043a\u0430\u043c\u0438 \u0438 \u0442\u0435\u043c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u043d\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0435\u0435 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0438\u043a\u0430\u043c\u0438. \u0412 \u0441\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0441\u043b\u0435 H264 \u0432\u044b\u0448\u0435\u043b HEVC, \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u0431\u0435\u0437\u0443\u043c\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0435\u0433\u043e \u043f\u043e\u0449\u0443\u043f\u0430\u0442\u044c, \u043d\u043e \u043c\u043e\u0435 \u0436\u0435\u043b\u0435\u0437\u043e \u0442\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u043e \u0436\u0435\u043b\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0435\u0433\u043e. \u0421\u0435\u0439\u0447\u0430\u0441 \u0436\u0435 \u0436\u0435\u043b\u0435\u0437\u043e \u043f\u043e\u0434\u0442\u044f\u043d\u0443\u043b\u043e\u0441\u044c, \u043d\u043e \u0438 HEVC \u0434\u0430\u0432\u043d\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u043b, \u0435\u043c\u0443 \u043d\u0430 \u0441\u043c\u0435\u043d\u0443 \u0436\u0430\u0436\u0434\u0435\u0442 \u043f\u0440\u0438\u0434\u0442\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 AV1, \u043e\u0431\u0435\u0449\u0430\u044e\u0449\u0438\u0439 \u043d\u0430\u043c \u0434\u043e 50% \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 1080p H264, \u043d\u043e \u0435\u0441\u043b\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 HEVC \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0432\u0430\u0442\u043e\u0439 (\u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0441 H264), \u0442\u043e AV1 \u0441\u043e \u0441\u0432\u043e\u0438\u043c ~0.2 fps \u0434\u0435\u043c\u043e\u0440\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e. \u041a\u043e\u0433\u0434\u0430 \u0447\u0442\u043e-\u0442\u043e \u043a\u043e\u0434\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e, \u0442\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 10 \u043c\u0438\u043d\u0443\u0442\u043d\u044b\u0439 \u0440\u043e\u043b\u0438\u043a, \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u043a\u043e\u043b\u043e \u0441\u0443\u0442\u043e\u043a. \u0422.\u0435. \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u0438\u0442\u0440\u0435\u0439\u0442\u0430, \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0436\u0434\u0430\u0442\u044c \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0447\u0430\u0441\u0430\u043c\u0438, \u0430 \u0434\u043d\u044f\u043c\u0438\u2026<\/p>\n<p>  \u0418 \u0432\u043e\u0442, \u043a\u0430\u043a-\u0442\u043e \u0440\u0430\u0437, \u043b\u044e\u0431\u0443\u044f\u0441\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u043c \u0437\u0430\u043a\u0430\u0442\u043e\u043c (\u043a\u043e\u0434\u0435\u043a\u0430 H264), \u044f \u043f\u043e\u0434\u0443\u043c\u0430\u043b: \u00ab\u0410 \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u043d\u0430\u0442\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0430 AV1 \u0432\u0441\u0435 \u0436\u0435\u043b\u0435\u0437\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e?\u00bb  <\/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-307153","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/307153","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=307153"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/307153\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=307153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=307153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=307153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}