You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,8 @@ This project provides static FFmpeg binaries for multiple platforms and architec
16
16
Specifically, we provide:
17
17
18
18
* Audio support using `libfdk-aac`.
19
-
* Hardware-accelerated encoding support on Intel platforms using `h264_qsv` and hardware-accelerated encoding on Raspberry Pi 4+ using `h264_v4l2m2m`.
19
+
* Hardware-accelerated encoding support on Intel platforms using `h264_qsv`**(Windows only)**.
20
+
* Hardware-accelerated encoding support on Raspberry Pi 4+ using `h264_v4l2m2m`.
20
21
* Hardware-accelerated encoding support on Apple platforms using `videotoolbox`.
21
22
22
23
## Supported Platforms
@@ -29,6 +30,7 @@ Specifically, we provide:
29
30
| Windows 10 or newer | x86_64 |
30
31
31
32
> [!NOTE]
33
+
> ***Intel Quick Sync Video is only supported on Windows. There are multiple known issues with `libva` that make it incompatible with static builds of FFmpeg. If you need QSV on Linux, we recommend looking at the [Jellyfin FFmpeg distribution](https://repo.jellyfin.org/?path=/ffmpeg) for distribution-specific releases. We hope to support QSV on Linux once these issues are addressed.**
32
34
> ***Raspberry Pi 5 is currently unsupported. There are multiple known issues with FFmpeg and Raspberry Pi 5 that will hopefully be addressed by the respective teams in the future.**
33
35
> ***Currently (October 2024), FFmpeg v7.1 appears to be somewhat broken for HEVC and H.264 decoding in some scenarios. We hope to support future FFmpeg LTS releases as they stabilize and mature.**
# if [[ "${TARGET_OS}" == "darwin" && "${TARGET_ARCH}" == "arm64" ]]; then
822
-
#
823
-
# download "https://bitbucket.org/multicoreware/x265_git/get/931178347b3f73e40798fd5180209654536bbaa5.tar.gz" "x265-3.5.tar.gz" # This is actually 3.4 if looking at x265Versio
824
-
# elif [[ "${TARGET_ARCH}" == "arm"* ]]; then
825
-
#
826
-
# download "https://github.com/videolan/x265/archive/Release_3.5.tar.gz" "x265-3.5.tar.gz" # This is actually 3.4 if looking at x265Version.txt
console.log("ffmpeg-for-homebridge: macOS versions older than 13 (Ventura) are not supported, you will need to install a working version of FFmpeg manually.");
205
+
console.log("ffmpeg-for-homebridge: macOS versions older than 15 (Sequoia) are not supported, you will need to install a working version of FFmpeg manually.");
197
206
}else{
198
207
199
208
console.log("ffmpeg-for-homebridge: %s %s is not supported, you will need to install a working version of FFmpeg manually.",os.platform,process.arch);
@@ -202,62 +211,62 @@ async function install() {
202
211
process.exit(0);
203
212
}
204
213
205
-
// the file path where the download should go
214
+
// The file path where the download will be located.
// extract ffmpeg binary from the downloaded tar.gz on non-windows platforms
222
-
if(os.platform()!=="win32"){
230
+
// Extract the FFmpeg binary from the downloaded tar.gz bundle on non-windows platforms.
231
+
if(os.platform()!=="win32"){
223
232
224
233
try{
225
234
226
235
awaittar.x({
227
236
228
237
file: ffmpegDownloadPath,
229
238
C: ffmpegCache(),
230
-
strip: 4,// tar.gz packs ffmpeg into /usr/local/bin - this strips that out
239
+
strip: 4,// tar.gz packs ffmpeg into /usr/local/bin - this strips that out.
231
240
});
232
241
}catch(e){
233
242
234
243
console.error(e);
235
-
console.error("An error occured while extracting the downloaded ffmpeg binary.");
244
+
console.error("An error occured while extracting the downloaded FFmpeg binary.");
236
245
displayErrorMessage();
237
-
238
-
// delete the cached download if it failed to extract
246
+
247
+
// Delete the cached download if it failed to extract for some reason.
239
248
fs.unlinkSync(ffmpegDownloadPath);
240
249
241
250
process.exit(0);
242
251
}
243
252
244
-
if(fs.existsSync(ffmpegTempPath)){
253
+
// Set the execute permissions for FFmpeg.
254
+
if(fs.existsSync(ffmpegTempPath)){
245
255
246
256
fs.chmodSync(ffmpegTempPath,0o755);
247
257
}
248
-
}
258
+
}else{
249
259
250
-
// no need to extract for windows - just copy the downloaded binary to the temp path on windows
251
-
if(os.platform()==="win32"){
260
+
// There's no need to extract for Windows - we just copy the downloaded binary to the temp path.
252
261
253
262
fs.renameSync(ffmpegDownloadPath,ffmpegTempPath)
254
263
}
255
264
256
265
// check if the downloaded binary works
257
-
if(!binaryOk(ffmpegTempPath)){
266
+
if(!binaryOk(ffmpegTempPath)){
258
267
259
268
displayErrorMessage();
260
-
269
+
261
270
// delete the cached download if it failed the test
262
271
fs.unlinkSync(ffmpegDownloadPath);
263
272
@@ -273,14 +282,14 @@ async function install() {
273
282
// Bootstrap the installation process.
274
283
asyncfunctionbootstrap(){
275
284
276
-
console.log("Building for version: %s",targetFfmpegRelease());
285
+
console.log("Building for version: %s.",targetFfmpegRelease());
277
286
278
287
try{
279
288
280
289
awaitinstall();
281
290
}catch(e){
282
291
283
-
if(e&&e.code&&e.code==="EACCES"){
292
+
if(e&&e.code&&e.code==="EACCES"){
284
293
285
294
console.log("Unable to download FFmpeg.\nIf you are installing this plugin as a global module (-g) make sure you add the --unsafe-perm flag to the install command.");
0 commit comments