-
-
Notifications
You must be signed in to change notification settings - Fork 438
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feasibility question #99
Comments
Hi Philipp
What you describe, Restreamer is made for.
With Restreamer comes a player that is embeddable in websites, similar to Youtube videos (iframe). You can also configure Restreamer to use a TLS certificate that you provide in order to enable https.
https://datarhei.github.io/restreamer/docs/guides-embedding.html
https://datarhei.github.io/restreamer/docs/guides-https.html
The usual setup is that Restreamer runs on a machine in your local network where also the camera is in. So you can run the Restreamer docker image on your NAS. Then you tell Restreamer where to pull from the RTSP stream. That‘s it. In the management interface of Restreamer (can be accessed with any browser) you‘ll find the URL of the player that you can embed in other sites.
https://datarhei.github.io/restreamer/docs/installation-linux-64.html
Regarding the changing IP address, any DynDNS is actually the solution. Either your router already supports a DynDNS provider or you create some kind of a cronjob that updates your current IP at the DynDNS service.
https://datarhei.github.io/restreamer/wiki/dynamic-dns.html
… Am 14.06.2019 um 10:40 schrieb Philipp Trenz ***@***.***>:
Hey there,
thanks for your great project! I read the documentation, but I'm still not sure if Restreamer can archive what I'm looking for. That's why I want to ask for some advice.
So here's my use case:
Goal: Provide a publicly available 24/7 live stream embedded in a website (https)
Having a RTSP stream url from a security camera available from within the local network
The ISP does not provide a static IP, so DynDNS is not an option
I have server resources within the local network (NAS with Docker) as well as publicly available (cloud instance with static IP)
Can you outline a way for me to achieve my goal? I just need a tip in the right direction ;)
Thanks in advance!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
|
Hi @ioppermann, thanks for the quick reply and the explanations. I understood the documentation up to this point, but, as you may have overlooked, my problem is, that the local network is behind a NAT and does not get any public IP assigned by the ISP. Therefore, a port forwarding from the local network to the internet is not possible. Is there a preferable way to go? |
OK, I understand. For the NAT situation you can use the „port forwarding“ settings of your router.
As an other option, you could run a second Restreamer on your public cloud instance and use the Restreamer in your local network to forward the stream to the second Restreamer, i.e. the second Restreamer acts as an external RTMP server. Check out this issue to make the second Restreamer listen to RTMP streams: #85
… Am 15.06.2019 um 18:00 schrieb Philipp Trenz ***@***.***>:
Hi @ioppermann,
thanks for the quick reply and the explanations.
I understood the documentation up to this point, but, as you may have overlooked, my problem is, that the local network is behind a NAT and does not get any public IP assigned by the ISP.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
Perfect, that is what I was looking for! Could I, instead of the local Restreamer, just use ffmpeg to redirect the provided Thanks! |
Yes, it is also possible to use ffmpeg (or any thing else that can push a stream to a RTMP server). In this case ffmpeg needs the output options „-f flv rtmp://[ip of your public instance]/live/...“ and the input is the RTSP over TCP URL with stream copy to avoid any processing, i.e. „-codec copy“.
… Am 15.06.2019 um 18:40 schrieb Philipp Trenz ***@***.***>:
Perfect, that is what I was looking for!
Could I, instead of the local Restreamer, just use ffmpeg to redirect the provided RTSP over TCP url to the cloud instance as I do not need the other Restreamer features from within my network?
Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
Perfect! I summarized the procedure. Even though I have not tested it yet, I share my findings here for anyone who has similar things in mind: Step 1: Install Restreamer Docker image on a cloud instanceInside the Restreamer Docker container is a RTMP-Server running (nginx-rtmp) that you can use to push streams to. To have access to the RTMP-Server, you have to expose the port 1935 of the Docker container. You should secure your stream with an token, so that only you can stream to the Restreamer instance. Also change credentials by setting it via enviroment variables. Start the container with: docker run -d --restart always \
--name restreamer \
-e "RS_USERNAME=[your_username]" -e "RS_PASSWORD=[your_password]" -e "RS_TOKEN=[stream_token]" \
-p 8080:8080 -p 1935:1935 -v [path_to_restreamer_directory_on_the_docker_host]:/restreamer/db \
datarhei/restreamer:latest Step 2: Push local stream to Restreamer cloud instanceUse a local instance of Restreamer and configure the External RTMP-Streaming-Server to OR just use ffmpeg: ffmpeg -i 'rtsp://[rtsp_or_rtmp_url_from_local_device]' -codec copy -f flv rtmp://[url_of_restreamer_cloud_instance]/live/external.stream?token=[stream_token] Step 3: Configure Restreamer and start streamingNavigate to the Restreamer web interface at For the video source enter the same address you are pushing to, and replace the public address and port with localhost:
Now you can forward it to an other RTMP-Server or embed the player in a website. |
Hey there,
thanks for your great project! I read the documentation, but I'm still not sure if Restreamer can archive what I'm looking for. That's why I want to ask for some advice.
So here's my use case:
Can you outline a way for me to achieve my goal? Setting up servers, writing Dockerfiles, configuring nginx and ffmpeg is not a problem for me and I just need a tip in the right direction ;)
Thanks in advance!
The text was updated successfully, but these errors were encountered: