I’ve succeed in playing video from IPFS using only JS-IPFS node and HTML video element with MSE (Media Source Extensions API, used in MPEG-DASH for example). Here is the demo. All of the code (about 60 lines) is included in the web page body. Video starts playing after 20 seconds of loading.
The demo is very limited for now. It requires the file to be fully loaded, so the file size is very limited. To improve it I want to synchronize two asynchronous APIs: loading file chunks from IPFS and sending video data to HTML MediaSource object.