Stremio shell using WebView2/mpv, written in Rust
Find a file
Vladimir Borisov 842400c7df 32bit build
2022-09-30 10:43:30 +03:00
images Use image instead of icon for the splash screen 2021-07-21 21:02:12 +03:00
src Update server.js to 4.4.159 2022-09-29 18:19:23 +03:00
.gitignore initial commit 2021-07-05 19:33:54 +03:00
build.rs minor refactor + cargo fmt --all 2022-04-01 22:47:02 +02:00
Cargo.lock Revert "Update some packages" 2022-09-29 18:35:42 +03:00
Cargo.toml Single instance 2022-05-23 13:39:14 +03:00
mpv.dll 32bit build 2022-09-30 10:43:30 +03:00
mpv.lib 32bit build 2022-09-30 10:43:30 +03:00
README.md 32bit build 2022-09-30 10:43:30 +03:00
resources.rc Use image instead of icon for the splash screen 2021-07-21 21:02:12 +03:00
rust-toolchain.toml 32bit build 2022-09-30 10:43:30 +03:00
server.js Update server.js 2022-09-29 16:16:08 +03:00

Stremio shell: new gen

A Windows-only shell using WebView2 and MPV

The MPV library is obtained from sourceForge where the latest working DLL is in the build mpv-dev-i686-20211212-git-0e76372. It must be mpv-1.dll and not mpv-2.dll unless libmpv-rs update their repo. The mpv.lib file is generated with the developer prompt for VS2019 using the following command:

lib /def:mpv.def /machine:x86 /out:mpv.lib

Goals:

  • Performance
  • Reliability
  • Easy to ship

In all three, this architecture excels the Qt-based shell: it is about 2-5x more efficient depending on the use case, as it allows MPV to render directly in the window through it's optimal video output rather than using libmpv to integrate with Qt.

This is due to Qt having a complex rendering pipeline involving ANGLE and multiple levels of composing and drawing to textures, which inhibits full HW acceleration.

Meanwhile in this setup MPV uses whichever pipeline it considers to be optimal (like the mpv desktop app), which is normally d3d11, allowing full HW acceleration.

For web rendering, we use the native WebView2, which is Chromium based but shipped as a part of Windows 10: therefore we do not need to ship our own "distribution" of Chromium.

Finally, this should be a lot more reliable as it uses a much simper and more native overall architecture.