aboutsummaryrefslogtreecommitdiffstats
path: root/packaging/win
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/win')
-rw-r--r--packaging/win/README.md9
-rw-r--r--packaging/win/fetch-ffmpeg.ps19
2 files changed, 13 insertions, 5 deletions
diff --git a/packaging/win/README.md b/packaging/win/README.md
index b5ab1cd..0598193 100644
--- a/packaging/win/README.md
+++ b/packaging/win/README.md
@@ -98,8 +98,13 @@ That runs [`build-win.ps1`](build-win.ps1):
**Bundled by default** — [`fetch-ffmpeg.ps1`](fetch-ffmpeg.ps1) downloads,
checksum-verifies and stages it into `node-runtime/` on every build, ~161 MB.
Not optional in practice: MeshBay transcodes browser-incompatible video to
-H.264 (`-c:v libx264`, a real encode, not remux), and no LGPL-only ffmpeg
-build includes an H.264 *encoder* — libx264 itself is GPL. Asking an end user
+H.264 (a real encode, not remux), and no LGPL-only ffmpeg build includes an
+H.264 *encoder* — libx264 itself is GPL. libx264 is also the floor rather
+than the only path: this build carries `h264_qsv` and `h264_nvenc` as well,
+which is what lets `hwaccel.py` move the encode onto an Intel or NVIDIA GPU
+on Windows without a second download. **A re-pin that dropped those would
+cost every low-power Windows node its hardware encoding, silently** — the
+node would simply go back to libx264. Asking an end user
to separately run `winget install ffmpeg` was considered and rejected: it
needs network access and `winget`/App Installer present at that exact moment,
and its failure mode is silent — video just does not stream, with nothing
diff --git a/packaging/win/fetch-ffmpeg.ps1 b/packaging/win/fetch-ffmpeg.ps1
index 5f6123d..6ffbc51 100644
--- a/packaging/win/fetch-ffmpeg.ps1
+++ b/packaging/win/fetch-ffmpeg.ps1
@@ -3,9 +3,12 @@
Download, verify and stage the ffmpeg/ffprobe MeshBay bundles by default.
.DESCRIPTION
- MeshBay transcodes browser-incompatible video to H.264 (webrtc_server.py,
- `-c:v libx264`) -- a real encode, not just remux/probe -- so only a GPL
- ffmpeg build works here; libx264 is GPL, no LGPL-only build includes it.
+ MeshBay transcodes browser-incompatible video to H.264 (webrtc_server.py)
+ -- a real encode, not just remux/probe -- so only a GPL ffmpeg build works
+ here; libx264 is GPL, no LGPL-only build includes it. The gpl-shared
+ preset also carries h264_qsv and h264_nvenc, which hwaccel.py uses to put
+ that encode on the GPU where there is one; a build without them still
+ works and is simply slower, on the machines that can least afford it.
Asking an end user to separately install ffmpeg (`winget install ffmpeg`)
is not viable for a non-technical install: it needs network access and
winget/App Installer present at that exact moment, and fails silently