Because web standards are sorely lacking when it comes to live low-latency H.264 video streaming, I have been developing an H.264 player that I can embed in web pages in Chrome using PNaCl. To do this, I expanded on the VideoDecoder example from the Native Client SDK, which uses pp::VideoDecoder. I embed the .pexe and feed H.264 NAL units into the module from JavaScript, then parse messages that the module sends back to find out when each frame is finished rendering and what its resolution is, etc. It is far more efficient and more powerful (and more reliable) than any of the Emscripten / JavaScript H.264 decoder ports I've tried.
However today I learned that PNaCl is deprecated and my player will stop working early next year :(
The replacement technology, WebAssembly, doesn't have a free video decoder like I got with PNaCl, and I can't find H.264 decoders that someone else has ported. I do not have the time or the experience to port one myself. So right now WebAssembly is not looking like an option.
So my question is, what must I do differently to keep using pp::VideoDecoder?
It doesn't look like pp::VideoDecoder or PPAPI is going away, just the ability to build and consume .pexe files (or Chrome Apps outside of Chrome OS). Right?
Can I create a Chrome Extension that will enable me to embed a pp::VideoDecoder-powered video player on the web again (with the obvious extra step of installing the extension on each client machine)? Will I have to build separate executables for each platform I wish to run it on?
Or should I start getting comfortable with the idea of decoding H.264 in JavaScript again?