I know that there is a simple solution to play videos one after another in HTML. However, I have yet to find one that transitions from videos smoothly. My problem is that I have a very long stream of videos on my server composed of multiple MP4 files. I serve these files to my web client through HTTP and play them with video.js. To play one file after another, I simply implemented this solution which simply changes the source on the ended event. The problem is that there is a small stutter when a video ends and a new one starts. To the user, these small files must appear as a single continuous video, so I cannot accept a small stutter when files change.
Is there a way to do this in videojs or just in the video element of HTML5? I currently save my MP4 files as blobs on my client, so I was thinking that maybe I could try to 'merge' blobs together to avoid changing the source. However, I don't think I can simply concatenate MP4 files together in a blob and play them as a single source. Is there another format that could support 'merging' video files on the fly to avoid changing the video source?
Please note that any HTTP streaming protocols such as HLS or DASH would not work for me. My server must fetch MP4 files from possibly long-term archive storage and the total duration of the video is not known to me. Therefore, I cannot really build a manifest for the chunks. I also have my files in plain MP4, not fragmented MP4.