С гарантией можно все это делать только если стримить видео с сервера, и соответственно управлять тем что проигрывается на серверной стороне. Самый простой стриминг можно реализовать с помощью ffmpeg или vlc, готовые комбайны. Недостаток подхода - высокая нагрузка на сервер (стриминг не кешируется в обычном смысле).
Можно обмануть большинство сценариев обхода видео, если формировать m3u8 файл плейлист кусков видео, генерируя каждый раз новые ссылки на видео, где доступ к ним на сервере контролировать по таймингам (придется тестировать кучу девайсов, так как кешируют они немного по разному) и отдавать редиректом на настоящие куски видео, оформленные нормально статичным контентом (т.е. будут кешироваться), правда хз зачем тебе это, мне кажется тебе нужно принудить рекламу смотреть а не буквально требовать скачивать куски видео в определенном порядке.
Если тебе хватит пользовательского интерфейса (т.е. не защитит от продвинутых пользователей и продвинутых блокировщиков рекламы) то пользуйся штатным video (не понимаю почему все пилят какие то плееры, html5 video тег отличный вариант).
достаточно удалить control атрибут, чтобы не было интерфейса управления в т.ч. с клавиатуры, а чтобы исключить управление из меню (правая кнопка мыши) добавь к стилям pointer-events: none;