{"version":3,"file":"component---src-pages-frequently-asked-question-websocket-stream-proxy-index-mdx-8c551077fee03ad7b42b.js","mappings":"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","sources":["webpack://instar-wiki/./src/pages/Frequently_Asked_Question/Websocket_Stream_Proxy/index.mdx"],"sourcesContent":["import * as React from 'react'\n /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsxRuntime classic */\n/* @jsx mdx */\nimport BreadCrumbs from 'components/Layout/BreadCrumbs';\nimport SEOHelmet from 'components/Layout/SEOHelmet';\nexport const _frontmatter = {\n \"title\": \"Proxy for the Websocket WQHD Videostream\",\n \"path\": \"/Frequently_Asked_Question/Websocket_Stream_Proxy/\",\n \"dateChanged\": \"2022-12-09\",\n \"author\": \"Mike Polinowski\",\n \"excerpt\": \"I have a 9008 and 9408 in operation. With the 9008, I have always been able to use an Apache proxy to assign an arbitrary domain to the MJPG stream. Is it generally no longer possible to use the stream via proxy?\",\n \"image\": \"../FAQ_SearchThumb.png\",\n \"social\": \"/images/Search/FAQ_SearchThumb.webp\",\n \"toc\": \"/images/Search/TOC_Icons/Wiki_Tiles_FAQs_white.webp\",\n \"chapter\": \"FAQs\",\n \"faq\": \"WQHD & UHD Cameras\"\n};\nconst layoutProps = {\n _frontmatter\n};\nconst MDXLayout = \"wrapper\";\nexport default function MDXContent({\n components,\n ...props\n}) {\n return \n\n \n \n \n

{`Proxy for the Websocket WQHD Videostream`}

\n

{`Q`}{`: I have a 9008 and 9408 in operation. With the 9008, I have always been able to use an Apache proxy to assign an arbitrary domain to the MJPG stream. Is it generally no longer possible to use the stream via proxy?`}

\n

{`A`}{`: You can use the following NGINX proxy configuration to forward and expose your cameras video stream securely to the internet. Start by `}{`downloading`}{` or cloning the repository:`}

\n
{`git`}{` clone https://github.com/mpolinowski/docker_ws_video_proxy.git`}
\n {/* TOC */}\n \n {/* /TOC */}\n

{`NGINX Configuration`}

\n

{`The important files inside this repository are:`}

\n
{`.`}{`\n├── certs\n│   ├── nginx-selfsigned.crt\n│   └── nginx-selfsigned.key\n├── conf.d\n│   ├── mjpeg-proxy.conf\n│   ├── ws-proxy.conf\n│   └── wss-proxy.conf\n├── nginx.conf`}
\n

{`TLS Certificates`}

\n

{`Note`}{` that the repository contains a self-signed TLS certificate and key. This can be used for testing - or simply generate a fresh one using the OpenSSL CLI tool:`}

\n
{`cd`}{` docker_ws_video_proxy/certs\nopenssl req -new -newkey rsa:4096 -x509 -sha256 -days `}{`365`}{` -nodes -out nginx-selfsigned.crt -keyout nginx-selfsigned.key`}
\n

{`But `}{`also note`}{` that Google Chrome is going to refuse a self-signed certificate for Websocket connections. You will have to replace them with CA signed certificates if you want to setup a secure connection.`}

\n

{`NGINX Main Configuration`}

\n

{`The main configuration file for the NGINX proxy is `}{`nginx.conf`}{`. Here you can choose what kind of proxy you want to setup - comment out all configuration files here that you `}{`do not want`}{` to use:`}

\n

{`docker`}{`_`}{`ws`}{`_`}{`video`}{`_`}{`proxy/nginx.conf`}

\n
{`# MJPEG proxy`}{`\ninclude /etc/nginx/conf.d/mjpeg-proxy.conf`}{`;`}{`\n`}{`# Secure MJPEG proxy`}{`\n`}{`# include /etc/nginx/conf.d/mjpeg-secure-proxy.conf;`}{`\n`}{`# Websocket proxy`}{`\n`}{`# include /etc/nginx/conf.d/ws-proxy.conf;`}{`\n`}{`# Secure websocket proxy`}{`\n`}{`# include /etc/nginx/conf.d/wss-proxy.conf;`}
\n

{`Server Configuration`}

\n

{`Next are the server configuration files themselves - for example the `}{`MJPEG Proxy`}{` server:`}

\n

{`docker`}{`_`}{`ws`}{`_`}{`video`}{`_`}{`proxy/conf.d/mjpeg-proxy.conf`}

\n

{`Here the `}{`upstream`}{` host is always your IP cameras local IP address or domain name followed by the HTTP port - e.g. `}{`192.168.2.120:80`}{`:`}

\n
{`upstream mjpeghost `}{`{`}{`\n    `}{`# IP and http port of your camera`}{`\n    server `}{`192.168`}{`.2.120:80`}{`;`}{`\n`}{`}`}
\n

{`The `}{`Server Block`}{` allows you to set the port on which you want NGINX to re-stream your camera's video, e.g. `}{`8888`}{`. The `}{`server_name`}{` is the IP address or domain name of the NGINX host system. In the example below I am re-streaming the video to localhost - this way it is only accessible on the NGINX host itself using the address `}{`http://127.0.0.1:8888`}{`. And lastly there is the `}{`proxy_pass`}{` where you can adjust the `}{`MJPEG URL`}{` according to your needs. The example uses the `}{`/13`}{` stream - which is the smallest one. Change it to `}{`/12`}{` or `}{`/11`}{` when needed. And, of course, you need to add your own username and password:`}

\n
{`server `}{`{`}{`\n    listen `}{`8888`}{`;`}{`\n\n    `}{`# IP of your proxy server or localhost`}{`\n    server_name `}{`127.0`}{`.0.1`}{`;`}{`\n\n    location    / `}{`{`}{`\n        proxy_pass http://mjpeghost/livestream/13?action`}{`=`}{`play`}{`&`}{`media`}{`=`}{`mjpeg`}{`&`}{`user`}{`=`}{`admin`}{`&`}{`pwd`}{`=`}{`instar`}{`;`}{`\n        proxy_http_version `}{`1.1`}{`;`}{`\n        proxy_set_header Upgrade `}{`$http_upgrade`}{`;`}{`\n        proxy_set_header Connection `}{`\"upgrade\"`}{`;`}{`\n        proxy_set_header Host `}{`$host`}{`:`}{`$server_port`}{`;`}{`\n        proxy_set_header X-Forwarded-Proto `}{`$scheme`}{`;`}{`\n        proxy_set_header X-Forwarded-For `}{`$remote_addr`}{`;`}{`\n        proxy_set_header X-Forwarded-Port `}{`$server_port`}{`;`}{`\n        proxy_set_header X-Request-Start `}{`$msec`}{`;`}{`\n    `}{`}`}{`\n`}{`}`}
\n

{`Run the MJPEG Proxy`}

\n

{`Use a volume mount into the NGINX container to over-write the default configuration. Make sure that `}{`/path/to/docker_ws_video_proxy`}{` point towards the repository you downloaded:`}

\n
{`docker run --rm --network `}{`host`}{` -v /path/to/docker_ws_video_proxy:/etc/nginx --name proxy nginx:alpine`}
\n

{`This will run the container attached to your terminal and destroy the container when you quit. The NGINX proxy is configured to send it's logs to STDOUT - so you will see all access attempts and error messages in your terminal. You can also run the container detached from your console:`}

\n
{`docker run -d --network `}{`host`}{` -v /path/to/docker_ws_video_proxy:/etc/nginx --name proxy nginx:alpine`}
\n

{`To test if it is working open a browser on your host machine and visit `}{`http://127.0.0.1:8888`}{` - you should be able to see the MJPEG Stream of your camera - `}{`without the need to log in`}{`. This is a much more secure way to publish your cameras video to a public web page - as the user that will access this stream will not be able to see the login credentials or send any CGI commands to your camera.`}

\n

{`Secure MJPEG Proxy`}

\n

{`Now that we have the simple MJPEG streaming proxy up and running - let's make it a bit more complicated by adding TLS encryption. As mentioned above, the repository contains a self-signed TLS certificate and key. You replace those with your own - or even better - get a CA signed certificate, e.g. from Let's Encrypt.`}

\n

{`The changes we have to make to the NGINX configuration are fairly simple. Start by selecting the correct configuration file:`}

\n

{`docker`}{`_`}{`ws`}{`_`}{`video`}{`_`}{`proxy/nginx.conf`}

\n
{`# MJPEG proxy`}{`\n`}{`# include /etc/nginx/conf.d/mjpeg-proxy.conf;`}{`\n`}{`# Secure MJPEG proxy`}{`\ninclude /etc/nginx/conf.d/mjpeg-secure-proxy.conf`}{`;`}{`\n`}{`# Websocket proxy`}{`\n`}{`# include /etc/nginx/conf.d/ws-proxy.conf;`}{`\n`}{`# Secure websocket proxy`}{`\n`}{`# include /etc/nginx/conf.d/wss-proxy.conf;`}
\n

{`Now open the configuration file and add your information - just like in the simple MJPEG example above - but note that the `}{`Server Block`}{` now holds the certificate and key file (`}{`which you should replace with your own`}{` - but the included certificate will work for testing):`}

\n
{`# your SSL configuration`}{`\n`}{`# ssl_certificate /opt/letsencrypt/live/my.domain.com/fullchain.pem;`}{`\n`}{`# ssl_certificate_key /opt/letsencrypt/live/my.domain.com/privkey.pem;`}{`\nssl_certificate /etc/nginx/certs/nginx-selfsigned.crt`}{`;`}{` `}{`# Replace with the 2 lines above when using CA Cert`}{`\nssl_certificate_key /etc/nginx/certs/nginx-selfsigned.key`}{`;`}
\n

{`Now stop the NGINX container - if it is still running - and re-start it:`}

\n
{`docker run --rm --network `}{`host`}{` -v /path/to/docker_ws_video_proxy:/etc/nginx --name proxy nginx:alpine`}
\n

{`Now you will have to use HTTPS to access your cameras live video `}{`https://127.0.0.1:8888/`}{`. When using a self-signed certificate your browser will warn you about that - just click to accept.`}

\n

{`Websocket Proxy`}

\n

{`Both the basic and secure websocket proxy configuration are mostly identical to the examples above. So you should now have any issues editing the configuration files.`}

\n

{`But to access the websocket video stream you need a websocket client - like the one provided here:`}

\n \n

{`You can embed this in your website and receive the stream from your NGINX proxy via it:`}

\n \n

{`As mentioned in the TLS section above - you browser will not accept a websocket (wss) connection using a self-signed certificate. You will need to use a tool like `}{`certbot`}{` to generate a CA signed certificate and key for your proxy to be able to work with the secure websocket stream of your camera.`}

\n \n\n
;\n}\n;\nMDXContent.isMDXComponent = true;\n "],"names":["_frontmatter","layoutProps","MDXLayout","MDXContent","_ref","components","props","_objectWithoutProperties","_excluded","mdx","Object","assign","mdxType","SEOHelmet","title","dateChanged","author","tag","description","image","twitter","location","pathname","BreadCrumbs","locationBC","locationEN","locationDE","locationFR","crumbLabel","parentName","isMDXComponent"],"sourceRoot":""}