{"id":32314,"date":"2019-10-31T21:46:17","date_gmt":"2019-10-31T18:46:17","guid":{"rendered":"https:\/\/prohoster.info\/blog\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer\/"},"modified":"2019-10-31T21:46:17","modified_gmt":"2019-10-31T18:46:17","slug":"webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer","title":{"rendered":"WebRTC and video surveillance: how we eliminated video latency with cameras","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"WebRTC and video surveillance: how we eliminated video latency with cameras\" src=\"\/wp-content\/uploads\/2019\/04\/d185b546f5fc4c15021481c0cc2fedbd.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFrom the very first days of working on the cloud video surveillance system, we faced a problem that, if unresolved, could have meant the end for Ivideon \u2013 it was our Everest, a climb that consumed immense energy, but now we have finally planted our ice axe at the summit of this cross-platform riddle.<\/p>\n<p>The system for transmitting sound and video over the Internet must not depend on hardware, web clients, or the standards they support, and must function correctly even in the presence of Network Address Translators and firewalls. A cloud video surveillance user wishes to access the service even if they are using analog cameras, while preferring to view live video on the latest devices. <\/p>\n<p>It is quite significant that the user wants to watch video with minimal latency. The virtually only way to show video with low delay in a browser is to use WebRTC (web real-time communications). WebRTC is a set of technologies for peer-to-peer transmission of video and audio in browsers, originally designed for the low-latency transmission and playback of video streams. For this purpose, among other things, the UDP protocol is used.<\/p>\n<p>Before we discuss what the new engine offers the user, let's remind you why we support HLS technologies and why we decided to move forward.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>HLS Engine: Pros and Cons<\/h2>\n<p>\n<img decoding=\"async\" alt=\"WebRTC and video surveillance: how we eliminated video latency with cameras\" src=\"\/wp-content\/uploads\/2019\/04\/f025d08eb22f7785090b8bc60194643c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n(<noindex><a rel=\"nofollow\" href=\"https:\/\/www.encoding.com\/http-live-streaming-hls\/\">c<\/a><\/noindex>)<\/p>\n<p>The HLS (HTTP Live Streaming) technology was developed by Apple, so it is not surprising that its support first appeared on devices from that brand. Today, HLS video streams can also be played on nearly all television set-top boxes and many devices running the Android OS.<\/p>\n<p>The HLS engine uses the well-known H264 video codec for streaming video data in combination with AAC or MP3 audio streams. The entire stream of audio and video data is packed into a transport container MPEG-TS. For transmission via the HTTP protocol, the information contained in the stream is divided into fragments described in m3u8 playlists. Only then are these fragments, along with the playlists, transmitted via HTTP. Fragmentation automatically introduces a delay measured in seconds. This is a characteristic of the MPEG-TS container. <\/p>\n<p>The HLS engine also supports multi-bitrate streams, Live\/VOD. <\/p>\n<p><b>The main advantages of HLS:<\/b><\/p>\n<ul>\n<li>Built-in support in all major browsers;<\/li>\n<li>Ease of implementation (compared to WebRTC);<\/li>\n<li>It is very convenient and effective to organize various broadcasts for a large audience because segments can be loaded once onto the CDN.<\/li>\n<\/ul>\n<p>\nDespite the simplicity of the engine, things are not as smooth as they seem. The main problem is that third-party player developers have deviated from Apple's recommendations, for example, regarding supported audio formats. In particular, many developers have started adding support for popular audio streams: mpeg2 video, mpeg2 audio, etc. As a result, it was necessary to create different playlist formats for different players.<\/p>\n<p>However, one of the biggest problems with the HLS engine is the high latency in data transmission.<\/p>\n<h2>The roots of the \"lag\"<\/h2>\n<p>\nThe main reason for high latency in HLS lies in the fact that programmers created the engine to achieve the highest quality image. Therefore, the parameters of the frame interval and the size of the playback buffer are simply not suitable for live video broadcasts. As a result, a fairly high latency in video transmission occurs, which can be 5-7 seconds.<\/p>\n<p>On the one hand, this is a small amount, for example, for those who watch a movie from a video hosting server. But for surveillance systems, the latency in video transmission can be very significant.<\/p>\n<p>If you are watching an office where employees take breaks from their monitors every hour, then a 5-second delay is of no concern. But people have started to complain that, for instance, during a football match broadcast, the chat has already said GOAL, but it's not yet visible in the video :). We already have several user cases where Ivideon must practically replace Skype.<\/p>\n<p>Can latency in HLS be overcome? The answer to this question sounds like an experienced rat exterminator's speech at a lecture for beginner pest controllers: 'You can't exterminate rats, but you can keep their population to a reasonable minimum.' So it is with latency in HLS; it won't be possible to eliminate it completely, but there are solutions on the market that can significantly reduce latency.<\/p>\n<h2>Small segments<\/h2>\n<p>\nAnother drawback of the engine is the use of small-sized files for data transmission. One might wonder, what's wrong with that?<\/p>\n<p>Anyone who has tried to copy a large number of small files from one storage device to another has surely noticed that the write speed for such a batch is much lower than that of a single large file of the same volume. Additionally, the intensity of requests to the hard drive increases significantly, which negatively affects the overall performance of the computer. Therefore, transmitting video data in small 10-second fragments also contributes to increased latency in the engine.<\/p>\n<p>Let\u2019s briefly summarize all the pros and cons of HLS technology.<\/p>\n<p><b>Advantages of HLS:<\/b><\/p>\n<ol>\n<li>Compatibility with any devices. You can watch videos on any modern device, whether it's a smartphone, tablet, laptop, or desktop PC. The main requirement is that the web browser must be a modern version and compatible with HTML5 and Media Source Extensions.<\/li>\n<li>Excellent image quality. The adaptive bitrate streaming function allows for dynamically changing the quality of the video stream based on the bandwidth of the internet connection, while the algorithm aims to maintain the highest quality.<\/li>\n<li>No need for complex user equipment setup.<\/li>\n<\/ol>\n<p>\n<b>Disadvantages:<\/b><\/p>\n<ol>\n<li>Limited support for running the engine on some devices.<\/li>\n<li>High image transmission latency.<\/li>\n<li>Significant increase in overhead and complexity in optimization due to the use of small-sized files. Due to the peculiarities of the container, we can never achieve a latency less than the size of the segment.<\/li>\n<\/ol>\n<p>\nThe disadvantages of HLS outweighed its advantages for us and forced us to seek alternative options.<\/p>\n<h2>What is WebRTC<\/h2>\n<p>\n<img decoding=\"async\" alt=\"WebRTC and video surveillance: how we eliminated video latency with cameras\" src=\"\/wp-content\/uploads\/2019\/04\/0cf3c13dba71f6b268113af77841e521.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n(<noindex>c<\/noindex>)<\/p>\n<p>The WebRTC platform was developed by Google in 2011 to transmit streaming video and audio data between browsers and mobile applications with minimal latency. It uses the standard UDP protocol and special flow control algorithms. Today, it is an open-source project that is actively supported and developed by Google.<\/p>\n<p>WebRTC is a set of technologies for peer-to-peer video and audio transmission. This means, for example, that users' browsers can send data directly to each other using WebRTC, without relying on remote servers for data storage and processing. All information is also processed by the browsers and mobile applications of the end users.<\/p>\n<p>The convenience and extensive capabilities of this technology have been rightly appreciated by developers of all popular browsers. Today, WebRTC support is implemented in Mozilla Firefox, Opera, Google Chrome (and all Chromium-based browsers), as well as in mobile applications on Android and iOS.<\/p>\n<p>Despite its undeniable advantages, WebRTC has several significant drawbacks. <\/p>\n<h2>Challenges of Selection<\/h2>\n<p>\nThe WebRTC technology is much more complex in terms of network interactions due to its P2P nature. It is difficult to debug and test, and it can behave unpredictably. Additionally, we need to overcome NAT and firewalls, and ensure functionality in networks where UDP is blocked.<\/p>\n<p>Google's WebRTC implementation is very challenging to use. There is even an entire company that provides services for assembling SDKs. Plus, integrating Google's implementation with our system has been very difficult without re-encoding all video.<\/p>\n<p>However, we have long wanted to provide users with the ability to work with a full-fledged 'live' video stream and minimize the latency of the image on the screen compared to the actual events. Additionally, we wanted to make the use of PTZ cameras more comfortable, where delays are critically important.<\/p>\n<p>Given that other implementations for combating lag currently have limited functionality and perform noticeably worse, we decided to use WebRTC. <\/p>\n<h2>What We Did<\/h2>\n<p>\n<img decoding=\"async\" alt=\"WebRTC and video surveillance: how we eliminated video latency with cameras\" src=\"\/wp-content\/uploads\/2019\/04\/714f94de43114e552e4d818e9ec927ae.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProperly implementing the WebRTC platform is no easy task. Any miscalculation or inaccuracy can lead to video transmission delays not only failing to decrease compared to other platforms but increasing instead.<\/p>\n<p>For WebRTC to function correctly, it is essential first to conduct a technological modernization of the stack for web video. That\u2019s exactly what we did.<\/p>\n<p>First, we implemented a signaling protocol server for WebRTC over WebSocket and deployed a WebRTC peer server in the cloud based on the SDK from webrtc.org. Its purpose is to distribute video streams to client WebRTC peers in H.264 + Opus\/G.711 format without video transcoding.<\/p>\n<p>We chose WebSocket as the signaling protocol because it has robust support across all popular web browsers. This significantly reduces not only development overhead but also eliminates the time and resources spent on repeated TCP and TLS handshakes compared to AJAX.<\/p>\n<p>The issue is that by default, WebRTC does not provide a signaling protocol necessary for correctly establishing, maintaining, and terminating real-time video connections between the source and client applications.<\/p>\n<p>To implement the signaling technology on our own, we needed to develop our signaling server supporting multiple web protocols (WebSocket, WebRTC) along with secure session management and real-time notifications, video management, and many other parameters.<\/p>\n<p>We overcame P2P limitations by reducing latency not through P2P, but through UDP and flow control aimed at minimizing delays. This is also embedded in WebRTC, as the primary use case is P2P conversations through the browser.<\/p>\n<p>In the mobile client, we implemented a player using the SDK from webrtc.org, as it correctly handles stream management, includes all known Forward Error Correction (FEC) schemes, and has an appropriate packet retransmission mechanism for all browsers. Additionally, it is important that the SDK from webrtc.org is actively developed by Google.<\/p>\n<h2>What results did we achieve from implementing WebRTC?<\/h2>\n<p>\n<center><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/vk.com\/video_ext.php\" frameborder=\"0\" allowfullscreen><\/iframe><\/center><br \/>\nTo view live video from cameras, we added a new optimized player based on WebRTC to the personal account. It ensures high video loading speeds and completely eliminates the problem of latency accumulation over extended viewing times.<\/p>\n<p>After implementing WebRTC support in the Ivideon cloud service, we can confidently say that our clients now have access to full live video streaming. The delay when broadcasting video now does not exceed one second! In comparison, the previous HLS engine delivered video with a delay of 5-7 seconds. The difference in video playback speed is significant, and users will notice it immediately upon starting to use our video service.<\/p>\n<p>As we anticipated, the implementation of the new player has improved the responsiveness of PTZ and voice communication with the camera.<\/p>\n<p><img decoding=\"async\" alt=\"WebRTC and video surveillance: how we eliminated video latency with cameras\" src=\"\/wp-content\/uploads\/2019\/04\/b6775b11fbc6d97a7cede32cccc471ab.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThere is just one subtle point we want to highlight. The new WebRTC player is currently operating in test mode. This is why we are not enabling it for all our clients by default. However, you can activate it yourself by enabling the relevant option in the camera settings (you need to go to the <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.ivideon.com\/my\/\">personal account<\/a><\/noindex>).<\/p>\n<h2>Features of WebRTC Implementation in the Ivideon Service<\/h2>\n<p>\n<img decoding=\"async\" alt=\"WebRTC and video surveillance: how we eliminated video latency with cameras\" src=\"\/wp-content\/uploads\/2019\/04\/247e640fa9334a0c144cc6b4296dc23b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWebRTC is still an experimental technology. Its support is not yet correctly implemented in all browsers and user devices, as well as in all cameras.<\/p>\n<p>This explains why we have not made the WebRTC player the default for all users.<\/p>\n<p>For now, we recommend using WebRTC only in Google Chrome browsers. The latest versions of Firefox and Safari also support this technology, but unfortunately, they are still unstable. <\/p>\n<p>We have not yet implemented WebRTC support for mobile browsers. Currently, if you log in from a mobile device and activate WebRTC, this mode will not work. However, WebRTC is available in our mobile applications for <noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.ivideon.client&amp;hl=ru\">Android<\/a><\/noindex> and <noindex><a rel=\"nofollow\" href=\"https:\/\/itunes.apple.com\/ru\/app\/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BD%D0%B0%D0%B1%D0%BB%D1%8E%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-ivideon\/id464234175?mt=8\">iOS<\/a><\/noindex>.<\/p>\n<p>In conclusion, as we discuss the specifics of WebRTC implementation in our service, let\u2019s mention two more subtle points.<\/p>\n<p>Firstly, the technology is designed specifically for streaming live video in real time. Therefore, if your channel's bandwidth is insufficient to transmit the video stream, you will notice frame drops (with HLS, you will notice video stuttering and increased delay, but frames will not be dropped), although the video will still be streamed in real time.<\/p>\n<p>Secondly, since the technology is designed to work specifically with live video in real time, we do not use it for working with archived video data.<\/p>\n<h2>Other changes in the service<\/h2>\n<p>\nCurrently, Flash is no longer involved in the automatic engine selection mechanism. You can still use such a player, but you need to select it manually in your account or camera settings. This is not a trend; according to our service statistics, there are almost no users left working with Flash. Attempting to determine whether the user's browser supports it costs us about 2 seconds of precious time. <\/p>\n<p>Here\u2019s a brief overview of the changes coming to our cloud video surveillance system and your dashboard. Stay with us and keep an eye on the news!<br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ivideon\/blog\/449326\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u043c\u044b \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439, \u0431\u0435\u0437 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430 Ivideon \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0440\u0435\u0441\u0442 \u2013 \u044d\u0442\u043e \u0431\u044b\u043b \u043d\u0430\u0448 \u042d\u0432\u0435\u0440\u0435\u0441\u0442, \u0432\u043e\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u043d\u044f\u043b\u043e \u0443\u0439\u043c\u0443 \u0441\u0438\u043b, \u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u044b, \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e, \u0432\u043e\u0442\u043a\u043d\u0443\u043b\u0438 \u043b\u0435\u0434\u043e\u0440\u0443\u0431 \u0432 \u043c\u0430\u043a\u0443\u0448\u043a\u0443 \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0431\u0443\u0441\u0430. \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0437\u0432\u0443\u043a\u0430 \u0438 \u0432\u0438\u0434\u0435\u043e \u0447\u0435\u0440\u0435\u0437 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f, Web-\u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24131,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32314","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47WebRTC \u0438 \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435: \u043a\u0430\u043a \u043c\u044b \u043f\u043e\u0431\u0435\u0434\u0438\u043b\u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0432\u0438\u0434\u0435\u043e \u0441 \u043a\u0430\u043c\u0435\u0440 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:46:17+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:46:17+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47WebRTC and video surveillance: how we conquered video latency with cameras | ProHoster","description":"From the first days of work on.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47WebRTC \u0438 \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435: \u043a\u0430\u043a \u043c\u044b \u043f\u043e\u0431\u0435\u0434\u0438\u043b\u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0432\u0438\u0434\u0435\u043e \u0441 \u043a\u0430\u043c\u0435\u0440 | ProHoster","og:description":"\u0421 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434.","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:46:17+00:00","article:modified_time":"2019-10-31T18:46:17+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32314","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 10:17:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:17:44","updated":"2026-01-21 10:17:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/32314","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=32314"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/32314\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/24131"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=32314"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=32314"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=32314"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}