(I originally posted this over on the SourceForge forums, but wanted to see if anyone else had ideas about this)
I was able to get OBS to send a stream to a rtmplite server I had setup on the local LAN, here's what I did:
- Installed python 2.7
- downloaded and extracted rtmplite
- ran rtmplite in cmd prompt -> python rtpm.py -d
- browse to http://myprojectguide.org/p/flash-videoio/6.html
(You need a webcam connected to test this next bit)
- scroll down to the 2 flash players set the left one to
rtmp://(ip-address-of-rtmplite-computer)/myapp?publish=(streamname)
- hit "set"
You should see debug messages flying up in the cmd window for rtmplite
- Set the right one to the same(only this one will play the stream):
rtmp://(ip-address-of-rtmplite-computer)/myapp?play=(streamname)
hit "set"
You should see the webcam stream in the right be a mirror of what's on the left.
- Go back to the left one and hit "reset" this will stop the stream
LEAVE THE RIGHT ONE CONNECTED, DON'T HIT "reset"
- In OBS, in Settings -> Broadcast Settings, set Streaming Service to "Custom"
- Set "Server" to rtmp://(ip-address-of-rtmplite)/myapp
- Set "play path" to (streamname) (same (streamname) you used above)
- hit Apply, OK then "Start Streaming"
You should see debug messages flying up in the cmd window for rtmplite
The stream should appear in the right flash window
-----------------------------------------------------------------------------------
Some Observations:
-----------------------------------------------------
1) The OBS stream only worked when there was a previous connection with the same
information (ip, appname and streamname) that ends with a client still connected to it.
It's as if the OBS stream is lacking certain header information that's keeping the client
from seeing it correctly. If you don't do it this way, OBS will still stream to rtmplite (you can see the debug messages), but the flash client won't be able to see the stream.
2) Once I had it working, no matter what settings I used in OBS (bitrate, buffer, quality, size, etc), I always had a solid 4 second delay from what OBS saw to the end stream in the Flash client. When connecting the left window to the right there was virtually no delay, but with the OBS stream it's like it buffered 4 seconds before it showed the stream, every time. I'm not sure if it's something in the rtmplite server, but it's more likely related to the headers that OBS sends, vs what headers are used by rtmplite to stream to other Flash clients.
Is there any way to get OBS to send the "correct" headers to a rtmp server like rtmplite?
(without breaking streaming to Twitch, etc) Being able to save a file and stream to a LAN server(with lower latency) would be awesome. The software would have applications outside of Internet streaming.
I'm setting up a videocast with a friend that uses a mix of webcams, graphics, and desktop sharing between 2 computers, and it would be awesome for both of us to be able to see the stream in (near) real-time as we perform it. It would save crazy routing of long HDMI cables snaking around the studio.
I was able to get OBS to send a stream to a rtmplite server I had setup on the local LAN, here's what I did:
- Installed python 2.7
- downloaded and extracted rtmplite
- ran rtmplite in cmd prompt -> python rtpm.py -d
- browse to http://myprojectguide.org/p/flash-videoio/6.html
(You need a webcam connected to test this next bit)
- scroll down to the 2 flash players set the left one to
rtmp://(ip-address-of-rtmplite-computer)/myapp?publish=(streamname)
- hit "set"
You should see debug messages flying up in the cmd window for rtmplite
- Set the right one to the same(only this one will play the stream):
rtmp://(ip-address-of-rtmplite-computer)/myapp?play=(streamname)
hit "set"
You should see the webcam stream in the right be a mirror of what's on the left.
- Go back to the left one and hit "reset" this will stop the stream
LEAVE THE RIGHT ONE CONNECTED, DON'T HIT "reset"
- In OBS, in Settings -> Broadcast Settings, set Streaming Service to "Custom"
- Set "Server" to rtmp://(ip-address-of-rtmplite)/myapp
- Set "play path" to (streamname) (same (streamname) you used above)
- hit Apply, OK then "Start Streaming"
You should see debug messages flying up in the cmd window for rtmplite
The stream should appear in the right flash window
-----------------------------------------------------------------------------------
Some Observations:
-----------------------------------------------------
1) The OBS stream only worked when there was a previous connection with the same
information (ip, appname and streamname) that ends with a client still connected to it.
It's as if the OBS stream is lacking certain header information that's keeping the client
from seeing it correctly. If you don't do it this way, OBS will still stream to rtmplite (you can see the debug messages), but the flash client won't be able to see the stream.
2) Once I had it working, no matter what settings I used in OBS (bitrate, buffer, quality, size, etc), I always had a solid 4 second delay from what OBS saw to the end stream in the Flash client. When connecting the left window to the right there was virtually no delay, but with the OBS stream it's like it buffered 4 seconds before it showed the stream, every time. I'm not sure if it's something in the rtmplite server, but it's more likely related to the headers that OBS sends, vs what headers are used by rtmplite to stream to other Flash clients.
Is there any way to get OBS to send the "correct" headers to a rtmp server like rtmplite?
(without breaking streaming to Twitch, etc) Being able to save a file and stream to a LAN server(with lower latency) would be awesome. The software would have applications outside of Internet streaming.
I'm setting up a videocast with a friend that uses a mix of webcams, graphics, and desktop sharing between 2 computers, and it would be awesome for both of us to be able to see the stream in (near) real-time as we perform it. It would save crazy routing of long HDMI cables snaking around the studio.