So here's the thing. I have 2 cameras (more on the way) that I need to hook up so that a user can view them anywhere on my network. The user should be able to select to see low-quality thumbnails of all cameras along with the ability to see high resolution of individual cameras. The distance that the video travels is international, so bandwidth is important.

I thought it would be good to put a video server with the cameras so that it can automatically obtain the video and select an appropriate bitrate for it depending on whether or not all the cameras are being shown. Then, because more than 1 person will be viewing the cameras, a 2nd video server will be setup with the viewers so that only 1 video stream is being transmitted internationally (it is received by video server 2 which redistributes it). Is there a better way of doing this, and where should I start (coding languages to learn, hardware to acquire, etc.)?

I am proficient in HTML, CSS, JS, PHP, and MySQL, so I want to try to rely on that as much as possible.