I already commented on this, but I didn't like the "solution" of re-encoding the video with the subtitles baked in, so check out https://gist.github.com/HartS/9bb2721fa73b6798efcdbf5c463e87... if you want a way to play (and cast) local videos with subtitle support.
I threw this together as quickly as possible, so it won't be as feature-rich as VLC, but I believe it will still work for many use cases. If you need additional controls, I think video-js (the OSS video player library this uses) supports them, but you'll have to look into their API. You may also be able to get speed controls working with https://chromewebstore.google.com/detail/video-speed-control... , which is honestly one of the biggest QoL improvements I've had from a chrome extension
If you can convince VLC to render the subtitles into a new video stream then it'll work. You're effectively creating a new video though. By default VLC just renders subtitles in the player, you need to encode/transcode them into the output stream.