A single frame might be 1024x768x3bytes ~= 2MB. For video we need 24 frames per second giving me 28MB per second to be sent and then shown. Over the internet I need a connection of at least 28MB x 8 bits = 224Mbs which is why it works between two machines on my local network but not over the internet. So start adding compression. Then you notice that even when you can hit the performance metric the image is still juddering. Well the internet does not deliver your packets at a nice consistent pace, so you need to buffer slightly to try and get around this. Plus the connection speed between your machines might vary over time and so you need to detect this and adjust the number of frames or resolution to adapt. Sometimes your target machine is behind a firewall and you cannot make a direct connection between you and them. So now you need a third-party server that can both connect to that acts as a relay.
So the implementation starts getting pretty hard but if you manage to do a great job then people using it just think it is simple.