diff options
Diffstat (limited to 'packaging/win')
| -rw-r--r-- | packaging/win/README.md | 9 | ||||
| -rw-r--r-- | packaging/win/fetch-ffmpeg.ps1 | 9 |
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 |