RTMP Media Source (GoPro > Restreamer) ignoring stream key secret token... Am I doing this right?

exokinetic

New Member
TL:DL -its working, but all 4 OBS Media Sources I have created get the same feed from the first camera (gopro1), even though all 4 OBS Media Sources have RTMP URL's with seperate UNIQUE stream keys.

Camera 1's RTMP stream with the secret token "racestream1" is showing up on ALL 4 OBS Media Sources, even though only OBS Media Source #1 has the RTMP URL containing "racestream1".

I dont get it; I have tested truncating the RTMP URL, and I can snip off the entire 'secret token' from the end of the RTMP URL that I enter into the OBS Media Source "input" field, and I still get the camera's RTMP feed showing up in the Media Source. Its like the OBS Media Source "input" field is ignoring the secret token section of my RTMP URL....?

Here is what I am trying to do:

I want to have multiple GoPro camera's, all connected to the same local Wifi network, livestream via RTMP to multiple instances of an RTMP restream server (datahari.restreamer) I am also hosting on the same local network (Rpi Model 1B).

I want to have each cameras RTMP stream as a seperate Media Source within OBS such that I can easily control which cameras stream is currently displayed in the scene.

I will use the "streaming" feature in OBS to livestream from OBS to Youtube.

Multiple GoPro's (Livestream - RTMP) > Multiple datahari.Restreamer's > Multiple OBS Media Source's > OBS Scene (Livestream - YouTube) > YouTube

GoPro camera's are connected to my local Wifi network and livestream via RTMP to unique RTMP URL's saved in the cameras.

RTMP URL's:

rtmp://192.168.1.210/live/external.stream?token=racestream1
rtmp://192.168.1.210/live/external.stream?token=racestream2
rtmp://192.168.1.210/live/external.stream?token=racestream3
rtmp://192.168.1.210/live/external.stream?token=racestream4

Multiple Restreamer instances (nginx client) are running in Docker containers on a Rpi Model 1B that sits on the same local network with the IP address:

192.168.1.210

-port 1935 is exposed on the containers to allow for RTMP stream ingestion
-each restreamer instance is mapped to a different physical port
-each restreamer instance has a unique secret token (racestream1, racestream2, racestream3, etc)

Restreamer instance configs:
Restreamer #1

docker run -d --restart always
--name gopro1
-e "RS_USERNAME=my_name"
-e "RS_PASSWORD=my_pass"
-e "RS_TOKEN=racestream1"
-p 8081:8080
-p 1935:1935
-v /mnt/gopro1/db:/restreamer/db
--tmpfs /tmp/hls
datarhei/restreamer-armv6l:latest

Restreamer #2

docker run -d --restart always
--name gopro2
-e "RS_USERNAME=my_name"
-e "RS_PASSWORD=my_pass"
-e "RS_TOKEN=racestream2"
-p 8082:8080
-p 1934:1935
-v /mnt/gopro2/db:/restreamer/db
--tmpfs /tmp/hls
datarhei/restreamer-armv6l:latest

Restreamer #3

docker run -d --restart always
--name gopro3
-e "RS_USERNAME=my_name"
-e "RS_PASSWORD=my_pass"
-e "RS_TOKEN=racestream3"
-p 8083:8080
-p 1933:1935
-v /mnt/gopro3/db:/restreamer/db
--tmpfs /tmp/hls
datarhei/restreamer-armv6l:latest

Restreamer #4

docker run -d --restart always
--name gopro4
-e "RS_USERNAME=my_name"
-e "RS_PASSWORD=my_pass"
-e "RS_TOKEN=racestream3"
-p 8083:8080
-p 1932:1935
-v /mnt/gopro4/db:/restreamer/db
--tmpfs /tmp/hls
datarhei/restreamer-armv6l:latest


I searched through the guides, and did a google search of this forum using the search term "restreamer" and "ngix"...

I was not able to find very many hits for what I am actually trying to do with OBS and Restreamer.

Most threads are using OBS to livestream TO Restreamer, and Restreamer to YouTube;

I am using Restreamer to bring RTMP streams IN to OBS, and I cant find anyone doing that who is also having this issue...

Following these guides from Restreamer docs:

Ingest RTMP: https://datarhei.github.io/restreamer/docs/guides-ingest-rtmp.html
Multiple Restreamer: https://datarhei.github.io/restreamer/docs/guides-multiple-restreamer.html


If anyone can see what I am doing wrong and point me in the right direction, I would greatly appreaciate it :D
 

RaceStreamer

New Member
We're working on something similar, but we can pull from some of the cameras directly, as they are IP-based and on the same LAN segment. Two will not be, so we need to push from them to an RTMP server from which OBS can pull. Instead of using Docker and Restreamer, we're just using OBS, with IRL's RTMP-Auth setup to prevent a free-for-all on port 1935. Then we just have OBS pull the streams using the stream keys, instead of using Resteamer to push to OBS.

We opted to not use GoPros because of software limitations (like push-only) and because if something goes haywire with one, someone has to physically go connect with Bluetooth to see what's going on. For the cost of a GoPro you can get a similar IP camera. Not fancy, but usable.

Sorry I don't have a solution for your specific issue, but I thought I'd at least offer another design option.
 
Top