After #4, we're able to stream video from the phone to a computer that is listening. But this setup won't work if the two devices have private IP in different networks.
The solution is using a SRT server:
The SRT server has a public IP address.
Both the mobile and the target computer connect to the SRT server.
The SRT server relays the video stream from one to the other.
Condition of satisfaction
Write a procedure describing how to:
Install a SRT server application on a cloud computer (for example Linode)
Connect the mobile and the target computer to it.
Stream video.
Display video on the target computer with some ready made application.
Hints:
Ubuntu + Nimble
According to their creators, Nimble is:
Nimble Streamer provides wide feature set for live streaming via various protocols
including SRT, RTMP, WebRTC with WHIP ingest and WHEP ABR playback, subtitles, Dante® audio support, Zixi, NDI® and Apple Low Latency HLS with codecs like H.264, HEVC, AV1 and more.
There is another library that can act as a SRT server:
srt-live-server(SLS) is an open source live streaming server for low latency based on Secure Reliable Tranport(SRT). Normally, the latency of transport by SLS is less than 1 second in internet.
I was never able to use SLS. I don't even believe it works.
Nimble probably works, but you need a subscription. As of today, it's 30$/month. That's too expensive for a toy project.
But, there is an alternative solution:
Most home routers allow WireGuard or IPSec VPN.
Setting up a VPN connection allows to connect the mobile phone to the home network.
In this case, no need of SRT servers: the IP addresses of the devices in home network become addressable from the phone, just as if it were connected to the WiFi.
Why?
After #4, we're able to stream video from the phone to a computer that is listening. But this setup won't work if the two devices have private IP in different networks.
The solution is using a SRT server:
Condition of satisfaction
Write a procedure describing how to:
Hints:
Ubuntu + Nimble
According to their creators, Nimble is:
This is a tutorial on how to install a SRT server on Ubuntu using Nimble.
Ubuntu + srt-live-server
There is another library that can act as a SRT server:
This is a tutorial to install SLS on an Ubuntu server: