{"id":7804,"date":"2021-04-08T12:28:57","date_gmt":"2021-04-08T09:28:57","guid":{"rendered":"http:\/\/hqsoftwarelab.com\/?post_type=portfolio&#038;p=7804"},"modified":"2025-03-20T12:02:23","modified_gmt":"2025-03-20T09:02:23","slug":"video-proxying-to-a-webpage","status":"publish","type":"portfolio","link":"https:\/\/hqsoftwarelab.com\/portfolio\/video-proxying-to-a-webpage\/","title":{"rendered":"Telecom: Video Capturing and Proxying to a Webpage"},"content":{"rendered":"\n<section class=\"light-gray-bg section-padding-highlights\">\r\n      <div class=\"container container-small\">\r\n        <h2 class=\"h2\">Highlights <\/h2>\r\n        <p><\/p>\n<ul class=\"hq-list\">\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Proxying several video streams captured from multiple cameras or servers<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Integration of video streams into web pages<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Multithreading for streaming<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Object recognition from video<\/span><\/li>\n<\/ul>\n        <div class=\"row technologies-used\">\r\n          <div class=\"col\">\r\n            <div class=\"technologies-used__col\">\r\n              <p><span>Technologies Used:<\/span> Node.js, Python, FFmpeg, AWS, React.js<\/p>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"col-auto\">\r\n                          <div class=\"technologies-used__col\"><p><span>Methodology:<\/span> Agile<\/p><\/div>\r\n                        <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/section>\n\n<section class=\"section text-block\">\r\n      <div class=\"container container-small\">\r\n        <h2><b>Results<\/b><\/h2>\n<p><span style=\"font-weight: 400\">Teaming up with the HQSoftware development team, the client delivered a powerful solution that allows for capturing video from cameras and reformatting the stream into web-friendly formats that can be embedded in web pages. The software is also capable of analyzing the video to recognize various objects, such as moving cars, pedestrians, or license plates.<\/span><\/p>\n<style>\n    .portfolioSwiper-image {\n        object-fit: cover;\n        display: block;\n        margin-left: auto;\n        margin-right: auto;\n        \/*height: 100%;*\/\n    }\n    @media (max-width: 767px) {\n        .portfolioSwiper-image {\n            object-fit: cover;\n            display: block;\n            margin-left: auto;\n            margin-right: auto;\n            \/*height: 100%;*\/\n        }\n    }\n<\/style>\n<div class=\"swiper portfolioSwiper\" style=\"max-width: unset;\">\n    <div class=\"swiper-wrapper\">\n        <div class=\"swiper-slide\">\n            <div><img decoding=\"async\" class=\"portfolioSwiper-image\" loading=\"eager\" src=\"\/wp-content\/themes\/hq\/images\/photo_2025-09-19_10-02-31.jpg\" alt=\"photo 2025 09 19 10 02 31 -\" title=\"\"><\/div>\n            <div class=\"swiper-slide-text\">\n            <\/div>\n        <\/div>\n        <div class=\"swiper-slide\">\n            <div class=\"sas\">\n                <img decoding=\"async\" class=\"portfolioSwiper-image\" loading=\"eager\" src=\"\/wp-content\/themes\/hq\/images\/1_240827.jpg\" alt=\"1 240827 -\" title=\"\">\n            <\/div>\n            <div class=\"swiper-slide-text\">\n            <\/div>\n        <\/div>\n        <div class=\"swiper-slide\">\n            <div><img decoding=\"async\" class=\"portfolioSwiper-image\" loading=\"eager\" src=\"\/wp-content\/themes\/hq\/images\/2_240724.jpg\" alt=\"2 240724 -\" title=\"\"><\/div>\n            <div class=\"swiper-slide-text\">\n            <\/div>\n        <\/div>\n        <div class=\"swiper-slide\">\n            <div><img decoding=\"async\" class=\"portfolioSwiper-image\" loading=\"eager\" src=\"\/wp-content\/themes\/hq\/images\/3_240125.jpg\" alt=\"3 240125 -\" title=\"\"><\/div>\n            <div class=\"swiper-slide-text\">\n            <\/div>\n        <\/div>\n        <div class=\"swiper-slide\">\n            <div><img decoding=\"async\" class=\"portfolioSwiper-image\" loading=\"eager\" src=\"\/wp-content\/themes\/hq\/images\/4_230616.jpg\" alt=\"4 230616 -\" title=\"\"><\/div>\n            <div class=\"swiper-slide-text\">\n            <\/div>\n        <\/div>\n        <div class=\"swiper-slide\">\n            <div><img decoding=\"async\" class=\"portfolioSwiper-image\" loading=\"eager\" src=\"\/wp-content\/themes\/hq\/images\/5_220815.jpg\" alt=\"5 220815 -\" title=\"\"><\/div>\n            <div class=\"swiper-slide-text\">\n            <\/div>\n        <\/div>\n        <div class=\"swiper-slide\">\n            <div><img decoding=\"async\" class=\"portfolioSwiper-image\" loading=\"eager\" src=\"\/wp-content\/themes\/hq\/images\/6_210625.jpg\" alt=\"6 210625 -\" title=\"\"><\/div>\n            <div class=\"swiper-slide-text\">\n            <\/div>\n        <\/div>\n        <div class=\"swiper-slide\">\n            <div><img decoding=\"async\" class=\"portfolioSwiper-image\" loading=\"eager\" src=\"\/wp-content\/themes\/hq\/images\/7_210618.jpg\" alt=\"7 210618 -\" title=\"\"><\/div>\n            <div class=\"swiper-slide-text\">\n            <\/div>\n        <\/div>\n    <\/div>\n    <div class=\"swiper-pagination\"><\/div>\n<\/div>\n<h2><b>Challenge<\/b><\/h2>\n<p><span style=\"font-weight: 400\">The client is building an IoT platform with a VoD module, processing data from cameras directly and VMs.<\/span><\/p>\n<p><span style=\"font-weight: 400\">The client needed a solution that allowed for connections to video cameras and server storage to pull the video and proxy the content to the webpage through a video frame.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-7807 size-full\" src=\"https:\/\/hqsoftwarelab.com\/wp-content\/uploads\/2021\/04\/4-architecture.jpg\" alt=\"4 architecture -\" width=\"700\" height=\"500\" title=\"\" srcset=\"https:\/\/hqsoftwarelab.com\/wp-content\/uploads\/2021\/04\/4-architecture.jpg 700w, https:\/\/hqsoftwarelab.com\/wp-content\/uploads\/2021\/04\/4-architecture-300x214.jpg 300w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\"><\/p>\n<p><span style=\"font-weight: 400\">The user can put the video stream on other websites simply by accessing the code snippet, then copying and pasting it into the webpage.<\/span><\/p>\n<p><span style=\"font-weight: 400\">During the process, the development team had to address the following tasks:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Capturing the video stream<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Proxying the video into a format supported by browsers<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Allowing the addition of new ONVIF (direct access through Open Network Video Interface Protocol) and VMS (Video Management System) hardware<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Importing and exporting camera data<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Multithreading of video streams<\/span><\/li>\n<\/ul>\n<h2><b>Solution<\/b><\/h2>\n<p><span style=\"font-weight: 400\">To address the customer&rsquo;s issues, the HQSoftware team implemented a video module as a standalone dockerized web application. To make future horizontal scaling easier down the road, the web application is decoupled from the main IoT platform.<\/span><\/p>\n<p><span style=\"font-weight: 400\">The solution allows for configuring cameras through the web interface and pulling the video stream to use it on web pages. These video streams can also be viewed by multiple users at the same time.<\/span><\/p>\n<blockquote class=\"blockquote-bg\" style=\"background-image: url('\/wp-content\/themes\/hq\/images\/11.svg');color: white; background-repeat: no-repeat;background-size: cover;\">\n    <div class=\"row flex-column-reverse flex-md-row\">\n        <div class=\"col-md-4 mb-3\">\n            <p><img decoding=\"async\" style=\"max-width: 50%;\" src=\"\/wp-content\/themes\/hq\/images\/Vika%20Rokash-photoaidcom-cropped.png\" alt=\"Vika Rokash photoaidcom cropped -\" title=\"\"><\/p>\n        <\/div>\n        <div class=\"col-md-8 mb-4 mb-md-4 pl-md-5 d-flex flex-column justify-content-between\">\n            <div class=\"h3\">Looking for similar solutions or something unique to your needs?<\/div>\n            <p>Contact us today! We&rsquo;re happy to explore your needs!<\/p>\n        <\/div>\n    <\/div>\n    <div class=\"row\">\n        <div class=\"col-md-4\">\n            <p>\n                <strong>Victoria Rokash<\/strong><br>\n                Business Development Manager\n            <\/p>\n        <\/div>\n        <div class=\"col-md-8 d-flex align-items-end mt-4 mt-md-0 pl-md-5\">\n            <a class=\"btn btn-primary btn-view-all prototype-btn-text\" href=\"\/contact-us\/\">Get in touch<\/a>\n        <\/div>\n    <\/div>\n<\/blockquote>\n<h2><b>Functionality<\/b><\/h2>\n<p><span style=\"font-weight: 400\">The HQSoftware development team implemented the following features for the app:<\/span><\/p>\n<p><b>Camera configuration.<\/b><span style=\"font-weight: 400\"> Users can add cameras to the system manually through the web application, or import the information in a CSV file of a predefined format. The parameters required:<br><\/span><span style=\"font-weight: 400\">&ndash; Video source type: VMS or ONVIF<\/span><span style=\"font-weight: 400\"><br><\/span><span style=\"font-weight: 400\">&ndash; Source RTSP URL and authentication parameters for the camera RTSP stream (ONVIF)<\/span><span style=\"font-weight: 400\"><br><\/span><span style=\"font-weight: 400\">&ndash; VMS IP address, authentication parameters, camera identifier (VMS)<\/span><span style=\"font-weight: 400\"><br><\/span><span style=\"font-weight: 400\">&ndash; Camera GPS coordinates<\/span><\/p>\n<p><b>List of cameras.<\/b><span style=\"font-weight: 400\"> After configuring the cameras, users are able to view them in a list format, which shows each camera&rsquo;s ID, location, source, and URL. In addition, they can copy the snippet of the HTML code.<\/span><\/p>\n<p><span style=\"font-weight: 400\"><b>Camera code snippet.<\/b> Each camera has an HTML code snippet that users can view, copy, and paste into other web pages.<\/span><\/p>\n<p><span style=\"font-weight: 400\"><b>Embedded streaming.<\/b> A major challenge of the project was making the video stream viewable on web pages. To address it, the HQSoftware team implemented a module that launches the FFmpeg process to transcode the RTSP stream to HLS.<\/span><\/p>\n<p><span style=\"font-weight: 400\">The transcoding process happens when there&rsquo;s no one watching the stream; this helps save computing power for running the module.<\/span><\/p>\n<h2><b>Specific features<\/b><span style=\"font-weight: 400\"><br><\/span><\/h2>\n<p><b>Multithreading.<\/b><span style=\"font-weight: 400\"> Another outstanding feature the team built is the ability to view video streaming of each device on several devices, for all kinds of purposes.<\/span><\/p>\n<p><b>Object recognition.<\/b><span style=\"font-weight: 400\"> HQSoftware developers integrated open-source AI technology to enable object recognition on edge computing devices &mdash; in this case, cameras. The system is able to detect pedestrians, moving cars, or license plates.<\/span><\/p>\n<p><span style=\"font-weight: 400\">The software takes the RTSP stream, runs a neural network cascade over each frame of the video, and then streams the video along with the recognized metadata. To store the data, the team relies on AWS infrastructure.<\/span><\/p>\n<h2><b>Backend and frontend<\/b><\/h2>\n<p><span style=\"font-weight: 400\">To make sure the software solution offers top-notch performance, the HQSoftware developers built:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">A Python and Node.js-based backend to handle video-processing, proxying, and object recognition.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">A React.js dashboard for users to utilize the software: set up cameras, import and export data, and extract code snippets.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">AWS, utilized for data storage.<\/span><\/li>\n<\/ul>\n<h2><b>Methodology<\/b><\/h2>\n<p><span style=\"font-weight: 400\">As the product is being constantly shaped by customer insights, the team adopted the Agile methodology to quickly incorporate new requirements. The biweekly pace of deliverables allows the customers to stay in control of how their unique vision feeds into the product.<\/span><\/p>\n<hr>\n<p>Have a similar project in mind? Check out our <a href=\"\/solutions\/video\/\">video solutions development services<\/a>.<\/p>\n<div id=\"gtx-trans\" style=\"position: absolute;left: -5px;top: 2326.69px\">\n<div class=\"gtx-trans-icon\">&nbsp;<\/div>\n<\/div>\n      <\/div>\r\n    <\/section>\n\n\r\n<section class=\"section-news\">\r\n      <div class=\"container\">\r\n        <div class=\"section-top text-center\">\r\n          <h2 class=\"h2 section-title\">Check Out Other Works<\/h2>\r\n          <p>See How We Approach Business Objectives\r\n\r\n<\/p>\r\n        <\/div>\r\n        <div class=\"row section-news-row\">\r\n\r\n\r\n      <div class=\"col-md-4 section-news-item\">\r\n          <div class=\"section-news-item__inner \">\r\n              <a href=\"https:\/\/hqsoftwarelab.com\/portfolio\/system-for-isochronic-multi-angle-video-capturing-and-processing\/\" class=\"section-news-item__link\"><\/a>\r\n              <div class=\"section-news-item__img\">\r\n                  <img decoding=\"async\" src=\"https:\/\/hqsoftwarelab.com\/wp-content\/uploads\/2020\/03\/video-capturing-and-processing-solution-353x235.jpg\" loading=\"lazy\" data-srcset=\"https:\/\/hqsoftwarelab.com\/wp-content\/uploads\/2020\/03\/video-capturing-and-processing-solution-726x482.jpg 2x\" alt=\"video capturing and processing solution 353x235 -\" title=\"\">\r\n              <\/div>\r\n              <div class=\"section-news-item__top\">\r\n                  <div class=\"section-news-item__top-left\">\r\n                      <a href=\"https:\/\/hqsoftwarelab.com\/industry\/entertainment\/\" class=\"section-news-item__category\">Entertainment<\/a>\r\n                  <\/div>\r\n                  <span class=\"section-news-item__readmore hq-readmore icon-arrow-right-i\"><\/span>\r\n              <\/div>\r\n              <div class=\"h3 section-news-item__bottom\">System for Isochronic, Multi-Angle Video Capturing and Processing<\/div>\r\n          <\/div>\r\n      <\/div>\r\n\r\n      \r\n      <div class=\"col-md-4 section-news-item\">\r\n          <div class=\"section-news-item__inner \">\r\n              <a href=\"https:\/\/hqsoftwarelab.com\/portfolio\/ar-vr-voip-application-for-calls-photos-drawing\/\" class=\"section-news-item__link\"><\/a>\r\n              <div class=\"section-news-item__img\">\r\n                  <img decoding=\"async\" src=\"https:\/\/hqsoftwarelab.com\/wp-content\/uploads\/2020\/01\/Banner.-VoIP-Application-for-Calls-Photos-and-Drawing_-4x-Increase-in-App-Downloads-353x235.png\" loading=\"lazy\" data-srcset=\"https:\/\/hqsoftwarelab.com\/wp-content\/uploads\/2020\/01\/Banner.-VoIP-Application-for-Calls-Photos-and-Drawing_-4x-Increase-in-App-Downloads-726x482.png 2x\" alt=\"Banner. VoIP Application for Calls Photos and Drawing  4x Increase in App Downloads 353x235 -\" title=\"\">\r\n              <\/div>\r\n              <div class=\"section-news-item__top\">\r\n                  <div class=\"section-news-item__top-left\">\r\n                      <a href=\"https:\/\/hqsoftwarelab.com\/industry\/augmented-virtual-reality\/\" class=\"section-news-item__category\">AR\/VR<\/a>\r\n                  <\/div>\r\n                  <span class=\"section-news-item__readmore hq-readmore icon-arrow-right-i\"><\/span>\r\n              <\/div>\r\n              <div class=\"h3 section-news-item__bottom\">VoIP Application for Calls, Photos, and Drawing: 4x Increase in App Downloads<\/div>\r\n          <\/div>\r\n      <\/div>\r\n\r\n      \r\n      <div class=\"col-md-4 section-news-item\">\r\n          <div class=\"section-news-item__inner \">\r\n              <a href=\"https:\/\/hqsoftwarelab.com\/portfolio\/entertainment-application-for-air-travelers-on-and-off-board\/\" class=\"section-news-item__link\"><\/a>\r\n              <div class=\"section-news-item__img\">\r\n                  <img decoding=\"async\" src=\"https:\/\/hqsoftwarelab.com\/wp-content\/uploads\/2020\/01\/entertainment-application-for-air-travelers-353x235.jpg\" loading=\"lazy\" data-srcset=\"https:\/\/hqsoftwarelab.com\/wp-content\/uploads\/2020\/01\/entertainment-application-for-air-travelers-726x482.jpg 2x\" alt=\"entertainment application for air travelers 353x235 -\" title=\"\">\r\n              <\/div>\r\n              <div class=\"section-news-item__top\">\r\n                  <div class=\"section-news-item__top-left\">\r\n                      <a href=\"https:\/\/hqsoftwarelab.com\/industry\/entertainment\/\" class=\"section-news-item__category\">Entertainment<\/a>\r\n                  <\/div>\r\n                  <span class=\"section-news-item__readmore hq-readmore icon-arrow-right-i\"><\/span>\r\n              <\/div>\r\n              <div class=\"h3 section-news-item__bottom\">Entertainment Application for Air Travelers, on and off Board<\/div>\r\n          <\/div>\r\n      <\/div>\r\n\r\n              <\/div>\r\n                          <\/div>\r\n<\/section>\n\n\n\n<section class=\"section your-project\">\r\n    <div class=\"anchor-consultation\" id=\"consultation\"><\/div>\r\n  <div class=\"container\">\r\n    <div class=\"row\">\r\n      <div class=\"col-md-7\">\r\n        <div class=\"your-project__left\">\r\n          <div class=\"h2 your-project__title\">Kick Off With Your Project Today<\/div>\r\n          <p>\n<\/p><div class=\"wpcf7 no-js\" id=\"wpcf7-f13037-o1\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"13037\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/wp-json\/wp\/v2\/portfolio\/7804#wpcf7-f13037-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" enctype=\"multipart\/form-data\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"13037\"><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.4\"><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\"><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f13037-o1\"><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\"><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\">\n<\/fieldset>\n<div class=\"row\">\n<input class=\"wpcf7-form-control wpcf7-hidden client-id-ga\" value=\"\" type=\"hidden\" name=\"client-id-ga\">\n\t<div class=\"col-md-6 your-project-form__line\">\n\t\t<p><label>Your Name<span style=\"font-weight: bold; font-size: 16px;\">*<\/span><\/label><br>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-name\"><input size=\"40\" maxlength=\"50\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required form-control\" id=\"kv_name\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"your-name\"><\/span>\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"col-md-6 your-project-form__line\">\n\t\t<p><label>Your Email<span style=\"font-weight: bold; font-size: 16px;\">*<\/span><\/label><br>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"email\"><input size=\"40\" maxlength=\"50\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email form-control\" id=\"kv_email\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"email\" name=\"email\"><\/span>\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"col-12\">\n\t\t<p><label>How Can We Help You?<span style=\"font-weight: bold; font-size: 16px;\">*<\/span><\/label><br>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"text\"><textarea cols=\"40\" rows=\"3\" maxlength=\"2000\" minlength=\"1\" class=\"wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required text-area form-control resize-none\" aria-required=\"true\" aria-invalid=\"false\" name=\"text\"><\/textarea><\/span>\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"col-12 text-right your-project-form__hint\">\n\t\t<p><small><span style=\"font-weight: bold; font-size: 16px;\">*<\/span>Required Fields<\/small>\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"col-12\">\n\t\t<div class=\"fl_upld\">\n\t\t\t<div class=\"file-attach fl_upld-inner\">\n\t\t\t\t<div class=\"button fl_upld-attach\">\n\t\t\t\t\t<p>Attach File<span class=\"wpcf7-form-control-wrap\" data-name=\"multilinefile-55\"><input size=\"40\" class=\"wpcf7-form-control wpcf7-file button\" accept=\".jpg,.jpeg,.png,.bmp,.tiff,.tif,.gif,.pdf,.doc,.docx,.odt,.rtf,.txt,.xlsx,.xls,.ppt,.pptx,.zip,.rar,.7z\" aria-invalid=\"false\" type=\"file\" name=\"multilinefile-55\"><\/span>\n\t\t\t\t\t<\/p>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"selected\">\n\t\t\t\t<\/div>\n\t\t\t\t<p><button type=\"button\" class=\"remove-file resetLink icon-close-i\"><\/button>\n\t\t\t\t<\/p>\n\t\t\t<\/div>\n\t\t\t<div class=\"col-12 col-md-5\">\n\t\t\t\t<div class=\"checkboxes\">\n\t\t\t\t\t<div class=\"custom-control custom-checkbox\">\n\t\t\t\t\t\t<p><input type=\"checkbox\" name=\"nda\" id=\"nda\" class=\"custom-control-input\"><label class=\"custom-control-label\" for=\"nda\">NDA required<\/label>\n\t\t\t\t\t\t<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"custom-control custom-checkbox\">\n\t\t\t\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"accept_privacy\"><span class=\"wpcf7-form-control wpcf7-acceptance\"><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"accept_privacy\" value=\"1\" class=\"accept_privacy\" id=\"accept_privacy\" aria-invalid=\"false\"><span class=\"wpcf7-list-item-label\"><span>I accept your <\/span><a href=\"\/privacy-policy\/\" target=\"_blank\">privacy policy<\/a><span style=\"font-weight: bold; font-size: 16px;\">*<\/span><\/span><\/label><\/span><\/span><\/span>\n\t\t\t\t\t\t<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"col-lg-7 your-project-form__line mb-sm-30\">\n\t\t<div class=\"turnstile-kick\">\n\t\t\t<p><\/p><div class=\"cf7-cf-turnstile\" style=\"margin-top: 0px; margin-bottom: -15px;\"> <div id=\"cf-turnstile-cf7-3306203072\" class=\"cf-turnstile\" data-callback=\"turnstileCF7Callback\" data-sitekey=\"0x4AAAAAABAHYcatADuFynKx\" data-theme=\"light\" data-language=\"auto\" data-size=\"flexible\" data-retry=\"auto\" data-retry-interval=\"1000\" data-refresh-expired=\"auto\" data-action=\"contact-form-7\" data-appearance=\"always\"><\/div> <style>.wpcf7-submit { pointer-events: none; opacity: 0.5; }<\/style> <script>document.addEventListener(\"DOMContentLoaded\", function() { setTimeout(function(){ var e=document.getElementById(\"cf-turnstile-cf7-3306203072\"); e&&!e.innerHTML.trim()&&(turnstile.remove(\"#cf-turnstile-cf7-3306203072\"), turnstile.render(\"#cf-turnstile-cf7-3306203072\", {sitekey:\"0x4AAAAAABAHYcatADuFynKx\"})); }, 100); });<\/script> <br class=\"cf-turnstile-br cf-turnstile-br-cf7-3306203072\"> <style>#cf-turnstile-cf7-3306203072 { margin-left: -15px; }<\/style> <script>document.addEventListener(\"DOMContentLoaded\",function(){document.querySelectorAll('.wpcf7-form').forEach(function(e){e.addEventListener('submit',function(){if(document.getElementById('cf-turnstile-cf7-3306203072')){setTimeout(function(){turnstile.reset('#cf-turnstile-cf7-3306203072');},1000)}})})});<\/script> <\/div>\n\t\t\t\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"col-lg-5 your-project-form__line align-self-end text-center text-md-right\">\n\t\t<p><input class=\"wpcf7-form-control wpcf7-submit has-spinner btn btn-primary your-project-form__btn turnstile-kick-btn\" type=\"submit\" value=\"Get Started Now\">\n\t\t<\/p>\n\t<\/div>\n<\/div><input type=\"hidden\" class=\"wpcf7-pum\" value='{\"closepopup\":false,\"closedelay\":0,\"openpopup\":false,\"openpopup_id\":0}'><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n\n        <\/div>\r\n      <\/div>\r\n      <div class=\"col-md-5 d-none d-md-flex flex-column\">\r\n        <div class=\"seo-block\">\r\n          <p class=\"seo-block__text text-center\">We are open to seeing your business needs and determining the best solution. Complete this form, and receive a free personalized proposal from your dedicated manager.<\/p>\r\n\r\n                            <div class=\"seo-block__image\">\r\n                    <img decoding=\"async\" src=\"https:\/\/hqsoftwarelab.com\/wp-content\/uploads\/2020\/01\/ava1@2.jpg\" loading=\"lazy\" data-srcset=\"https:\/\/hqsoftwarelab.com\/wp-content\/uploads\/2020\/01\/ava1@2.jpg 2x\" alt=\"ava1@2 -\" title=\"\">\r\n                <\/div>\r\n                <p class=\"seo-block__name\">Sergei Vardomatski<\/p>\r\n                <p class=\"seo-block__position\">Founder<\/p>\r\n            \r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\n\n\n","protected":false},"template":"","meta":{"_acf_changed":true},"industry":[259],"technologies_taxonomy":[8,84,233,260,262],"class_list":["post-7804","portfolio","type-portfolio","status-publish","hentry","industry-telecom","technologies_taxonomy-node-js","technologies_taxonomy-python-web-development","technologies_taxonomy-ffmpeg","technologies_taxonomy-aws","technologies_taxonomy-react-js"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.3 (Yoast SEO v26.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Video Capturing and Proxying to a Webpage Software<\/title>\n<meta name=\"description\" content=\"Software for connections to video cameras and server storage to pull the video and proxy the content to the webpage through a video frame.\" \/>\n<meta name=\"robots\" content=\"index,follow\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hqsoftwarelab.com\/portfolio\/video-proxying-to-a-webpage\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Telecom: Video Capturing and Proxying to a Webpage\" \/>\n<meta property=\"og:description\" content=\"Software for connections to video cameras and server storage to pull the video and proxy the content to the webpage through a video frame.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hqsoftwarelab.com\/portfolio\/video-proxying-to-a-webpage\/\" \/>\n<meta property=\"og:site_name\" content=\"HQSoftware\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/HQSoftwareCompany\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-20T09:02:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hqsoftwarelab.com\/wp-content\/uploads\/2021\/04\/Header-2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1366\" \/>\n\t<meta property=\"og:image:height\" content=\"490\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/hqsoftwarelab.com\/wp-content\/uploads\/2021\/04\/Header-2.jpg\" \/>\n<meta name=\"twitter:site\" content=\"@HQSoftware\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Video Capturing and Proxying to a Webpage Software","description":"Software for connections to video cameras and server storage to pull the video and proxy the content to the webpage through a video frame.","robots":{"index,follow":"index,follow"},"canonical":"https:\/\/hqsoftwarelab.com\/portfolio\/video-proxying-to-a-webpage\/","og_locale":"en_US","og_type":"article","og_title":"Telecom: Video Capturing and Proxying to a Webpage","og_description":"Software for connections to video cameras and server storage to pull the video and proxy the content to the webpage through a video frame.","og_url":"https:\/\/hqsoftwarelab.com\/portfolio\/video-proxying-to-a-webpage\/","og_site_name":"HQSoftware","article_publisher":"https:\/\/www.facebook.com\/HQSoftwareCompany","article_modified_time":"2025-03-20T09:02:23+00:00","og_image":[{"width":1366,"height":490,"url":"https:\/\/hqsoftwarelab.com\/wp-content\/uploads\/2021\/04\/Header-2.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_image":"https:\/\/hqsoftwarelab.com\/wp-content\/uploads\/2021\/04\/Header-2.jpg","twitter_site":"@HQSoftware","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/hqsoftwarelab.com\/portfolio\/video-proxying-to-a-webpage\/","url":"https:\/\/hqsoftwarelab.com\/portfolio\/video-proxying-to-a-webpage\/","name":"Video Capturing and Proxying to a Webpage Software","isPartOf":{"@id":"https:\/\/hqsoftwarelab.com\/#website"},"datePublished":"2021-04-08T09:28:57+00:00","dateModified":"2025-03-20T09:02:23+00:00","description":"Software for connections to video cameras and server storage to pull the video and proxy the content to the webpage through a video frame.","breadcrumb":{"@id":"https:\/\/hqsoftwarelab.com\/portfolio\/video-proxying-to-a-webpage\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hqsoftwarelab.com\/portfolio\/video-proxying-to-a-webpage\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/hqsoftwarelab.com\/portfolio\/video-proxying-to-a-webpage\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Main Page","item":"https:\/\/hqsoftwarelab.com\/"},{"@type":"ListItem","position":2,"name":"Telecom: Video Capturing and Proxying to a Webpage"}]},{"@type":"WebSite","@id":"https:\/\/hqsoftwarelab.com\/#website","url":"https:\/\/hqsoftwarelab.com\/","name":"HQSoftware","description":"Software Development Company","publisher":{"@id":"https:\/\/hqsoftwarelab.com\/#organization"},"alternateName":"HQ Software","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hqsoftwarelab.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/hqsoftwarelab.com\/#organization","name":"HQSoftware","url":"https:\/\/hqsoftwarelab.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/hqsoftwarelab.com\/#\/schema\/logo\/image\/","url":"https:\/\/hqsoftwarelab.com\/wp-content\/uploads\/2020\/01\/logo.svg","contentUrl":"https:\/\/hqsoftwarelab.com\/wp-content\/uploads\/2020\/01\/logo.svg","width":161,"height":19,"caption":"HQSoftware"},"image":{"@id":"https:\/\/hqsoftwarelab.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/HQSoftwareCompany","https:\/\/x.com\/HQSoftware"]}]}},"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/hqsoftwarelab.com\/wp-json\/wp\/v2\/portfolio\/7804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hqsoftwarelab.com\/wp-json\/wp\/v2\/portfolio"}],"about":[{"href":"https:\/\/hqsoftwarelab.com\/wp-json\/wp\/v2\/types\/portfolio"}],"wp:attachment":[{"href":"https:\/\/hqsoftwarelab.com\/wp-json\/wp\/v2\/media?parent=7804"}],"wp:term":[{"taxonomy":"industry","embeddable":true,"href":"https:\/\/hqsoftwarelab.com\/wp-json\/wp\/v2\/industry?post=7804"},{"taxonomy":"technologies_taxonomy","embeddable":true,"href":"https:\/\/hqsoftwarelab.com\/wp-json\/wp\/v2\/technologies_taxonomy?post=7804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}