{"id":411404,"date":"2024-06-29T21:56:56","date_gmt":"2024-06-29T21:56:56","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=411404"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-06-29T21:56:56","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=411404","title":{"rendered":"<span>\u0414\u043e\u00a0\u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0442\u0430\u043b\u043e \u0441\u0442\u0440\u0438\u043c\u043e\u043c<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u0442 \u043a\u043d\u043e\u043f\u043a\u0443\u00a0\u2014 \u0438\u00a0\u0432\u0436\u0443\u0445, \u0443\u0436\u0435 \u0441\u0442\u0440\u0438\u043c\u0438\u0442 \u0432\u00a0\u0441\u0435\u0442\u044c, \u0430\u00a0\u043a\u00a0\u0435\u0433\u043e \u0441\u0442\u0440\u0438\u043c\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438. \u0412\u00a0\u043f\u043b\u0435\u0435\u0440\u0435 \u0432\u00a0\u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0433\u0440\u043e\u043c\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430: \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0437\u0430\u0431\u0438\u0440\u0430\u044e\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u00a0\u0437\u0432\u0443\u043a, \u043a\u043e\u0434\u0438\u0440\u0443\u044e\u0442, \u043f\u0430\u043a\u0443\u044e\u0442 \u0432\u00a0\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u0438\u00a0\u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u00a0\u043c\u0435\u0441\u0442\u043d\u044b\u0439 \u0440\u0430\u0437\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u043f\u043e\u0440\u0442, \u0433\u0434\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0441\u043d\u043e\u0432\u0430 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u044e\u0442 \u043d\u0430\u00a0\u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0432\u00a0\u043d\u0435\u0433\u043e \u0432\u0438\u0434\u0435\u043e \u0438\u00a0\u0430\u0443\u0434\u0438\u043e. \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0441\u0438\u043b\u0438\u0439! <br \/>\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041d\u0438\u043a\u0438\u0442\u0430 \u0422\u0430\u0440\u0445\u043e\u0432, \u044f <a href=\"https:\/\/cleverpumpkin.ru\/development\/ios\/?utm_source=habr&amp;utm_medium=article&amp;utm_content=streaming\">iOS-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a CleverPumpkin<\/a>, \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e\u00a0\u0441\u043f\u043e\u0441\u043e\u0431\u0430\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0433\u043e \u0432\u0435\u0449\u0430\u043d\u0438\u044f \u043d\u0430\u00a0\u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u00a0\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c SRT.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3c7\/050\/6cc\/3c70506ccf4cd83d28d364209e374671.png\" width=\"1560\" height=\"975\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3c7\/050\/6cc\/3c70506ccf4cd83d28d364209e374671.png\"\/><\/figure>\n<h2>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b<\/h2>\n<p>\u041a\u0430\u0436\u0434\u043e\u0435 \u0432\u0438\u0434\u0435\u043e \u0432\u00a0\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043e\u0434\u0438\u043d \u0438\u00a0\u0442\u043e\u0442\u00a0\u0436\u0435 \u043f\u0443\u0442\u044c \u043e\u0442\u00a0\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u043a\u00a0\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c: \u0435\u0441\u0442\u044c \u043a\u0430\u043c\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0441\u043b\u043e\u0432\u043d\u043e 30 \u0440\u0430\u0437 \u0432\u00a0\u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0432\u044b\u0434\u0430\u0435\u0442 \u043d\u0430\u043c raw-\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0438\u00a0\u0442\u0430\u043a\u043e\u0439\u00a0\u0436\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0430\u0443\u0434\u0438\u043e, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0434\u0430\u0435\u0442 \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0435 raw-\u0434\u0430\u043d\u043d\u044b\u0435. \u0414\u043b\u044f\u00a0\u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0438\u0445\u00a0\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043a\u043e\u0434\u0435\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0436\u0438\u043c\u0430\u044e\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044e\u0442 \u0432\u0435\u0441 \u0438\u00a0\u0442\u0440\u0430\u0444\u0438\u043a \u0432\u00a0\u0440\u0430\u0437\u044b. \u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0448\u0438 \u0430\u0443\u0434\u0438\u043e- \u0438\u00a0\u0432\u0438\u0434\u0435\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u00a0\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u00a0\u0441\u0442\u0440\u0438\u043c\u0430\u0445 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0438\u00a0\u043f\u0430\u043a\u0443\u0435\u0442 \u0432\u00a0\u043d\u0435\u043a\u0438\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u00a0\u0441\u0435\u0442\u0435\u0432\u043e\u043c \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0435 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u00a0\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442.<\/p>\n<p>\u0412\u0441\u0435 \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u00a0\u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0438 \u00ab\u043d\u0430\u0447\u0430\u0442\u044c \u0441\u0442\u0440\u0438\u043c\u00bb.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/3f1\/13a\/f99\/3f113af99a0b5062e734caee1c1887e6.jpg\" width=\"1280\" height=\"720\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3f1\/13a\/f99\/3f113af99a0b5062e734caee1c1887e6.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430\u00a0\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043a\u0430\u0434\u0440\u043e\u0432 \u0438\u00a0\u0431\u0438\u0442\u0440\u0435\u0439\u0442\u0430 \u0434\u043b\u044f\u00a0\u0432\u0438\u0434\u0435\u043e\u043a\u043e\u0434\u0435\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u00a0\u0440\u0430\u0431\u043e\u0442\u0443 \u0432\u00a0\u0441\u0435\u0442\u0438: \u0447\u0435\u043c \u0432\u044b\u0448\u0435 \u0431\u0438\u0442\u0440\u0435\u0439\u0442, \u0442\u0435\u043c, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u044b\u0448\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u00a0\u0441\u0435\u0442\u0438. \u0412\u00a0\u0430\u0443\u0434\u0438\u043e-\u043a\u043e\u0434\u0435\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 Sample Rate \u0438\u00a0\u0431\u0438\u0442\u0440\u0435\u0439\u0442. \u0427\u0435\u043c \u0432\u044b\u0448\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0442\u0435\u043c \u043b\u0443\u0447\u0448\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0432\u0443\u043a\u0430.<\/p>\n<p>\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f \u043d\u0430\u00a0\u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442, \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u043b\u044f\u00a0\u0434\u0435\u043a\u043e\u0434\u0438\u043d\u0433\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043f\u043e\u043d\u044f\u043b\u0430, \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u041f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430\u00a0\u2014 \u0437\u0435\u0440\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043e\u0442\u0434\u0430\u044e\u0449\u0435\u0439: \u0438\u0437\u00a0\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u043f\u043e\u00a0\u0441\u0435\u0442\u0435\u0432\u043e\u043c\u0443 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0443 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u0434\u0435\u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u043e\u0440 \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u00a0\u043f\u043e\u0442\u043e\u043a\u0438 \u0432\u0438\u0434\u0435\u043e \u0438\u00a0\u0430\u0443\u0434\u0438\u043e. \u041c\u044b\u00a0\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u0430\u043a\u0435\u0442 \u0441\u043e\u00a0\u0441\u0436\u0430\u0442\u044b\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u0432\u0438\u0434\u0435\u043e\u043a\u043e\u0434\u0435\u043a \u0438\u00a0\u0434\u0435\u043a\u043e\u0434\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432\u00a0\u0441\u0435\u0440\u0438\u044e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0430\u00a0\u0441\u0436\u0430\u0442\u043e\u0435 \u0430\u0443\u0434\u0438\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u0430\u0443\u0434\u0438\u043e\u043a\u043e\u0434\u0435\u043a\u00a0\u2014 \u0438\u00a0\u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u0437\u0432\u0443\u043a.<\/p>\n<p>\u042d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0437\u0440\u0438\u0442\u0435\u043b\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043a\u00a0\u0441\u0442\u0440\u0438\u043c\u0443.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/530\/b39\/c41\/530b39c41a29ffa014cd01d6ad95d4a5.jpg\" width=\"1280\" height=\"720\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/530\/b39\/c41\/530b39c41a29ffa014cd01d6ad95d4a5.jpg\" data-blurred=\"true\"\/><\/figure>\n<h2>\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b SRT<\/h2>\n<p>\u041f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u00a0\u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u043c \u0441\u00a0\u0432\u0438\u0434\u0435\u043e \u0438\u00a0\u0430\u0443\u0434\u0438\u043e \u0432\u00a0\u0441\u0442\u0440\u0438\u043c\u0430\u0445 \u043d\u0430\u00a0\u043f\u0440\u0438\u043c\u0435\u0440\u0435 SRT\u00a0\u2014 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u0434\u043b\u044f\u00a0\u043c\u0435\u0434\u0438\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f\u00a0\u0440\u0430\u0431\u043e\u0442\u044b \u0432\u00a0\u043f\u043b\u043e\u0445\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0441\u0435\u0442\u0438. \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043c\u044b\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u043d\u0430\u0434 \u043e\u0434\u043d\u0438\u043c \u0438\u0437\u00a0\u0441\u0430\u043c\u044b\u0445 \u0441\u0432\u0435\u0436\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 CleverPumpkin\u00a0\u2014\u00a0<a href=\"https:\/\/cleverpumpkin.ru\/portfolio\/dater\/?utm_source=habr&amp;utm_medium=article&amp;utm_content=streaming\">Dater<\/a>.<\/p>\n<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u0441\u00a0\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c \u043f\u043e\u0431\u0443\u043a\u0432\u0435\u043d\u043d\u043e.<\/p>\n<p>S\u00a0\u2014 secure, \u0442\u043e\u00a0\u0435\u0441\u0442\u044c, \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e.<\/p>\n<p>R\u00a0\u2014 reliable, \u0447\u0442\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430\u00a0\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0439 \u043f\u043e\u0442\u0435\u0440\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u0440\u0438 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0432\u00a0\u0441\u0435\u0442\u0438 \u0438\u00a0\u043c\u043e\u0436\u0435\u0442 \u043b\u0438\u0431\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c, \u043b\u0438\u0431\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0442\u0435\u0440\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0421\u00a0\u0431\u0443\u043a\u0432\u043e\u0439 \u0422\u00a0\u0432\u0441\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u00a0\u2014 \u044d\u0442\u043e transport, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f S \u0438\u00a0R\u00a0\u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u00a0\u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c \u0441\u0435\u0442\u0438.<\/p>\n<p>\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u043c \u0438\u00a0\u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u00a0UDP-\u0441\u043e\u043a\u0435\u0442\u0430\u0445. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u00a0\u2014 \u0442\u043e\u0436\u0435 \u0441\u043e\u043a\u0435\u0442\u044b, \u043d\u043e\u00a0\u0443\u0436\u0435 SRT-\u0441\u043e\u043a\u0435\u0442\u044b. \u0421\u0430\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043d\u0430 C++, \u043d\u043e\u00a0\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u043e\u0434\u0443\u043c\u0430\u043b\u0438 \u0438\u00a0\u0432\u044b\u043d\u0435\u0441\u043b\u0438 \u0432\u0441\u0435 \u0432\u00a0\u0421\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0434\u0430\u0432 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c SRT \u043d\u0430\u00a0\u043b\u044e\u0431\u043e\u043c \u0442\u0430\u043f\u043e\u0447\u043a\u0435 \u0441\u00a0\u0432\u044b\u0445\u043e\u0434\u043e\u043c \u0432\u00a0\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442. \u0422\u0430\u043a\u0436\u0435 \u0437\u0430\u00a0\u0441\u0447\u0435\u0442 \u0421\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u00a0Swift, \u043d\u043e\u00a0\u044d\u0442\u043e \u043d\u0435\u0441\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b SRT \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u00a0\u0441\u0435\u0431\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443, \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u00a0\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0432\u0435\u0440\u044f\u044f \u043f\u0430\u043a\u0435\u0442\u044b, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432\u00a0\u0438\u0445\u00a0\u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f\u00a0\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0412\u00a0\u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043b\u044e\u0431\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u043e\u00a0\u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e MPEG-TS\u00a0\u2014 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0434\u043b\u044f\u00a0\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0430\u0443\u0434\u0438\u043e \u0438\u00a0\u0432\u0438\u0434\u0435\u043e \u0432\u00a0\u0444\u043e\u0440\u043c\u0430\u0442\u0435 MPEG2.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/62d\/140\/1b8\/62d1401b8a1b810997e08c1af67d5907.jpg\" width=\"1280\" height=\"720\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/62d\/140\/1b8\/62d1401b8a1b810997e08c1af67d5907.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>MPEG-TS\u00a0\u2014 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u00a0\u0432\u0435\u0449\u0430\u043d\u0438\u0438 \u0438\u00a0\u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435\u00a0\u043e\u0434\u0438\u043d \u0441\u0442\u0440\u0438\u043c, \u0430\u00a0\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e, \u0447\u0442\u043e\u0431\u044b \u0443\u0436\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043c\u043e\u0433\u043b\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b.<\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0435 \u043e\u00a0\u0432\u0435\u0449\u0430\u043d\u0438\u0438, \u0430\u0443\u0434\u0438\u043e \u0438\u00a0\u0432\u0438\u0434\u0435\u043e\u043f\u043e\u0442\u043e\u043a\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432\u00a0\u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u043e\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442 PES, PSI \u0438\u00a0NULL \u043f\u0430\u043a\u0435\u0442\u044b. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f\u00a0\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0431\u0438\u0442\u0440\u0435\u0439\u0442\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u043c \u0442\u0435\u043b\u0435\u0432\u0438\u0434\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u044b, MPEG-TS \u0443\u043c\u0435\u0435\u0442 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u00a0\u043f\u043e\u0442\u043e\u043a \u043f\u0443\u0441\u0442\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b. PID (Program ID) \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430 \u0441\u0442\u0440\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d \u0438\u00a0\u0440\u0430\u0432\u0435\u043d 0x1FFF.<\/p>\n<p>PES\u00a0\u2014 \u044d\u0442\u043e Packet Elementary Stream. \u042d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 Elementary Stream, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u00a0\u0432\u0438\u0434\u0435\u043e \u0438\u043b\u0438 \u0430\u0443\u0434\u0438\u043e. Elementary Stream \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432\u00a0\u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a (TS), \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u0442\u0440\u043e\u0433\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d 188 \u0431\u0430\u0439\u0442\u0430\u043c\u0438. \u041a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a (ES) \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0439 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 PID, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u043d\u0430\u0431\u043e\u0440\u044b\u00a0ES \u0438\u00a0\u0441\u043a\u043b\u0435\u0438\u0442\u044c \u0432\u00a0\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 PES \u043f\u0430\u043a\u0435\u0442.<\/p>\n<p>PSI\u00a0\u2014 Program Specific Information\u00a0\u2014 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u00a0\u0441\u0435\u0431\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c (PAT) \u0438\u00a0\u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c (\u0420\u041c\u0422). \u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a\u0438\u0435 \u0441\u0442\u0440\u0438\u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f, \u0430\u00a0\u0441\u0430\u043c\u0430 Program Map Table (\u0420\u041c\u0422) \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 PID \u0438\u00a0\u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/8f4\/b27\/193\/8f4b27193587482b6b235c77c38053e2.jpg\" width=\"1280\" height=\"720\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8f4\/b27\/193\/8f4b27193587482b6b235c77c38053e2.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u0418\u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b, \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430\u00a0PAT, \u0433\u0434\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u043e, \u0447\u0442\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431\u00a0\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0445 \u043d\u0430\u0441 \u043a\u0430\u043d\u0430\u043b\u0430\u0445 \u043b\u0435\u0436\u0438\u0442 \u0432\u00a0\u0420\u041c\u0422 \u043f\u043e\u0434 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 PID. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u00a0\u0420\u041c\u0422 \u0437\u0430\u0434\u0430\u043d PID 51. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u00a0Program Table \u043f\u043e\u00a0PID 51 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431\u00a0\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0445 \u043d\u0430\u0441 \u0441\u0442\u0440\u0438\u043c\u0430\u0445.<\/p>\n<h2>\u0421\u043f\u043e\u0441\u043e\u0431\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0433\u043e \u0432\u0435\u0449\u0430\u043d\u0438\u044f<\/h2>\n<p>\u0412\u0430\u0440\u0438\u0430\u043d\u0442 1. \u0422\u0440\u0443\u0434\u043e\u0435\u043c\u043a\u0438\u0439. \u041c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u0430\u043c\u043e\u043c\u0443. \u042d\u0442\u043e \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e \u0438\u00a0\u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 MPEG-TS, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0430\u043c \u043f\u043e\u00a0\u0441\u0435\u0431\u0435 \u043d\u0435\u00a0\u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442.<\/p>\n<p>\u0412\u0430\u0440\u0438\u0430\u043d\u0442 2. \u0414\u043e\u0440\u043e\u0433\u043e\u0439 \u0438\u00a0\u043e\u043f\u0430\u0441\u043d\u044b\u0439. \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u0442\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043d\u043e\u00a0\u0438\u00a0\u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u043c\u0438\u043d\u0443\u0441\u044b. \u041d\u0435\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043d\u0430\u0434 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u043d\u0438\u0447\u0435\u0433\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0435\u00a0\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f\u00a0\u2014 \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u0435\u00a0\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442\u0432\u0435\u0442.<\/p>\n<p>\u0412\u0430\u0440\u0438\u0430\u043d\u0442 3. \u0411\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439, \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439, \u043d\u043e\u00a0\u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0437\u0430\u043c\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u00a0\u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c VLC, \u043a\u0430\u043a \u043c\u044b\u00a0\u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043d\u0430\u00a0\u043f\u0440\u043e\u0435\u043a\u0442\u0435 Dater. VLC \u043c\u043e\u0436\u043d\u043e \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043f\u043e\u00a0\u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043f\u043b\u0435\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Plug &amp; Play. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d\u00a0\u0438\u00a0\u0431\u044b\u043b \u043d\u0430\u043c\u0438 \u0432\u044b\u0431\u0440\u0430\u043d \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u00a0\u2014 \u0438\u0437-\u0437\u0430 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f \u0432\u00a0\u043f\u0440\u043e\u0435\u043a\u0442.<\/p>\n<p>\u0412\u0430\u0440\u0438\u0430\u043d\u0442 4. \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438\u00a0\u0442\u043e\u0436\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439\u00a0\u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c FFMpeg. \u042d\u0442\u0430 \u0443\u0442\u0438\u043b\u0438\u0442\u0430, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u043d\u0430\u00a0\u043a\u0430\u0436\u0434\u043e\u043c \u041c\u0430\u043a\u0431\u0443\u043a\u0435. \u041e\u043d\u0430 \u043d\u0443\u0436\u043d\u0430 \u0434\u043b\u044f\u00a0\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u044e\u0431\u044b\u0445 \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a, \u0432\u0438\u0434\u0435\u043e \u0432\u043e\u00a0\u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e\u00a0\u2014 \u0432\u00a0gif, \u0432\u00a0\u043d\u0430\u0431\u043e\u0440 \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a, \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u0432\u0438\u0434\u0435\u043e-\u043a\u043e\u0434\u0435\u043a\u0438 \u0438\u00a0\u0442.\u00a0\u0434. \u041d\u043e\u00a0\u043e\u0431\u00a0\u044d\u0442\u043e\u043c \u043f\u043e\u0437\u0436\u0435. \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043f\u043e\u00a0\u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b 3 \u0438\u00a04.<\/p>\n<h2>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441\u00a0VLC<\/h2>\n<p>\u041f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043d\u0430\u00a0\u043f\u0440\u043e\u0435\u043a\u0442\u0435 Dater \u043c\u044b\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0435\u0433\u043e \u0441\u00a0\u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439.<\/p>\n<p>\u041f\u043b\u044e\u0441\u044b VLC:<\/p>\n<ul>\n<li>\n<p>\u041e\u043d\u00a0\u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0432\u0441\u0435, \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>\u0423\u00a0\u043d\u0435\u0433\u043e \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e.<\/p>\n<\/li>\n<li>\n<p>\u0411\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 open source.<\/p>\n<\/li>\n<li>\n<p>\u041e\u043d\u00a0\u0440\u0430\u0437\u0431\u0438\u0442 \u043d\u0430\u00a0\u043c\u043e\u0434\u0443\u043b\u0438, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043b\u0435\u0433\u043a\u043e \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u00a0\u043f\u0440\u043e\u0435\u043a\u0442\u0443.<\/p>\n<\/li>\n<\/ul>\n<p>\u041c\u0438\u043d\u0443\u0441:<\/p>\n<p>\u041e\u043d\u00a0\u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0438\u00a0\u0431\u043e\u043b\u044c\u0448\u043e\u0439\u00a0\u2014 \u044d\u0442\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043f\u043b\u0435\u0435\u0440. \u0427\u0442\u043e\u0431\u044b \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c, \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043b\u0435\u0437\u0442\u044c \u0432\u00a0\u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0438\u00a0\u0442\u0430\u043c \u0447\u0442\u043e-\u0442\u043e \u043c\u0435\u043d\u044f\u0442\u044c, \u043f\u043e\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0430\u043c \u043f\u043b\u0435\u0435\u0440 \u0438\u00a0\u0442.\u00a0\u0434. \u0412\u0441\u0435 \u044d\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0435\u043c\u0430\u043b\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438\u00a0\u2014 \u043f\u0435\u0440\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u043d\u0430\u00a0\u041c\u0430\u043a\u0431\u0443\u043a\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 40 \u043c\u0438\u043d\u0443\u0442. \u0421\u0430\u043c\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043b\u0435\u0437\u0442\u044c \u0432\u00a0\u00ab\u043f\u043e\u0434\u043a\u0430\u043f\u043e\u0442\u043d\u0443\u044e\u00bb \u0447\u0430\u0441\u0442\u044c \u043f\u043b\u0435\u0435\u0440\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u0430 \u0435\u0449\u0435 \u0438\u00a0\u0442\u0435\u043c, \u0447\u0442\u043e \u0441\u0430\u043c \u043a\u043e\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e.<\/p>\n<p>\u0423\u0441\u043f\u0435\u0448\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u00a0VLC \u0432\u0441\u0435 \u044d\u0442\u043e \u043d\u0435\u00a0\u043c\u0435\u0448\u0430\u0435\u0442, \u0445\u043e\u0442\u044f \u0438\u00a0\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438. \u0414\u043b\u044f\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u0438\u043c\u043e\u0432 \u0432\u00a0\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 Dater \u043c\u044b\u00a0\u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u00a0VLC: \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0438\u00a0\u043f\u043e\u0434\u0431\u0438\u0440\u0430\u043b\u0438 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u0435\u0449\u0430\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u043e\u00a0\u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430\u043c \u0438\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0443 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/be0\/6c0\/9d7\/be06c09d781bd0cc9d7bfcad708b0670.jpg\" width=\"1280\" height=\"720\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/be0\/6c0\/9d7\/be06c09d781bd0cc9d7bfcad708b0670.jpg\" data-blurred=\"true\"\/><\/figure>\n<h2>\u041a\u0430\u043a\u0438\u0435 \u043f\u043b\u044e\u0441\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435?<\/h2>\n<p>\u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0435\u0433\u043a\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0432\u00a0\u043f\u0440\u043e\u0435\u043a\u0442. \u042d\u0442\u043e, \u043f\u043e\u00a0\u0441\u0443\u0442\u0438, \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043b\u0435\u0435\u0440, \u0443\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0441\u0432\u043e\u0439 view (\u0432\u044c\u044e\u0445\u0443, \u043f\u0440\u043e\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f). \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u043b\u0435\u0435\u0440 \u0438\u00a0\u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c view \u0432\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441.<\/p>\n<ul>\n<li>\n<p>\u0412\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u0437\u00a0\u043a\u043e\u0440\u043e\u0431\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c.<\/p>\n<\/li>\n<\/ul>\n<p>\u041c\u0438\u043d\u0443\u0441\u0430\u043c\u0438 \u0441\u0442\u0430\u043b\u0438:<\/p>\n<ul>\n<li>\n<p>\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 SRT \u043d\u0430\u00a0iOS, \u0435\u0435\u00a0\u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0440\u0438\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0448\u0443\u043c\u043e\u043f\u043e\u0434\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u00a0\u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/91c\/39a\/ebc\/91c39aebca4820946ee22fca2aaf7a89.jpg\" width=\"1280\" height=\"720\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/91c\/39a\/ebc\/91c39aebca4820946ee22fca2aaf7a89.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 VLC \u0442\u0430\u043a\u043e\u0432\u0430, \u0447\u0442\u043e \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a\u00a0\u043f\u043e\u0442\u043e\u043a\u0430\u043c, \u0432\u00a0\u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0448 SRT. \u041d\u0438\u0447\u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u043c\u044b\u00a0\u043d\u0435\u00a0\u0434\u0435\u043b\u0430\u043b\u0438\u00a0\u2014 \u043f\u043e\u00a0\u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438 \u0441\u00a0\u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 reconnect interval \u0438\u00a0maximum reconnected attempts. \u042d\u0442\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u0440\u043e\u043a\u0438\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u00a0\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 VLC.<\/p>\n<p>\u0412\u00a0\u0430\u0443\u0434\u0438\u043e\u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u0438 Audio Unity, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0434\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f\u00a0\u0432\u044b\u0432\u043e\u0434\u0430 \u0437\u0432\u0443\u043a\u0430, \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f VoiceProcessingIO \u0432\u00a0AudioUnit \u043f\u043b\u0435\u0435\u0440\u0430.<\/p>\n<h2>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 FFMpeg<\/h2>\n<p>FFMpeg\u00a0\u2014 \u044d\u0442\u043e, \u043f\u043e\u0436\u0430\u043b\u0443\u0439, \u0441\u0430\u043c\u0430\u044f \u0443\u0434\u043e\u0431\u043d\u0430\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u0434\u043b\u044f\u00a0\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430\u0448\u0438\u0445 \u0437\u0430\u0434\u0430\u0447.<\/p>\n<p>\u041f\u043b\u044e\u0441\u044b:<\/p>\n<ul>\n<li>\n<p>FFMpeg \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0432\u0441\u0435, \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>\u0423\u00a0\u043d\u0435\u0433\u043e \u0442\u0430\u043a\u043e\u0435\u00a0\u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 open source.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u0442\u044c \u0442\u0430\u00a0\u0436\u0435\u00a0\u0441\u0430\u043c\u0430\u044f \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0441\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u00a0\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432\u0438\u0434\u0435\u043e. \u0425\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043f\u043e\u00a0\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439\u00a0\u2014 FFMpeg \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u0442. \u0425\u043e\u0442\u0438\u0442\u0435 \u0432\u0438\u0434\u0435\u043e\u043f\u043b\u0435\u0435\u0440\u00a0\u2014 \u0442\u043e\u0436\u0435 FFMpeg. \u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u043c\u0443 \u0432\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u0438\u0435 \u043a\u0440\u0443\u043f\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0434\u043b\u044f\u00a0\u0441\u0432\u043e\u0438\u0445 \u0432\u0438\u0434\u0435\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0443 \u0443\u0442\u0438\u043b\u0438\u0442\u0443.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/c1a\/f35\/0fc\/c1af350fcbd4356caa5273fa26090cc9.jpg\" width=\"1280\" height=\"720\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c1a\/f35\/0fc\/c1af350fcbd4356caa5273fa26090cc9.jpg\" data-blurred=\"true\"\/><\/figure>\n<h2>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f FFMpeg<\/h2>\n<p>\u041a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u043e FFMpegKit, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0447\u0435\u043c\u0443 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u041d\u0430\u00a0\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0432\u0438\u0434\u0438\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442 git clone, cd\u00a0ffmpeg-kit \u0438\u00a0\u0437\u0430\u043f\u0443\u0441\u043a \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0434\u043b\u044f\u00a0iOS. \u0412\u00a0\u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043c\u044b\u00a0\u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u043b\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 SRT \u0438\u00a0\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 VideoToolBox \u0434\u043b\u044f\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0434\u0435\u043a\u043e\u0434\u0438\u043d\u0433\u0430. \u0421\u043c. \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/fd0\/ee2\/abc\/fd0ee2abc320b5b9784d27a7ff676448.jpg\" width=\"1280\" height=\"720\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fd0\/ee2\/abc\/fd0ee2abc320b5b9784d27a7ff676448.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u041d\u0430\u00a0\u0432\u044b\u0445\u043e\u0434\u0435 \u043c\u044b\u00a0\u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0440\u0430\u0437\u0443 \u0432\u043e\u0441\u0435\u043c\u044c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043f\u043e-\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438: ffmpegkit. framework, Libavcodec. framework, Libavdevice. framework, Libavfilter. framework, Libswresample. framework, Libswscale. framework, Libavformat. framework, Libavutil.framework.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/3d3\/c71\/3f5\/3d3c713f5a93f92e2078755eaef8db25.jpg\" width=\"1280\" height=\"720\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3d3\/c71\/3f5\/3d3c713f5a93f92e2078755eaef8db25.jpg\" data-blurred=\"true\"\/><\/figure>\n<h2>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u043b\u0435\u0435\u0440<\/h2>\n<p>\u041c\u044b\u00a0\u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043b\u0435\u0435\u0440\u0430 \u0432\u044b\u0431\u0440\u0430\u043b\u0438 Objective-C, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e API \u0441\u0430\u043c\u043e\u0433\u043e FFMpeg \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 C, \u0447\u0442\u043e \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441\u00a0\u043d\u0438\u043c \u0432\u00a0Swift. \u0422\u043e\u00a0\u0435\u0441\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430, \u043d\u043e\u00a0\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e, \u0432\u00a0\u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442\u00a0Objective-C, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0421\u00a0\u0438\u00a0\u043b\u0435\u0433\u0447\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434. \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0442\u0440\u0435\u0434 \u0438\u00a0\u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u0441\u044f \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c FFMpeg: \u0431\u0435\u0440\u0435\u043c URL, C-\u0441\u0442\u0440\u043e\u043a\u0443, \u0434\u0430\u0435\u043c FFMpeg \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0442\u043e\u0442 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u0438\u043d\u043f\u0443\u0442 \u0438\u0437\u00a0libavformat. \u041a\u00a0\u043d\u0430\u043c \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u043a\u043e\u0434. \u0417\u0430\u0442\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u00a0\u0441\u0442\u0440\u0438\u043c\u0435, \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u00a0\u2014 \u0438\u00a0\u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u0443\u00a0\u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u00a0\u043a\u043e\u0434\u0435\u043a\u0430\u0445, \u0430\u0443\u0434\u0438\u043e-\u043a\u043e\u0434\u0435\u043a\u0430\u0445, \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u0434\u0435\u043a\u0435 \u0438\u00a0\u043e\u00a0\u0440\u0430\u0437\u043c\u0435\u0440\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b\u00a0\u0438\u0449\u0435\u043c \u043a\u043e\u0434\u0435\u043a, \u0430\u00a0\u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043d\u0443\u0436\u043d\u044b\u0439 \u0432\u0438\u0434\u0435\u043e\u043f\u043e\u0442\u043e\u043a, \u043f\u0440\u043e\u0445\u043e\u0434\u044f \u043f\u043e\u00a0\u0432\u0441\u0435\u043c \u0441\u0442\u0440\u0438\u043c\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u0442\u044c \u0432\u00a0\u043f\u043e\u0442\u043e\u043a\u0435. \u0418\u0449\u0435\u043c \u0441\u0442\u0440\u0438\u043c \u0441\u00a0\u043d\u0443\u0436\u043d\u044b\u043c \u0442\u0438\u043f\u043e\u043c \u0432\u0438\u0434\u0435\u043e, \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u0435\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441. \u041d\u0430\u0445\u043e\u0434\u0438\u043c \u043a\u043e\u0434\u0435\u043a \u0438\u00a0\u0431\u0435\u0440\u0435\u043c \u0435\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u00a0\u2014 Codec\u00a0ID. \u0412\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u044c \u043f\u043e\u0434 \u043a\u043e\u0434\u0435\u043a \u0438\u00a0\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0435 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435. \u0412\u00a0\u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b\u00a0\u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0434\u0430\u0435\u043c \u043f\u0438\u043a\u0441\u0435\u043b\u044c-\u0444\u043e\u0440\u043c\u0430\u0442 VideoToolBox.<\/p>\n<p>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0435 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435\u00a0\u2014 \u0432\u00a0\u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u00a0iOS \u043e\u043d\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043d\u0430\u0439\u0434\u0435\u0442\u0441\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e VideoToolBox \u0435\u0441\u0442\u044c \u043d\u0430\u00a0\u0432\u0441\u0435\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0441\u00a0\u044d\u0442\u043e\u0439\u00a0\u041e\u0421.<\/p>\n<p>\u041d\u0430\u0448\u043b\u0438 hardware device contexts, \u0437\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u0435\u0433\u043e \u0432\u00a0\u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043a\u043e\u0434\u0435\u043a\u0430. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u0434\u0435\u043a\u00a0\u2014 \u0438\u00a0\u0432\u00a0\u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0443\u0436\u0435 \u043c\u043e\u0436\u0435\u043c \u0435\u0433\u043e \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0432\u044b\u0434\u0435\u043b\u044f\u044f \u043f\u0430\u043c\u044f\u0442\u044c \u043f\u043e\u0434 \u0444\u0440\u0435\u0439\u043c. \u0412\u00a0p-frame \u0443\u00a0\u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u00a0\u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c \u0434\u043b\u044f\u00a0\u043a\u043e\u0434\u0435\u043a\u043e\u0432 h264 \u0438\u00a0h265.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b\u00a0\u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u044c \u043f\u043e\u0434 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043f\u0430\u043a\u0435\u0442, \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043c\u0441\u044f \u043f\u043e\u00a0\u0444\u0440\u0435\u0439\u043c\u0430\u043c. \u0412\u00a0\u043f\u0430\u043a\u0435\u0442\u0435 \u0443\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u043e\u0441\u043b\u0435 \u0434\u0435\u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u0430\u00a0\u2014 \u043f\u0430\u043a\u0435\u0442 MPEG-TS \u0441\u00a0\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043e\u00a0\u0441\u0436\u0430\u0442\u043e\u043c \u043a\u0430\u0434\u0440\u0435. \u041c\u044b\u00a0\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u043f\u0430\u043a\u0435\u0442 \u043e\u0442\u00a0\u043d\u0430\u0448\u0435\u0433\u043e \u0441\u0442\u0440\u0438\u043c-\u0438\u043d\u0434\u0435\u043a\u0441\u0430.<\/p>\n<p>\u0423\u00a0\u043d\u0430\u0441 \u0443\u0436\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 \u043a\u043e\u0434\u0435\u043a \u0438\u00a0\u043f\u0430\u043a\u0435\u0442, \u0432\u00a0\u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u043c\u044b\u00a0\u0438\u0437\u00a0\u043a\u043e\u0434\u0435\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0444\u0440\u0435\u0439\u043c. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u043a\u0438\u043d\u0443\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0432\u043e\u00a0\u0432\u044c\u044e\u0445\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u0441\u0435 \u043e\u0442\u0440\u0438\u0441\u0443\u0435\u0442. \u0418\u00a0\u0432\u0441\u0435, \u0447\u0442\u043e \u043d\u0430\u043c \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f\u00a0\u2014 \u043d\u0430\u0439\u0442\u0438 view controller.<\/p>\n<h2>\u0417\u0430\u043f\u0443\u0441\u043a ffmpeg \u0432\u043d\u0443\u0442\u0440\u0438 iOS \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/h2>\n<p>\u0414\u043b\u044f\u00a0\u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a\u00a0API FFMPEG \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Objective-C.<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442<em>\u00a0<\/em><code>AVFormat<\/code>\u00a0\u0438\u0437\u00a0<code>URL<\/code>\u00a0\u0432\u0438\u0434\u0435\u043e\/\u0441\u0442\u0440\u0438\u043c\u0430:<\/p>\n<pre><code class=\"swift\">AVFormatContext* pFormatContext = NULL; const char* cUrl = [url.absoluteString cStringUsingEncoding:kCFStringEncodingUTF8];  if (avformat_open_input(&amp;pFormatContext, cUrl, NULL, NULL) != 0) { \/\/ \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a return; }  if (avformat_find_stream_info(pFormatContext, NULL) &lt; 0) { \/\/ \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u0442\u0440\u0438\u043c\u0435 return; }<\/code><\/pre>\n<p>\u0423\u0441\u043b\u043e\u0432\u0438\u043c\u0441\u044f, \u0447\u0442\u043e \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u043b\u0435\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043c\u0435\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e 1 \u0441\u0442\u0440\u0438\u043c. \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043a\u043e\u0434\u0435\u043a\u0435. \u0415\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u0437\u00a0<code>AVStream<\/code>.<\/p>\n<p>\u041d\u0430\u0439\u0434\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0435\u0433\u043e \u043d\u0430\u0441 \u0441\u0442\u0440\u0438\u043c\u0430 (\u0441\u0430\u043c\u044b\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0438\u0434\u0435\u043e \u0441\u0442\u0440\u0438\u043c):<\/p>\n<pre><code class=\"swift\">int videoStreamIndex = -1;  for(int i = 0; i &lt; pFormatContext->nb_streams; i++) {  if(pFormatContext->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { videoStreamIndex = i; break; } }  if (videoStreamIndex &lt; 0) { \/\/ \u0421\u0442\u0440\u0438\u043c \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d return; }<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043a\u043e\u0434\u0435\u043a\u0435 \u043f\u0443\u0442\u0435\u043c \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 <code>avcodec_find_decoder<\/code>. \u0412 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0434\u0438\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043a\u043e\u0434\u0435\u043a\u0430, \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 <code>AVStream<\/code>.<\/p>\n<pre><code class=\"swift\">const AVCodec * pCodec = NULL;  \/\/ \u041f\u043e\u0438\u0441\u043a \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430 \u043f\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0443 pCodec = avcodec_find_decoder(pFormatContext->streams[videoStreamIndex]->codecpar->codec_id); if (pCodec == NULL) { \/\/ \u0414\u0435\u043a\u043e\u0434\u0435\u0440 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d return; }<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u00a0<code>AVCodecContext<\/code>\u00a0\u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<pre><code class=\"swift\">AVCodecContext *pCodecCtx = NULL;    AVBufferRef * hwDeviceCtx = NULL;       pCodecCtx = avcodec_alloc_context3(pCodec); if (avcodec_parameters_to_context(pCodecCtx, pFormatContext->streams[videoStreamIndex]->codecpar) != 0) { \/\/ \u041d\u0435 \u0423\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 return; }  \/\/ \u041a\u043e\u043b\u043b\u0431\u044d\u043a \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 (\u0441\u043c. \u043d\u0438\u0436\u0435) pCodecCtx->get_format = get_hw_format;  \/\/ \u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f if (av_hwdevice_ctx_create(&amp;hwDeviceCtx, AV_HWDEVICE_TYPE_VIDEOTOOLBOX, NULL, NULL, 0) &lt; 0) { \/\/ \u041d\u0435 \u0423\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0435 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 return; }  pCodecCtx->hw_device_ctx = hwDeviceCtx;  \/\/ \u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u043a\u043e\u0434\u0435\u043a\u0430 if (avcodec_open2(pCodecCtx, pCodec, NULL) &lt; 0) { \/\/ \u041d\u0435 \u0423\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043a\u043e\u0434\u0435\u043a return; }<\/code><\/pre>\n<p>\u041a\u043e\u043b\u043b\u0431\u044d\u043a \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u0430:<\/p>\n<pre><code class=\"swift\">static enum AVPixelFormat get_hw_format(AVCodecContext *ctx, const enum AVPixelFormat *pix_fmts) { return AV_PIX_FMT_VIDEOTOOLBOX; }<\/code><\/pre>\n<p>\u0421 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u043a\u043e\u0434\u0435\u043a\u0430 \u0432\u0441\u0435, \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0444\u0440\u0435\u0439\u043c\u044b \u0432\u0438\u0434\u0435\u043e, \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c:<\/p>\n<pre><code class=\"swift\">AVFrame * pFrame = NULL;  \/\/ \u0412\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u044c \u043f\u043e\u0434 \u0432\u0438\u0434\u0435\u043e \u0444\u0440\u0435\u0439\u043c pFrame = av_frame_alloc(); if (pFrame == NULL) { \/\/ \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c return; }  \/\/ \u0412\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u044c \u043f\u043e\u0434 \u043f\u0430\u043a\u0435\u0442 \u0441 \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0432\u0438\u0434\u0435\u043e\u0434\u0430\u043d\u043d\u044b\u043c\u0438 AVPacket * pPacket = av_packet_alloc(); if (pPacket == NULL) { \/\/ \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c return; }  while (av_read_frame(pFormatContext, pPacket) >= 0) {  \/\/ \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u044b \u043f\u0430\u043a\u0435\u0442\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 \u0441\u0442\u0440\u0438\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u0432\u044b\u0448\u0435 if (pPacket->stream_index != videoStreamIndex) { av_packet_unref(pPacket); continue; }  \/\/ \u041f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0430\u043a\u0435\u0442 \u0441 \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0432\u0438\u0434\u0435\u043e \u0432 \u0434\u0435\u043a\u043e\u0434\u0435\u0440 int ret = avcodec_send_packet(pCodecCtx, pPacket);  if (ret &lt; 0) { \/\/ \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 continue; }  while (ret >= 0) {      \/\/ \u041f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u0437 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430 ret = avcodec_receive_frame(pCodecCtx, pFrame);  if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) { \/\/ \u0421\u0442\u0440\u0438\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d break; } else if (ret &lt; 0) { \/\/ \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442 return; }  \/\/ \u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u0444\u043e\u0440\u043c\u0430\u0442 \u043f\u0438\u043a\u0441\u0435\u043b\u044f VideoToolbox, \u0441\u043c\u0435\u043b\u043e \u043a\u0430\u0441\u0442\u0438\u043c pFrame->data[3] \u0432 CVPixelBufferRef. CVPixelBufferRef pixelBuffer = (CVPixelBufferRef)pFrame->data[3];  \/\/ \u041d\u0430 \u044d\u0442\u043e\u043c \u043c\u043e\u043c\u0435\u043d\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c CVPixelBufferRef \u043b\u044e\u0431\u044b\u043c \u0443\u0434\u043e\u0431\u043d\u044b\u043c \u0434\u043b\u044f \u0432\u0430\u0441 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c [self->_delegate playerDidOutputFrame:pixelBuffer]; }  av_packet_unref(pPacket); }<\/code><\/pre>\n<p><strong>\u0412 \u043d\u0430\u0448\u0435\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043c\u044b \u0432\u044b\u0434\u0435\u043b\u0438\u043b\u0438 \u0442\u0430\u043a\u0438\u0435 \u043f\u043b\u044e\u0441\u044b FFMpeg:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0412\u0441\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u00a0\u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u0434 \u0432\u0441\u0435\u043c\u0438 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u043c\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c\u0438. \u041c\u044b\u00a0\u043c\u043e\u0436\u0435\u043c \u0432\u043a\u043b\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u0432\u00a0\u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f MPEG-TS, \u0441\u0430\u043c\u043e\u0433\u043e \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430, \u043c\u043e\u0436\u0435\u043c \u0432\u043a\u043b\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u0432\u00a0\u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0434\u0435\u043a\u043e\u0434\u0438\u043d\u0433\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u0430\u043c\u0438\u043c MPEG-TS \u0438\u00a0\u0434\u0435\u043a\u043e\u0434\u0435\u0440\u043e\u043c, \u043c\u043e\u0436\u0435\u043c \u0432\u043a\u043b\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u0443\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0438\u00a0\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0439 I\/O \u0434\u043b\u044f\u00a0\u0432\u044b\u0432\u043e\u0434\u0430 \u0430\u0443\u0434\u0438\u043e \u0438\u00a0\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0443\u0436\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u00a0\u0431\u044b\u0441\u0442\u0440\u043e \u0435\u0433\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0432\u043d\u0435\u0441\u0442\u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043f\u0440\u0430\u0432\u043a\u0438.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041c\u0438\u043d\u0443\u0441\u044b:<\/strong><\/p>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0421\u00a0\u0438\u00a0\u0432\u0441\u0435 \u0432\u044b\u0442\u0435\u043a\u0430\u044e\u0449\u0438\u0435 \u043e\u0442\u0441\u044e\u0434\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f.<\/p>\n<h2>\u0412\u044b\u0432\u043e\u0434\u044b<\/h2>\n<p>VLC\u00a0\u2014 \u044d\u0442\u043e \u043f\u043e\u00a0\u0441\u0443\u0442\u0438 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u0438\u00a0\u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u00a0\u043d\u0435\u0433\u043e \u043a\u0430\u043a\u0443\u044e \u043b\u0438\u0431\u043e \u0444\u0438\u0447\u0443, \u043d\u0430\u0434\u043e \u0432\u043e\u00a0\u0432\u0441\u0435\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0438\u0434\u0442\u0438 \u0432\u00a0\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u0447\u0442\u043e-\u0442\u043e \u043c\u0435\u043d\u044f\u0442\u044c, \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c, \u0430\u00a0\u0435\u0441\u043b\u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0435\u00a0\u0441\u043e\u0432\u043f\u0430\u043b \u0441\u00a0\u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c, \u0442\u043e\u00a0\u0432\u0441\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043d\u043e\u0432\u043e.<\/p>\n<p>\u0421\u00a0FFMpeg \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0448\u0435: \u044d\u0442\u043e \u043f\u043e\u00a0\u0441\u0443\u0442\u0438 \u0434\u0432\u0438\u0436\u043e\u043a, \u0438\u00a0\u043e\u0447\u0435\u043d\u044c \u0440\u0435\u0434\u043a\u043e \u043d\u0430\u0434\u043e \u043b\u0435\u0437\u0442\u044c \u0432\u00a0\u043d\u0435\u0433\u043e (\u0432\u00a0\u043d\u0430\u0448\u0438\u0445 \u043a\u0435\u0439\u0441\u0430\u0445 \u043f\u043e\u0447\u0442\u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430). \u0410 \u0442.\u043a. \u0441\u0430\u043c \u043f\u043b\u0435\u0435\u0440 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430\u043c\u0438 \u0438\u00a0\u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u043e\u0434, \u0442\u043e\u00a0\u0435\u0433\u043e \u043b\u0435\u0433\u043a\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041d\u0430\u0448\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438: \u043b\u043e\u0433\u0438\u043a\u0430 \u0440\u0435\u043a\u043e\u043d\u043d\u0435\u043a\u0442\u0430, \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a, \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u0430\u0443\u0434\u0438\u043e \u0438\u00a0\u043c\u0435\u0442\u043e\u0434\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0444\u0440\u0435\u0439\u043c\u043e\u0432\u00a0\u2014 \u0432\u0441\u0451 \u044d\u0442\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u043b\u0435\u0435\u0440\u0430, \u0430\u00a0\u043d\u0435\u00a0\u0434\u0432\u0438\u0436\u043a\u0430.<\/p>\n<p>\u041a\u00a0\u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0438\u0447\u0443 \u00ab\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0432\u00a0\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435\u00bb, \u0442\u043e\u00a0\u043d\u0430\u00a0FFMpeg \u043c\u044b\u00a0\u0431\u044b\u00a0\u043b\u0435\u0433\u043a\u043e \u0435\u0435\u00a0\u0441\u0434\u0435\u043b\u0430\u043b\u0438, \u0442.\u043a. \u043c\u043e\u0436\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u0438\u043f \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 \u043d\u0430\u00a0\u043d\u0435-Metal \u043c\u0435\u0442\u043e\u0434\u044b, \u0430\u00a0VLC \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 Metal \u0438\u00a0\u0442\u0430\u043c \u043d\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438.<\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \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\/articles\/729548\/\"> https:\/\/habr.com\/ru\/articles\/729548\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u0442 \u043a\u043d\u043e\u043f\u043a\u0443\u00a0\u2014 \u0438\u00a0\u0432\u0436\u0443\u0445, \u0443\u0436\u0435 \u0441\u0442\u0440\u0438\u043c\u0438\u0442 \u0432\u00a0\u0441\u0435\u0442\u044c, \u0430\u00a0\u043a\u00a0\u0435\u0433\u043e \u0441\u0442\u0440\u0438\u043c\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438. \u0412\u00a0\u043f\u043b\u0435\u0435\u0440\u0435 \u0432\u00a0\u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0433\u0440\u043e\u043c\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430: \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0437\u0430\u0431\u0438\u0440\u0430\u044e\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u00a0\u0437\u0432\u0443\u043a, \u043a\u043e\u0434\u0438\u0440\u0443\u044e\u0442, \u043f\u0430\u043a\u0443\u044e\u0442 \u0432\u00a0\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u0438\u00a0\u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u00a0\u043c\u0435\u0441\u0442\u043d\u044b\u0439 \u0440\u0430\u0437\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u043f\u043e\u0440\u0442, \u0433\u0434\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0441\u043d\u043e\u0432\u0430 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u044e\u0442 \u043d\u0430\u00a0\u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0432\u00a0\u043d\u0435\u0433\u043e \u0432\u0438\u0434\u0435\u043e \u0438\u00a0\u0430\u0443\u0434\u0438\u043e. \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0441\u0438\u043b\u0438\u0439! <br \/>\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041d\u0438\u043a\u0438\u0442\u0430 \u0422\u0430\u0440\u0445\u043e\u0432, \u044f <a href=\"https:\/\/cleverpumpkin.ru\/development\/ios\/?utm_source=habr&amp;utm_medium=article&amp;utm_content=streaming\">iOS-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a CleverPumpkin<\/a>, \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e\u00a0\u0441\u043f\u043e\u0441\u043e\u0431\u0430\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0433\u043e \u0432\u0435\u0449\u0430\u043d\u0438\u044f \u043d\u0430\u00a0\u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u00a0\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c SRT.<\/p>\n<figure class=\"full-width\"><\/figure>\n<h2>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b<\/h2>\n<p>\u041a\u0430\u0436\u0434\u043e\u0435 \u0432\u0438\u0434\u0435\u043e \u0432\u00a0\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043e\u0434\u0438\u043d \u0438\u00a0\u0442\u043e\u0442\u00a0\u0436\u0435 \u043f\u0443\u0442\u044c \u043e\u0442\u00a0\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u043a\u00a0\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c: \u0435\u0441\u0442\u044c \u043a\u0430\u043c\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0441\u043b\u043e\u0432\u043d\u043e 30 \u0440\u0430\u0437 \u0432\u00a0\u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0432\u044b\u0434\u0430\u0435\u0442 \u043d\u0430\u043c raw-\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0438\u00a0\u0442\u0430\u043a\u043e\u0439\u00a0\u0436\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0430\u0443\u0434\u0438\u043e, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0434\u0430\u0435\u0442 \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0435 raw-\u0434\u0430\u043d\u043d\u044b\u0435. \u0414\u043b\u044f\u00a0\u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0438\u0445\u00a0\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043a\u043e\u0434\u0435\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0436\u0438\u043c\u0430\u044e\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044e\u0442 \u0432\u0435\u0441 \u0438\u00a0\u0442\u0440\u0430\u0444\u0438\u043a \u0432\u00a0\u0440\u0430\u0437\u044b. \u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0448\u0438 \u0430\u0443\u0434\u0438\u043e- \u0438\u00a0\u0432\u0438\u0434\u0435\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u00a0\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u00a0\u0441\u0442\u0440\u0438\u043c\u0430\u0445 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0438\u00a0\u043f\u0430\u043a\u0443\u0435\u0442 \u0432\u00a0\u043d\u0435\u043a\u0438\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u00a0\u0441\u0435\u0442\u0435\u0432\u043e\u043c \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0435 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u00a0\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442.<\/p>\n<p>\u0412\u0441\u0435 \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u00a0\u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0438 \u00ab\u043d\u0430\u0447\u0430\u0442\u044c \u0441\u0442\u0440\u0438\u043c\u00bb.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430\u00a0\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043a\u0430\u0434\u0440\u043e\u0432 \u0438\u00a0\u0431\u0438\u0442\u0440\u0435\u0439\u0442\u0430 \u0434\u043b\u044f\u00a0\u0432\u0438\u0434\u0435\u043e\u043a\u043e\u0434\u0435\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u00a0\u0440\u0430\u0431\u043e\u0442\u0443 \u0432\u00a0\u0441\u0435\u0442\u0438: \u0447\u0435\u043c \u0432\u044b\u0448\u0435 \u0431\u0438\u0442\u0440\u0435\u0439\u0442, \u0442\u0435\u043c, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u044b\u0448\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u00a0\u0441\u0435\u0442\u0438. \u0412\u00a0\u0430\u0443\u0434\u0438\u043e-\u043a\u043e\u0434\u0435\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 Sample Rate \u0438\u00a0\u0431\u0438\u0442\u0440\u0435\u0439\u0442. \u0427\u0435\u043c \u0432\u044b\u0448\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0442\u0435\u043c \u043b\u0443\u0447\u0448\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0432\u0443\u043a\u0430.<\/p>\n<p>\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f \u043d\u0430\u00a0\u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442, \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u043b\u044f\u00a0\u0434\u0435\u043a\u043e\u0434\u0438\u043d\u0433\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043f\u043e\u043d\u044f\u043b\u0430, \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u041f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430\u00a0\u2014 \u0437\u0435\u0440\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043e\u0442\u0434\u0430\u044e\u0449\u0435\u0439: \u0438\u0437\u00a0\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u043f\u043e\u00a0\u0441\u0435\u0442\u0435\u0432\u043e\u043c\u0443 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0443 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u0434\u0435\u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u043e\u0440 \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u00a0\u043f\u043e\u0442\u043e\u043a\u0438 \u0432\u0438\u0434\u0435\u043e \u0438\u00a0\u0430\u0443\u0434\u0438\u043e. \u041c\u044b\u00a0\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u0430\u043a\u0435\u0442 \u0441\u043e\u00a0\u0441\u0436\u0430\u0442\u044b\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u0432\u0438\u0434\u0435\u043e\u043a\u043e\u0434\u0435\u043a \u0438\u00a0\u0434\u0435\u043a\u043e\u0434\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432\u00a0\u0441\u0435\u0440\u0438\u044e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0430\u00a0\u0441\u0436\u0430\u0442\u043e\u0435 \u0430\u0443\u0434\u0438\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u0430\u0443\u0434\u0438\u043e\u043a\u043e\u0434\u0435\u043a\u00a0\u2014 \u0438\u00a0\u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u0437\u0432\u0443\u043a.<\/p>\n<p>\u042d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0437\u0440\u0438\u0442\u0435\u043b\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043a\u00a0\u0441\u0442\u0440\u0438\u043c\u0443.<\/p>\n<figure class=\"full-width\"><\/figure>\n<h2>\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b SRT<\/h2>\n<p>\u041f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u00a0\u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u043c \u0441\u00a0\u0432\u0438\u0434\u0435\u043e \u0438\u00a0\u0430\u0443\u0434\u0438\u043e \u0432\u00a0\u0441\u0442\u0440\u0438\u043c\u0430\u0445 \u043d\u0430\u00a0\u043f\u0440\u0438\u043c\u0435\u0440\u0435 SRT\u00a0\u2014 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u0434\u043b\u044f\u00a0\u043c\u0435\u0434\u0438\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f\u00a0\u0440\u0430\u0431\u043e\u0442\u044b \u0432\u00a0\u043f\u043b\u043e\u0445\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0441\u0435\u0442\u0438. \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043c\u044b\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u043d\u0430\u0434 \u043e\u0434\u043d\u0438\u043c \u0438\u0437\u00a0\u0441\u0430\u043c\u044b\u0445 \u0441\u0432\u0435\u0436\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 CleverPumpkin\u00a0\u2014\u00a0<a href=\"https:\/\/cleverpumpkin.ru\/portfolio\/dater\/?utm_source=habr&amp;utm_medium=article&amp;utm_content=streaming\">Dater<\/a>.<\/p>\n<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u0441\u00a0\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c \u043f\u043e\u0431\u0443\u043a\u0432\u0435\u043d\u043d\u043e.<\/p>\n<p>S\u00a0\u2014 secure, \u0442\u043e\u00a0\u0435\u0441\u0442\u044c, \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e.<\/p>\n<p>R\u00a0\u2014 reliable, \u0447\u0442\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430\u00a0\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0439 \u043f\u043e\u0442\u0435\u0440\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u0440\u0438 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0432\u00a0\u0441\u0435\u0442\u0438 \u0438\u00a0\u043c\u043e\u0436\u0435\u0442 \u043b\u0438\u0431\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c, \u043b\u0438\u0431\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0442\u0435\u0440\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0421\u00a0\u0431\u0443\u043a\u0432\u043e\u0439 \u0422\u00a0\u0432\u0441\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u00a0\u2014 \u044d\u0442\u043e transport, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f S \u0438\u00a0R\u00a0\u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u00a0\u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c \u0441\u0435\u0442\u0438.<\/p>\n<p>\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u043c \u0438\u00a0\u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u00a0UDP-\u0441\u043e\u043a\u0435\u0442\u0430\u0445. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u00a0\u2014 \u0442\u043e\u0436\u0435 \u0441\u043e\u043a\u0435\u0442\u044b, \u043d\u043e\u00a0\u0443\u0436\u0435 SRT-\u0441\u043e\u043a\u0435\u0442\u044b. \u0421\u0430\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043d\u0430 C++, \u043d\u043e\u00a0\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u043e\u0434\u0443\u043c\u0430\u043b\u0438 \u0438\u00a0\u0432\u044b\u043d\u0435\u0441\u043b\u0438 \u0432\u0441\u0435 \u0432\u00a0\u0421\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0434\u0430\u0432 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c SRT \u043d\u0430\u00a0\u043b\u044e\u0431\u043e\u043c \u0442\u0430\u043f\u043e\u0447\u043a\u0435 \u0441\u00a0\u0432\u044b\u0445\u043e\u0434\u043e\u043c \u0432\u00a0\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442. \u0422\u0430\u043a\u0436\u0435 \u0437\u0430\u00a0\u0441\u0447\u0435\u0442 \u0421\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u00a0Swift, \u043d\u043e\u00a0\u044d\u0442\u043e \u043d\u0435\u0441\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b SRT \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u00a0\u0441\u0435\u0431\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443, \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u00a0\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0432\u0435\u0440\u044f\u044f \u043f\u0430\u043a\u0435\u0442\u044b, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432\u00a0\u0438\u0445\u00a0\u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f\u00a0\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0412\u00a0\u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043b\u044e\u0431\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u043e\u00a0\u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e MPEG-TS\u00a0\u2014 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0434\u043b\u044f\u00a0\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0430\u0443\u0434\u0438\u043e \u0438\u00a0\u0432\u0438\u0434\u0435\u043e \u0432\u00a0\u0444\u043e\u0440\u043c\u0430\u0442\u0435 MPEG2.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>MPEG-TS\u00a0\u2014 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u00a0\u0432\u0435\u0449\u0430\u043d\u0438\u0438 \u0438\u00a0\u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435\u00a0\u043e\u0434\u0438\u043d \u0441\u0442\u0440\u0438\u043c, \u0430\u00a0\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e, \u0447\u0442\u043e\u0431\u044b \u0443\u0436\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043c\u043e\u0433\u043b\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b.<\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0435 \u043e\u00a0\u0432\u0435\u0449\u0430\u043d\u0438\u0438, \u0430\u0443\u0434\u0438\u043e \u0438\u00a0\u0432\u0438\u0434\u0435\u043e\u043f\u043e\u0442\u043e\u043a\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432\u00a0\u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u043e\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442 PES, PSI \u0438\u00a0NULL \u043f\u0430\u043a\u0435\u0442\u044b. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f\u00a0\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0431\u0438\u0442\u0440\u0435\u0439\u0442\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u043c \u0442\u0435\u043b\u0435\u0432\u0438\u0434\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u044b, MPEG-TS \u0443\u043c\u0435\u0435\u0442 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u00a0\u043f\u043e\u0442\u043e\u043a \u043f\u0443\u0441\u0442\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b. PID (Program ID) \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430 \u0441\u0442\u0440\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d \u0438\u00a0\u0440\u0430\u0432\u0435\u043d 0x1FFF.<\/p>\n<p>PES\u00a0\u2014 \u044d\u0442\u043e Packet Elementary Stream. \u042d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 Elementary Stream, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u00a0\u0432\u0438\u0434\u0435\u043e \u0438\u043b\u0438 \u0430\u0443\u0434\u0438\u043e. Elementary Stream \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432\u00a0\u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a (TS), \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u0442\u0440\u043e\u0433\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d 188 \u0431\u0430\u0439\u0442\u0430\u043c\u0438. \u041a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a (ES) \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0439 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 PID, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u043d\u0430\u0431\u043e\u0440\u044b\u00a0ES \u0438\u00a0\u0441\u043a\u043b\u0435\u0438\u0442\u044c \u0432\u00a0\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 PES \u043f\u0430\u043a\u0435\u0442.<\/p>\n<p>PSI\u00a0\u2014 Program Specific Information\u00a0\u2014 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u00a0\u0441\u0435\u0431\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c (PAT) \u0438\u00a0\u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c (\u0420\u041c\u0422). \u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a\u0438\u0435 \u0441\u0442\u0440\u0438\u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f, \u0430\u00a0\u0441\u0430\u043c\u0430 Program Map Table (\u0420\u041c\u0422) \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 PID \u0438\u00a0\u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0418\u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b, \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430\u00a0PAT, \u0433\u0434\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u043e, \u0447\u0442\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431\u00a0\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0445 \u043d\u0430\u0441 \u043a\u0430\u043d\u0430\u043b\u0430\u0445 \u043b\u0435\u0436\u0438\u0442 \u0432\u00a0\u0420\u041c\u0422 \u043f\u043e\u0434 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 PID. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u00a0\u0420\u041c\u0422 \u0437\u0430\u0434\u0430\u043d PID 51. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u00a0Program Table \u043f\u043e\u00a0PID 51 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431\u00a0\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0445 \u043d\u0430\u0441 \u0441\u0442\u0440\u0438\u043c\u0430\u0445.<\/p>\n<h2>\u0421\u043f\u043e\u0441\u043e\u0431\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0433\u043e \u0432\u0435\u0449\u0430\u043d\u0438\u044f<\/h2>\n<p>\u0412\u0430\u0440\u0438\u0430\u043d\u0442 1. \u0422\u0440\u0443\u0434\u043e\u0435\u043c\u043a\u0438\u0439. \u041c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u0430\u043c\u043e\u043c\u0443. \u042d\u0442\u043e \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e \u0438\u00a0\u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 MPEG-TS, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0430\u043c \u043f\u043e\u00a0\u0441\u0435\u0431\u0435 \u043d\u0435\u00a0\u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442.<\/p>\n<p>\u0412\u0430\u0440\u0438\u0430\u043d\u0442 2. \u0414\u043e\u0440\u043e\u0433\u043e\u0439 \u0438\u00a0\u043e\u043f\u0430\u0441\u043d\u044b\u0439. \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u0442\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043d\u043e\u00a0\u0438\u00a0\u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u043c\u0438\u043d\u0443\u0441\u044b. \u041d\u0435\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043d\u0430\u0434 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u043d\u0438\u0447\u0435\u0433\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0435\u00a0\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f\u00a0\u2014 \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u0435\u00a0\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442\u0432\u0435\u0442.<\/p>\n<p>\u0412\u0430\u0440\u0438\u0430\u043d\u0442 3. \u0411\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439, \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439, \u043d\u043e\u00a0\u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0437\u0430\u043c\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u00a0\u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c VLC, \u043a\u0430\u043a \u043c\u044b\u00a0\u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043d\u0430\u00a0\u043f\u0440\u043e\u0435\u043a\u0442\u0435 Dater. VLC \u043c\u043e\u0436\u043d\u043e \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043f\u043e\u00a0\u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043f\u043b\u0435\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Plug &amp; Play. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d\u00a0\u0438\u00a0\u0431\u044b\u043b \u043d\u0430\u043c\u0438 \u0432\u044b\u0431\u0440\u0430\u043d \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u00a0\u2014 \u0438\u0437-\u0437\u0430 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f \u0432\u00a0\u043f\u0440\u043e\u0435\u043a\u0442.<\/p>\n<p>\u0412\u0430\u0440\u0438\u0430\u043d\u0442 4. \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438\u00a0\u0442\u043e\u0436\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439\u00a0\u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c FFMpeg. \u042d\u0442\u0430 \u0443\u0442\u0438\u043b\u0438\u0442\u0430, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u043d\u0430\u00a0\u043a\u0430\u0436\u0434\u043e\u043c \u041c\u0430\u043a\u0431\u0443\u043a\u0435. \u041e\u043d\u0430 \u043d\u0443\u0436\u043d\u0430 \u0434\u043b\u044f\u00a0\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u044e\u0431\u044b\u0445 \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a, \u0432\u0438\u0434\u0435\u043e \u0432\u043e\u00a0\u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e\u00a0\u2014 \u0432\u00a0gif, \u0432\u00a0\u043d\u0430\u0431\u043e\u0440 \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a, \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u0432\u0438\u0434\u0435\u043e-\u043a\u043e\u0434\u0435\u043a\u0438 \u0438\u00a0\u0442.\u00a0\u0434. \u041d\u043e\u00a0\u043e\u0431\u00a0\u044d\u0442\u043e\u043c \u043f\u043e\u0437\u0436\u0435. \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043f\u043e\u00a0\u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b 3 \u0438\u00a04.<\/p>\n<h2>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441\u00a0VLC<\/h2>\n<p>\u041f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043d\u0430\u00a0\u043f\u0440\u043e\u0435\u043a\u0442\u0435 Dater \u043c\u044b\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0435\u0433\u043e \u0441\u00a0\u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439.<\/p>\n<p>\u041f\u043b\u044e\u0441\u044b VLC:<\/p>\n<ul>\n<li>\n<p>\u041e\u043d\u00a0\u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0432\u0441\u0435, \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>\u0423\u00a0\u043d\u0435\u0433\u043e \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e.<\/p>\n<\/li>\n<li>\n<p>\u0411\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 open source.<\/p>\n<\/li>\n<li>\n<p>\u041e\u043d\u00a0\u0440\u0430\u0437\u0431\u0438\u0442 \u043d\u0430\u00a0\u043c\u043e\u0434\u0443\u043b\u0438, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043b\u0435\u0433\u043a\u043e \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u00a0\u043f\u0440\u043e\u0435\u043a\u0442\u0443.<\/p>\n<\/li>\n<\/ul>\n<p>\u041c\u0438\u043d\u0443\u0441:<\/p>\n<p>\u041e\u043d\u00a0\u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0438\u00a0\u0431\u043e\u043b\u044c\u0448\u043e\u0439\u00a0\u2014 \u044d\u0442\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043f\u043b\u0435\u0435\u0440. \u0427\u0442\u043e\u0431\u044b \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c, \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043b\u0435\u0437\u0442\u044c \u0432\u00a0\u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0438\u00a0\u0442\u0430\u043c \u0447\u0442\u043e-\u0442\u043e \u043c\u0435\u043d\u044f\u0442\u044c, \u043f\u043e\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0430\u043c \u043f\u043b\u0435\u0435\u0440 \u0438\u00a0\u0442.\u00a0\u0434. \u0412\u0441\u0435 \u044d\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0435\u043c\u0430\u043b\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438\u00a0\u2014 \u043f\u0435\u0440\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u043d\u0430\u00a0\u041c\u0430\u043a\u0431\u0443\u043a\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 40 \u043c\u0438\u043d\u0443\u0442. \u0421\u0430\u043c\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043b\u0435\u0437\u0442\u044c \u0432\u00a0\u00ab\u043f\u043e\u0434\u043a\u0430\u043f\u043e\u0442\u043d\u0443\u044e\u00bb \u0447\u0430\u0441\u0442\u044c \u043f\u043b\u0435\u0435\u0440\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u0430 \u0435\u0449\u0435 \u0438\u00a0\u0442\u0435\u043c, \u0447\u0442\u043e \u0441\u0430\u043c \u043a\u043e\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e.<\/p>\n<p>\u0423\u0441\u043f\u0435\u0448\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u00a0VLC \u0432\u0441\u0435 \u044d\u0442\u043e \u043d\u0435\u00a0\u043c\u0435\u0448\u0430\u0435\u0442, \u0445\u043e\u0442\u044f \u0438\u00a0\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438. \u0414\u043b\u044f\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u0438\u043c\u043e\u0432 \u0432\u00a0\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 Dater \u043c\u044b\u00a0\u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u00a0VLC: \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0438\u00a0\u043f\u043e\u0434\u0431\u0438\u0440\u0430\u043b\u0438 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u0435\u0449\u0430\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u043e\u00a0\u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430\u043c \u0438\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0443 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.<\/p>\n<figure class=\"full-width\"><\/figure>\n<h2>\u041a\u0430\u043a\u0438\u0435 \u043f\u043b\u044e\u0441\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435?<\/h2>\n<p>\u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0435\u0433\u043a\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0432\u00a0\u043f\u0440\u043e\u0435\u043a\u0442. \u042d\u0442\u043e, \u043f\u043e\u00a0\u0441\u0443\u0442\u0438, \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043b\u0435\u0435\u0440, \u0443\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0441\u0432\u043e\u0439 view (\u0432\u044c\u044e\u0445\u0443, \u043f\u0440\u043e\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f). \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u043b\u0435\u0435\u0440 \u0438\u00a0\u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c view \u0432\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441.<\/p>\n<ul>\n<li>\n<p>\u0412\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u0437\u00a0\u043a\u043e\u0440\u043e\u0431\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c.<\/p>\n<\/li>\n<\/ul>\n<p>\u041c\u0438\u043d\u0443\u0441\u0430\u043c\u0438 \u0441\u0442\u0430\u043b\u0438:<\/p>\n<ul>\n<li>\n<p>\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 SRT \u043d\u0430\u00a0iOS, \u0435\u0435\u00a0\u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0440\u0438\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0448\u0443\u043c\u043e\u043f\u043e\u0434\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u00a0\u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><\/figure>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 VLC \u0442\u0430\u043a\u043e\u0432\u0430, \u0447\u0442\u043e \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a\u00a0\u043f\u043e\u0442\u043e\u043a\u0430\u043c, \u0432\u00a0\u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0448 SRT. \u041d\u0438\u0447\u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u043c\u044b\u00a0\u043d\u0435\u00a0\u0434\u0435\u043b\u0430\u043b\u0438\u00a0\u2014 \u043f\u043e\u00a0\u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438 \u0441\u00a0\u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 reconnect interval \u0438\u00a0maximum reconnected attempts. \u042d\u0442\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u0440\u043e\u043a\u0438\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u00a0\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 VLC.<\/p>\n<p>\u0412\u00a0\u0430\u0443\u0434\u0438\u043e\u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u0438 Audio Unity, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0434\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f\u00a0\u0432\u044b\u0432\u043e\u0434\u0430 \u0437\u0432\u0443\u043a\u0430, \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f VoiceProcessingIO \u0432\u00a0AudioUnit \u043f\u043b\u0435\u0435\u0440\u0430.<\/p>\n<h2>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 FFMpeg<\/h2>\n<p>FFMpeg\u00a0\u2014 \u044d\u0442\u043e, \u043f\u043e\u0436\u0430\u043b\u0443\u0439, \u0441\u0430\u043c\u0430\u044f \u0443\u0434\u043e\u0431\u043d\u0430\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u0434\u043b\u044f\u00a0\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430\u0448\u0438\u0445 \u0437\u0430\u0434\u0430\u0447.<\/p>\n<p>\u041f\u043b\u044e\u0441\u044b:<\/p>\n<ul>\n<li>\n<p>FFMpeg \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0432\u0441\u0435, \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>\u0423\u00a0\u043d\u0435\u0433\u043e \u0442\u0430\u043a\u043e\u0435\u00a0\u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 open source.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u0442\u044c \u0442\u0430\u00a0\u0436\u0435\u00a0\u0441\u0430\u043c\u0430\u044f \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0441\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u00a0\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432\u0438\u0434\u0435\u043e. \u0425\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043f\u043e\u00a0\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439\u00a0\u2014 FFMpeg \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u0442. \u0425\u043e\u0442\u0438\u0442\u0435 \u0432\u0438\u0434\u0435\u043e\u043f\u043b\u0435\u0435\u0440\u00a0\u2014 \u0442\u043e\u0436\u0435 FFMpeg. \u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u043c\u0443 \u0432\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u0438\u0435 \u043a\u0440\u0443\u043f\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0434\u043b\u044f\u00a0\u0441\u0432\u043e\u0438\u0445 \u0432\u0438\u0434\u0435\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0443 \u0443\u0442\u0438\u043b\u0438\u0442\u0443.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><\/figure>\n<h2>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f FFMpeg<\/h2>\n<p>\u041a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u043e FFMpegKit, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0447\u0435\u043c\u0443 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u041d\u0430\u00a0\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0432\u0438\u0434\u0438\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442 git clone, cd\u00a0ffmpeg-kit \u0438\u00a0\u0437\u0430\u043f\u0443\u0441\u043a \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0434\u043b\u044f\u00a0iOS. \u0412\u00a0\u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043c\u044b\u00a0\u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u043b\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 SRT \u0438\u00a0\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 VideoToolBox \u0434\u043b\u044f\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0434\u0435\u043a\u043e\u0434\u0438\u043d\u0433\u0430. \u0421\u043c. \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041d\u0430\u00a0\u0432\u044b\u0445\u043e\u0434\u0435 \u043c\u044b\u00a0\u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0440\u0430\u0437\u0443 \u0432\u043e\u0441\u0435\u043c\u044c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043f\u043e-\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438: ffmpegkit. framework, Libavcodec. framework, Libavdevice. framework, Libavfilter. framework, Libswresample. framework, Libswscale. framework, Libavformat. framework, Libavutil.framework.<\/p>\n<figure class=\"full-width\"><\/figure>\n<h2>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u043b\u0435\u0435\u0440<\/h2>\n<p>\u041c\u044b\u00a0\u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043b\u0435\u0435\u0440\u0430 \u0432\u044b\u0431\u0440\u0430\u043b\u0438 Objective-C, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e API \u0441\u0430\u043c\u043e\u0433\u043e FFMpeg \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 C, \u0447\u0442\u043e \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441\u00a0\u043d\u0438\u043c \u0432\u00a0Swift. \u0422\u043e\u00a0\u0435\u0441\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430, \u043d\u043e\u00a0\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e, \u0432\u00a0\u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442\u00a0Objective-C, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0421\u00a0\u0438\u00a0\u043b\u0435\u0433\u0447\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434. \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0442\u0440\u0435\u0434 \u0438\u00a0\u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u0441\u044f \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c FFMpeg: \u0431\u0435\u0440\u0435\u043c URL, C-\u0441\u0442\u0440\u043e\u043a\u0443, \u0434\u0430\u0435\u043c FFMpeg \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0442\u043e\u0442 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u0438\u043d\u043f\u0443\u0442 \u0438\u0437\u00a0libavformat. \u041a\u00a0\u043d\u0430\u043c \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u043a\u043e\u0434. \u0417\u0430\u0442\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u00a0\u0441\u0442\u0440\u0438\u043c\u0435, \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u00a0\u2014 \u0438\u00a0\u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u0443\u00a0\u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u00a0\u043a\u043e\u0434\u0435\u043a\u0430\u0445, \u0430\u0443\u0434\u0438\u043e-\u043a\u043e\u0434\u0435\u043a\u0430\u0445, \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u0434\u0435\u043a\u0435 \u0438\u00a0\u043e\u00a0\u0440\u0430\u0437\u043c\u0435\u0440\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b\u00a0\u0438\u0449\u0435\u043c \u043a\u043e\u0434\u0435\u043a, \u0430\u00a0\u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043d\u0443\u0436\u043d\u044b\u0439 \u0432\u0438\u0434\u0435\u043e\u043f\u043e\u0442\u043e\u043a, \u043f\u0440\u043e\u0445\u043e\u0434\u044f \u043f\u043e\u00a0\u0432\u0441\u0435\u043c \u0441\u0442\u0440\u0438\u043c\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u0442\u044c<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\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-411404","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/411404","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=411404"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/411404\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=411404"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=411404"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=411404"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}