(I even think the DASH segmentation would allow them to this without reencoding the original video, but that's just speculation on my part)
- Stream ad start/end events to the browser, with no duration info
- On sending the start event, lock the user's session such that they can't change their position within the video. lock it server-side, and client-side. Start event will include details of the ad being displayed for any interactivity.
- Unlock the session after the duration of the ad has elapsed, which is only known server-side. Then send the end event to the browser so it can be unlocked client-side.
1: https://en.wikipedia.org/wiki/Cue_mark#Cue_dots_in_televisio...
(Edit: my children comments are right)
[a]: This is assuming you know the magic incantation to get ffmpeg to do it