Use HTML <canvas> to overlay info on top of a video. If you wish to stream the video to a native app (Android/iOS) then you could either use a webview which is just a browser but in an app or do something else more native.
As for how the video works, use a standard video element, although you can use others, you'd either use webRTC or something more backend based where it would stream to those HTML elements. If you wanted sound, and if I recall correctly, you need a separate element for the audio stream.
Also, full screen is easy, but as you say, adds may be a tad more difficult but you can still overlay on top of the video even in full screen. I'd consider moving a part of the business model to a subscription service so that users can pay for no adverts if they want.