-
-
Notifications
You must be signed in to change notification settings - Fork 97
/
appdefs.yml
1330 lines (1274 loc) · 61.9 KB
/
appdefs.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
---
#
# Definitions for HandBrake docker container.
#
# This file is used as data source to generate README.md and unRAID template files
# from Jinja2 templates.
#
app:
id: 3
name: handbrake
friendly_name: HandBrake
gui_type: x11
base_os: alpine
project:
description: |-
HandBrake is a tool for converting video from nearly any format to a selection
of modern, widely supported codecs.
url: https://handbrake.fr
unraid:
support_url: https://forums.unraid.net/topic/57420-support-handbrake/
category: "MediaApp:Video"
documentation:
overview: |-
A fully automated mode is also available: drop files into a watch folder and let
{{ app.friendly_name }} process them without any user interaction.
sections:
- title: Access to Optical Drive(s)
level: 2
content: |-
By default, a Docker container doesn't have access to host's devices. However,
access to one or more device can be granted with the `--device DEV` parameter.
Optical drives usually have `/dev/srX` as device. For example, the first drive
is `/dev/sr0`, the second `/dev/sr1`, and so on. To allow HandBrake to access
the first drive, this parameter is needed:
```
--device /dev/sr0
```
To easily find devices of optical drives, start the container and look at its
log for messages similar to these ones:
```
...
[cont-init.d] 54-check-optical-drive.sh: executing...
[cont-init.d] 54-check-optical-drive.sh: looking for usable optical drives...
[cont-init.d] 54-check-optical-drive.sh: found optical drive /dev/sr0, but it is not usable because is not exposed to the container.
[cont-init.d] 54-check-optical-drive.sh: no usable optical drive found.
[cont-init.d] 54-check-optical-drive.sh: exited 0.
...
```
Since HandBrake can decrypt DVD video discs, their conversion can be performed
directly from the optical device. From the graphical interface, click the
`Open Source` button and browse through the file system to find your optical
drive device (e.g. `/dev/sr0`).
- title: Automatic Video Conversion
level: 2
content: |-
This container has an automatic video converter built-in. This is useful to
batch-convert videos without user interaction.
Basically, files copied to the `/watch` container folder are automatically
converted by HandBrake to a pre-defined video format according to a pre-defined
preset.
All configuration parameters of the automatic video converter are
defined via environment variables. See the
[Environment Variables](#environment-variables) section for the list of
available variables. The ones having their name starting with
`AUTOMATED_CONVERSION_` apply to the automatic video converter.
**NOTE**: A preset is identified by its category and its name.
**NOTE**: All default presets, along with personalized/custom ones, can be seen
and edited with the HandBrake GUI.
**NOTE**: Converted videos are stored, by default, to the `/output` folder of
the container.
**NOTE**: The status and progression of conversions performed by the automatic
video converter can be seen from both the GUI and the container's log.
Container's log can be obtained by executing the command
`docker logs handbrake`, where `handbrake` is the name of the container. Also,
full details about the conversion are stored in `/config/log/hb/conversion.log`
(container path).
- title: Multiple Watch Folders
level: 3
content: |-
If needed, additionnal watch folders can be used:
- `/watch2`
- `/watch3`
- `/watch4`
- `/watch5`
- etc.
This is useful for scenarios where videos need to be converted by different
presets. For example, one could use a watch folder for movies and another watch
folder for TV shows, both having different encoding quality requirements.
By default, additional watch folders inherits the same settings has the main one
(`/watch`). A setting for a particular watch folder can be overriden by adding
its index to the corresponding environment variable name.
For example, to set the HandBrake preset used to convert videos in `/watch2`,
the environment variable `AUTOMATED_CONVERSION_PRESET_2` is used.
`AUTOMATED_CONVERSION_PRESET_3` is used for `/watch3`, and so on.
All settings related to the automatic video converter (environment variables
with name prefixed with `AUTOMATED_CONVERSION_`) can be overriden for each
additional watch folder.
The maximum number of watch folders handled by the automatic video converter
is defined by the `AUTOMATED_CONVERSION_MAX_WATCH_FOLDERS` environment variable.
**NOTE**: Each additional watch folder must be mapped to a folder on the host by
adding a volume mapping during the creation of the container.
**NOTE**: Each output folder defined via the `AUTOMATED_CONVERSION_OUTPUT_DIR`
environment variable must be mapped to a folder on the host by adding a volume
mapping during the creation of the container.
- title: Video Discs
level: 3
content: |-
The automatic video converter supports video discs, in the following format:
- ISO image file.
- DVD video disc folder containing the `VIDEO_TS` folder.
- Blu-ray video disc folder containing the `BDMV` folder.
Note that folder names are case sensitive. For example, `video_ts`, `Video_Ts`
or `Bdmv` won't be treated as discs, but as normal directories.
When the source is a disc folder, the name of the converted video file will
match to one of its folder. For example, `/watch/MyMovie/VIDEO_TS` will produce
a video file with name `MyMovie.mp4`.
Video discs can have multiple titles (the main movie, previews, extras, etc).
In a such case, each title is converted to its own file. These files have the
suffix `.title-XX`, where `XX` is the title number. For example, if the file
`MyMovie.iso` has 2 titles, the following files would be generated:
- `MyMovie.title-1.mp4`
- `MyMovie.title-2.mp4`
It is possible to ignore titles shorted than a specific amount of time. By
default, only titles longer than 10 seconds are processed. This duration can be
adjusted via the `AUTOMATED_CONVERSION_SOURCE_MIN_DURATION` environment
variable. See the [Environment Variables](#environment-variables) section for
details about setting environment variables.
- title: Hooks
level: 3
content: |-
Custom actions can be performed using hooks. Hooks are shell scripts executed
by the automatic video converter.
**NOTE**: Hooks are always invoked via `/bin/sh`, ignoring any shebang the
script may have.
Hooks are optional and by default, no one is defined. A hook is defined and
executed when the script is found at a specific location.
The following table describe available hooks:
| Container location | Description | Parameter(s) |
|--------------------|-------------|--------------|
| `/config/hooks/pre_conversion.sh` | Hook executed before the beginning of a video conversion. | The first argument is the path of the converted video. The second argument is the path to the source file. Finally, the third argument is the name of the Handbrake preset that will be used to convert the video. |
| `/config/hooks/post_conversion.sh` | Hook executed when the conversion of a video file is terminated. | The first parameter is the status of the conversion. A value of `0` indicates that the conversion terminated successfuly. Any other value represent a failure. The second argument is the path to the converted video (the output). The third argument is the path to the source file. Finally, the fourth argument is the name of the Handbrake preset used to convert the video. |
| `/config/hooks/post_watch_folder_processing.sh` | Hook executed after all videos in the watch folder have been processed. | The path of the watch folder. |
During the first start of the container, example hooks are installed in
`/config/hooks/`. Example scripts have the suffix `.example`. For example,
you can use `/config/hooks/post_conversion.sh.example` as a starting point.
**NOTE**: Keep in mind that this container has the minimal set of packages
required to run HandBrake. This may limit actions that can be performed in
hooks.
- title: Temporary Conversion Directory
level: 3
content: |-
A video being converted is written in a hidden, temporary directory under the
root of the output directory (`/output` by default). Once a conversion
successfully terminates, the video file is moved to its final location.
This feature can be useful for scenarios where the output folder is monitored
by another application: with proper configuration, one can make sure this
application only "sees" the final, converted video file and not the transient
versions.
If the monitoring application ignores hidden directories, then nothing special
is required and the application should always see the final file.
However, if the monitoring application handles hidden directories, the automatic
video converter should be configured with the
`AUTOMATED_CONVERSION_OUTPUT_SUBDIR` environment variable sets to a
subdirectory. The application can then be configured to monitor this
subdirectory. For example, if `AUTOMATED_CONVERSION_OUTPUT_SUBDIR` is set to
`TV Shows` and `/output` is mapped to `/home/user/appvolumes/HandBrake` on the
host, `/home/user/appvolumes/HandBrake/TV Shows` should be monitored by the
application.
- title: Intel Quick Sync Video
level: 2
content: |-
Intel Quick Sync Video is Intel's brand for its dedicated video encoding and
decoding hardware core. It is a technology that is capable of offloading video
decoding and encoding task to the integrated GPU, thus saving the CPU usage to
do other tasks. As a specialized hardware core on the processor die, Quick Sync
offers a much more power efficient video processing which is much superior to
video encoding on a CPU.
For HandBrake to be able to use hardware-accelerated encoding, the following are
required:
- Have a compatible Intel processor. To determine if your CPU has the Quick
Sync Video hardware, consult this [list] from the [Intel Ark] website. The
model name of your processor is printed to the container's log during its
startup. Look for a message like this:
```
[cont-init.d] 95-check-qsv.sh: Processor: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
```
- The Intel i915 graphic driver must be loaded on the **host**.
- The `/dev/dri` device must be exposed to the container. This is done by
adding the `--device /dev/dri` parameter to the `docker run` command.
When Intel Quick Sync Video is properly enabled, HandBrake offers the following
video encoder:
```
H.264 (Intel QSV)
```
If this encoder is not part of the list, something is wrong and looking at the
container's log can give more details about the issue.
**NOTE**: In most cases, HandBrake can successfully access the `/dev/dri` device
without changing anything on the host side. This is possible because the user
under which the container is running is automatically added to the group owning
the `/dev/dri` device. However, this method doesn't work if the device is owned
by the group `root`. The problem can be fixed using one of the following
methods:
- Running the container as root (`USER_ID=0`).
- Adding, on the host, read/write permissions for all to the `/dev/dri`
device:
```
sudo chmod a+wr /dev/dri/*
```
- Changing, on the host, the group owning the `/dev/dri` device. For example,
to change the group to `video`:
```
sudo chown root:video /dev/dri/*
```
[list]: https://ark.intel.com/Search/FeatureFilter?productType=873&0_QuickSyncVideo=True
[Intel Ark]: https://ark.intel.com
- title: unRAID
level: 3
content: |-
With recent versions of unRAID, the Intel i915 driver is already included in the
distribution and is automatically loaded.
With older versions, the following lines might need to be added to
`/boot/config/go` for the driver to be loaded during the startup of unRAID:
```
# Load the i915 driver.
modprobe i915
```
- title: Nightly Builds
level: 2
content: |-
Nightly builds are based on the latest {{ app.friendly_name }} development code.
This means that they may have bugs, crashes and instabilities.
Nightly builds are available through Docker image tags. These tags have the
following format:
```
nightly-<COMMIT_DATE>-<COMMIT_HASH>
```
Where:
- `COMMIT_DATE` is the date (in `YYMMDDHHMMSS` format) of the latest commit
from the {{ app.friendly_name }} [Git repository].
- `COMMIT_HASH` is the short hash of the latest commit from the {{ app.friendly_name }}
[Git repository].
The latest nightly build is available through the `nightly-latest` Docker image
tag. The list of available tags are available on [Docker Hub].
To use a Docker image tag, it has to be appended to the name of the Docker image
during the creation of the container. Here is an example:
```
docker run [OPTIONS..] jlesage/{{ app.name }}:nightly-latest
```
[Git repository]: https://github.com/HandBrake/HandBrake
[Docker Hub]: https://hub.docker.com/r/jlesage/{{ app.name }}/tags/
- title: Debug Builds
level: 2
content: |-
Debug builds can be used to better investigate problems that can occur with
{{ app.friendly_name }}. These builds have {{ app.friendly_name }}
compiled in debug mode and all symbols are kept.
The main use case of debug builds is debugging a crash. To do this, a core dump
needs to be generated when {{ app.friendly_name }} crashes. To make sure
this core dump is properly generated, two things are required:
1. Core dumps must be enabled. This is done by setting the maximum size of
cores via the `--ulimit core=-1` parameter of the `docker run` command.
A value of `-1` mean "unlimited".
2. Location of the cores must be set. This can be done by executing the
following command on the **host**:
```
echo 'CORE_PATTERN' | sudo tee /proc/sys/kernel/core_pattern
```
Where `CORE_PATTERN` is the template that defines the naming of core dump
files. For example, to set the files in the configuration volume of the
container (for easy retrieval from the host), use the pattern
`/config/core.%e.%t`.
**NOTE**: Because a core file contains the complete memory layout of an
application, it is created with restrictive permissions. If another user
other than the one used to run {{ app.friendly_name }} needs to access
the core file, permissions must be changed by executing
`chmod a+r CORE`, where `CORE` is the path to the core file.
**NOTE**: Since the core dump files pattern is shared between the host and
the container, you may want to revert to the original pattern once
done.
**NOTE**: The current value of the pattern can be obtained by executing
`cat /proc/sys/kernel/core_pattern`.
Debug builds are available by using Docker image tags with the `debug` suffix.
Make sure to look at available [tags on Docker Hub].
When creating the container, the tag needs to be appended to the name of the
Docker image, like this:
```
docker run [OPTIONS..] jlesage/{{ app.name }}:v1.14.3-debug
```
[tags on Docker Hub]: https://hub.docker.com/r/jlesage/{{ app.name }}/tags/
- title: unRAID
level: 3
content: |-
On systems running unRAID, the `--ulimit core=-1` parameter can be added to the
`Extra Parameters` field of the container settings.
changelog:
- version: 24.09.1
date: 2024-09-14
changes:
- 'Updated HandBrake to version 1.8.2.'
- 'Updated libva to version 2.22.0.'
- 'Updated gmmlib to version 22.5.0.'
- 'Updated Intel Media Driver to version 24.2.5.'
- 'Updated Intel OneVPL GPU Runtime to version 24.2.5.'
- 'Added environment variable to control the HandBrake GUI queue startup action.'
- version: 24.06.1
date: 2024-06-30
changes:
- 'Updated HandBrake to version 1.8.1.'
- 'Updated libva to version 2.21.0.'
- 'Updated gmmlib to version 22.4.0.'
- 'Updated Intel Media Driver to version 24.1.5.'
- 'Updated Intel OneVPL GPU runtime to version 24.1.5.'
- 'Updated baseimage to version 4.6.3, which brings the following changes:'
- '2:Audio support through web browser.'
- '2:Web authentication support.'
- '2:Better support of GTK4 applications.'
- '2:Updated noVNC to version 1.5.0.'
- '2:Updated web UI components (Bootstrap, Font Awesome).'
- '2:When connecting, the control bar is now temporarily shown only once.'
- '2:During package mirror setup, make sure to keep permissions of copied files.'
- version: 24.03.1
date: 2024-03-04
changes:
- 'Updated HandBrake to version 1.7.3.'
- version: 24.01.2
date: 2024-01-13
changes:
- 'Issue where Linux device of an optical drive could not be opened is now really fixed.'
- version: 24.01.1
date: 2024-01-12
changes:
- 'Fixed issue where Linux device of an optical drive could not be opened.'
- 'Updated baseimage to version 4.5.3, which brings the following changes:'
- '2:Disabled fullscreen support when page is loaded into an iFrame.'
- '2:Rebuilt against latest distro images to get security fixes.'
- version: 23.12.2
date: 2023-12-24
changes:
- 'Updated HandBrake to version 1.7.2.'
- version: 23.12.1
date: 2023-12-17
changes:
- 'Adjusted QSV check script to handle Atom microarchitectures.'
- 'Fixed issue with the automatic video converter where removing a video file could block.'
- 'Enabled AVX-512 optimizations for SVT-AV1.'
- version: 23.11.5
date: 2023-11-30
changes:
- 'Fixed QSV issue caused by the oneVPL runtime implementation not being selected for Intel CPUs/GPUs requiring it.'
- version: 23.11.4
date: 2023-11-22
changes:
- 'Updated HandBrake to version 1.7.1.'
- version: 23.11.3
date: 2023-11-19
changes:
- 'Updated HandBrake to version 1.7.0.'
- 'Improved QSV checks.'
- 'Updated baseimage to version 4.5.2, which brings the following changes:'
- '2:Fixed issue that would cause the helper that takes ownership of a directory to fail when using a very high user or group ID.'
- version: 23.11.2
date: 2023-11-11
changes:
- 'Updated Intel Media Driver to version 23.3.5.'
- 'Updated Intel Media SDK to version 23.2.2.'
- 'Updated Intel OneVPL GPU runtime to version 23.3.4.'
- version: 23.11.1
date: 2023-11-10
changes:
- 'Updated baseimage to version 4.5.1, which brings the following changes:'
- '2:Mirror for packages installation can be set via the `PACKAGES_MIRROR` environment variable.'
- '2:Improved the way the `take-ownership` script is working.'
- '2:Readiness and minimum running time checks should not be done for a service defined with an interval.'
- '2:Raise an error when a synched service fails to start.'
- '2:Minimum running time check of a service was using an incorrect way to verify if process is still alive.'
- '2:Fixed installation of CJK font.'
- version: 23.10.1
date: 2023-10-10
changes:
- 'Updated libva to version 2.20.0.'
- 'Updated gmmlib to version 22.3.12.'
- 'Updated Intel Media Driver to version 23.2.4.'
- 'Updated Intel OneVPL GPU Runtime to version 23.2.4.'
- version: 23.06.1
date: 2023-06-08
changes:
- 'Updated libva to version 2.18.'
- 'Updated gmmlib to version 22.3.5.'
- 'Updated Intel Media Driver to version 23.1.6.'
- 'Updated OneVPL GPU Runtime to version 23.1.5.'
- 'Validate the output folder used by the Automatic Video Converter.'
- 'Updated baseimage to version 4.4.2, which brings the following changes:'
- '2:Rebuilt against latest distro images to get security fixes.'
- '2:Updated X server to version 1.20.14.'
- version: 23.04.1
date: 2023-04-29
changes:
- 'Updated baseimage to version 4.4.1, which brings the following changes:'
- '2:Updated TigerVNC to version 1.13.1.'
- version: 23.03.2
date: 2023-03-05
changes:
- 'Fixed issue where the Automatic Video Converter was not running with the correct supplementary groups.'
- version: 23.03.1
date: 2023-03-05
changes:
- 'Fixed `AUTOMATED_CONVERSION_NO_GUI_PROGRESS` environment variable not being handled.'
- 'Make sure the Automatic Video Converter does not report conversion progress to GUI when it is disabled.'
- 'Improved QSV checks by handling virtualized hosts.'
- 'Updated baseimage to version 4.4.0, which brings the following changes:'
- '2:Updated components providing access to application''s UI over web.'
- '2:Improved web UI usage with touch devices.'
- '2:Fixed issue with initialization of Linux users and groups when the `GROUP_ID` is also part of `SUP_GROUP_IDS`.'
- version: 23.02.1
date: 2023-02-26
changes:
- 'Updated HandBrake to version 1.6.1.'
- 'Updated libva, gmmlib, Intel Media Driver, Intel Media SDK and Intel OneVPL.'
- 'The Automatic Video Converter now has the ability to move source files to trash instead of removing them.'
- 'Improved robustness of the Automatic Video Converter.'
- 'Added the ability to disable the HandBrake GUI.'
- 'Added the ability to disable the Automatic Video Converter.'
- 'Versioning scheme of the Docker image changed to `YY.MM.SEQUENCE`.'
- 'Update of the baseimage to version 4.3.6 brings the following new features:'
- '2:Support for dark mode.'
- '2:Support for remote window resize.'
- '2:Updated the web UI with a new, simplified and less intrusive look.'
- version: 1.25.1
date: 2022-06-28
changes:
- 'Fixed the Automatic Video Converter not working due to usage of undefined variable.'
- 'The Automatic Video Converter now correctly uses the main feature detection.'
- version: 1.25.0
date: 2022-06-27
changes:
- 'Updated HandBrake to version 1.5.1.'
- 'Updated libva to version 2.14.0.'
- 'Updated gmmlib to version 22.1.4.'
- 'Updated Intel Media Driver to version 22.3.1.'
- 'Updated Intel Media SDK to version 22.3.0.'
- 'Updated x264 library to get support for the H.264 10bit encoder.'
- 'Added the `AUTOMATED_CONVERSION_SOURCE_MAIN_TITLE_DETECTION` environment variable that enables main feature title detection of HandBrake.'
- 'Now using baseimage version 3.5.8, based on Alpine Linux 3.14, which brings the following changes:'
- '2:Updated installed packages to get latest security fixes.'
- version: 1.24.2
date: 2021-10-04
changes:
- 'Updated HandBrake to version 1.4.2.'
- 'Updated Intel Media SDK to version 21.3.5.'
- 'Updated gmmlib to version 21.3.1.'
- version: 1.24.1
date: 2021-08-21
changes:
- 'Updated Handbrake to version 1.4.1.'
- version: 1.24.0
date: 2021-07-19
changes:
- 'Updated Handbrake to version 1.4.0.'
- 'Updated libva to version 2.12.0.'
- 'Updated gmmlib to version 21.2.1.'
- 'Updated Intel Media Driver to version 21.2.3.'
- 'Updated Intel Media SDK to version 21.2.3.'
- 'Now using baseimage version 3.5.7, which brings the following changes:'
- '2:Updated installed packages to get latest security fixes.'
- version: 1.23.2
date: 2021-03-13
changes:
- 'Fixed issue where the wrong parameter was passed to the post watch folder processing hook.'
- version: 1.23.1
date: 2021-02-06
changes:
- 'Fixed an issue where the automatic video converter would not process Blu-ray video disc folder.'
- version: 1.23.0
date: 2021-01-01
changes:
- 'Added the ability to overwrite the output file if it exists.'
- 'Added the ability to define the file extensions to be considered as video files.'
- 'Updated libva to version 2.10.0.'
- 'Updated gmmlib to version 20.4.1.'
- 'Updated Intel Media Driver to version 20.4.5.'
- 'Updated Intel Media SDK to version 20.5.1.'
- 'Now using baseimage based on Alpine 3.12.'
- version: 1.22.4
date: 2020-08-05
changes:
- 'Upgraded libva to version 2.8.0.'
- 'Upgraded Intel Media SDK to version 20.2.1.'
- 'Upgraded Intel Media Driver to version 20.2.0.'
- 'Fixed an issue where non-video files would fail to be copied.'
- 'Now using baseimage version 3.5.6, which brings the following changes:'
- '2:Other small adjustments for the YAD log monitor target.'
- version: 1.22.3
date: 2020-06-22
changes:
- 'Upgraded HandBrake to version 1.3.3.'
- 'Upgraded Intel VAAPI driver to version 2.4.1.'
- 'Now using Alpine 3.11 baseimage.'
- version: 1.22.2
date: 2020-05-26
changes:
- 'Fixed issue where Intel QSV H.265 encoding would fail.'
- version: 1.22.1
date: 2020-05-09
changes:
- 'Fixed the default preset used by the automatic video converter.'
- 'Fixed an issue where progress of a multi-pass encoding done by the automatic video converter would not be displayed correctly in the UI.'
- version: 1.22.0
date: 2020-05-04
changes:
- 'Upgraded HandBrake to version 1.3.2.'
- '2:NOTE: Presets are now identified with their category. This means that any preset configured for the automatic video converter needs to be adjusted.'
- 'Upgraded libva to version 2.7.1.'
- 'Upgraded Intel Media Driver to version 20.1.1.'
- 'Upgraded Intel Media SDK to version 20.1.1.'
- version: 1.21.0
date: 2020-03-08
changes:
- 'Custom packages for the Automatic Video Converter can now be installed via the `AUTOMATED_CONVERSION_INSTALL_PKGS` environment variable.'
- version: 1.20.0
date: 2020-02-10
changes:
- 'Upgraded HandBrake to version 1.3.1.'
- 'Upgraded libva to version 2.6.1.'
- 'Upgraded Intel Media SDK to version 19.4.0.'
- 'Upgraded Intel Media Driver to version 19.4.0.'
- 'Upgraded Intel VAAPI driver to version 2.4.0.'
- version: 1.19.0
date: 2019-12-08
changes:
- 'Added the ability to set a list of file extensions to be considered as non-video files. This fixes an issue where the automatic video converter would successfully convert non-video files, like images.'
- 'Added the ability to provide custom arguments to HandBrake when it is invoked by the automatic video converter.'
- version: 1.18.0
date: 2019-11-11
changes:
- 'Upgraded HandBrake to version 1.3.0.'
- 'Action to take by the automatic video converter for non-video files is now configurable.'
- 'The automatic video converter now fails the conversion if no title is found in video file.'
- 'Now using baseimage v3.5.3, based on Alpine Liux 3.10, which brings the following changes:'
- '2:Updated installed packages to get latest security fixes.'
- '2:Make sure the tzdata is installed.'
- version: 1.17.1
date: 2019-05-04
changes:
- 'Fixed an issue where the progress output of the automatic video converter would hang.'
- 'Enhanced the progress output of the automatic video converter by showing the path of the video being converted.'
- 'Enhanced the progress output of the automatic video converter by adjusting the frequency of messages.'
- version: 1.17.0
date: 2019-04-26
changes:
- 'Progress of conversions performed by the automatic video converter can be seen in the HandBrake GUI.'
- 'Fixed an issue where a video conversion failure would not be detected.'
- 'Now using baseimage v3.5.2, which brings the following changes:'
- '2:Updated installed packages to get latest security fixes.'
- '2:Fixed issue where the container could have a zombie process.'
- '2:Fixed issue where the password would not be submitted when pressing the enter key in the password modal.'
- '2:Use relative path for favicon ressources to be more friendly with reverse proxy senarios.'
- version: 1.16.0
date: 2019-03-25
changes:
- 'Upgraded HandBrake to version 1.2.2.'
- 'Upgraded libva to version 2.4.0.'
- 'Upgraded Intel Media SDK to version 18.4.1.'
- 'Upgraded Intel Media Driver to version 18.4.1.'
- 'Use baseimage based on Alpine Linux 3.9.'
- 'The number of watch folders is now configurable.'
- 'The root output directory used by the automatic video converter is now configurable.'
- 'Added hook invoked after all files in a watch folder are processed.'
- version: 1.15.1
date: 2019-02-12
changes:
- 'Fixed issue where Intel QSV would not be setup properly when its associated Linux devices where having different owners.'
- version: 1.15.0
date: 2019-01-14
changes:
- 'Upgraded HandBrake to version 1.2.0.'
- 'The automatic video converter now creates the output folder just before moving the video.'
- version: 1.14.11
date: 2018-12-10
changes:
- 'Fixed issue where libraries required to use Intel QSV would not be found.'
- version: 1.14.10
date: 2018-12-10
changes:
- 'Fixed issues related to usage of QSV on recent processors:'
- '2:Added Intel Media driver version 18.3.0.'
- '2:Upgraded Intel VAAPI driver to version 2.3.0.'
- '2:Upgraded to Intel Media SDK to version 18.3.1.'
- '2:Upgraded libva to version 2.3.0.'
- '2:By default, the new Intel Media driver is now used.'
- '2:For processors not supported by the Intel Media driver, use the Intel VAAPI driver.'
- version: 1.14.9
date: 2018-11-12
changes:
- 'The automatic video converter now processes older files first.'
- 'Fixed an issue where the automatic video converter would fail to start when `USER_ID` is set to `0`.'
- 'Do not setup supplementary group if device for Intel QSV is already accessible.'
- 'Added a new log message for a scenario where Intel QSV would not work.'
- version: 1.14.8
date: 2018-09-19
changes:
- 'Now using baseimage v3.5.1, which brings the following changes:'
- '2:Updated installed packages to get latest security fixes.'
- version: 1.14.7
date: 2018-09-11
changes:
- 'Upgraded to HandBrake version 1.1.2.'
- 'Fixes to the automatic video converter:'
- '2:Gracefully handle the case where the pre-conversion hook removes the source video file.'
- '2:Skip unreadable files.'
- '2:Drop root privileges at start.'
- '2:Better handling of unexisting cache files.'
- version: 1.14.6
date: 2018-07-30
changes:
- 'Fixed an issue where the automatic video converter would fail to convert video with multiple titles.'
- 'Make sure to apply the `HANDBRAKE_DEBUG` environment variable to the automatic video converter.'
- version: 1.14.5
date: 2018-07-19
changes:
- 'A video being converted is now written to a temporary directory before being moved to its final location.'
- version: 1.14.4
date: 2018-07-17
changes:
- 'Fixed an issue where HandBrake could crash while encoding a video using x264.'
- version: 1.14.3
date: 2018-07-16
changes:
- 'Added support for debug images.'
- version: 1.14.2
date: 2018-07-13
changes:
- 'Upgraded HandBrake to version 1.1.1.'
- 'Reduced the size of the container image.'
- version: 1.14.1
date: 2018-07-12
changes:
- 'Fixed an issue where the automatic video converter would not be able to access the device required to enable Intel Quick Sync Video hardware-accelerated encoding.'
- version: 1.14.0
date: 2018-07-09
changes:
- 'Added support for Intel Quick Sync Video hardware-accelerated encoding.'
- 'Now using baseimage v3.4.0, which is based on Alpine Linux 3.8.'
- 'Fixed issue where selecting a different video encoder would result in incorrect video preset selection.'
- 'Fixed an issue where the automatic video converter would choose an incorrect output subfolder when `SAME_AS_SRC` is used.'
- 'Fixed an issue where the automatic video converter, during source cleanup, would try to remove the watch folder itself.'
- 'Fixed an issue where the automatic video converter would choose an incorrect output filename when the source is a DVD/Blu-Ray folder.'
- version: 1.13.5
date: 2018-06-18
changes:
- 'Fixed nightly build.'
- version: 1.13.4
date: 2018-06-11
changes:
- 'Fixed nightly build.'
- version: 1.13.3
date: 2018-05-21
changes:
- 'Moved the HandBrake debug log under the proper directory.'
- 'Fixed the nightly build.'
- version: 1.13.2
date: 2018-05-09
changes:
- 'Fixed issue where handling DVD structure would cause a crash.'
- version: 1.13.1
date: 2018-04-26
changes:
- 'Improved fix for FLAC encoder crash.'
- version: 1.13.0
date: 2018-04-09
changes:
- 'Upgraded HandBrake to version 1.1.0.'
- version: 1.12.0
date: 2018-03-22
changes:
- 'Added pre-conversion hook for the automatic video converter.'
- 'Added support for creation of image based on the latest HandBrake development code.'
- 'Switched to a baseimage based on Alpine Linux 3.7.'
- version: 1.11.5
date: 2018-03-02
changes:
- 'Now using baseimage v3.3.4, which brings the following changes (since last used version):'
- '2:Make sure the log monitor is started after the X server.'
- '2:Fixed an issue where the log monitor `yad` target would use XDG folders of the application.'
- '2:Fixed issue where log monitor states were not cleared during container startup.'
- version: 1.11.4
date: 2018-03-01
changes:
- 'Since HandBrake doesn''t work well with ffmpeg, reverted to libav.'
- 'Thus, the FLAC encoder crash has been fixed in libav instead.'
- 'Make sure the main window is always visible in background.'
- version: 1.11.3
date: 2018-02-13
changes:
- 'Fixed an issue where encoding audio to FLAC would cause a crash.'
- 'Use AAC encoder from libavcodec.'
- 'Fixed an issue where automatic conversion of a multi-titles medias would produce only the first one.'
- 'Improved logging of the automatic video converter while processing multi-titles medias.'
- version: 1.11.2
date: 2018-02-03
changes:
- 'Now using baseimage v3.3.2, which brings the following changes:'
- '2:Restored timezone support in Alpine Linux images with glibc.'
- '2:Fixed issue in `add-pkg` helper where a package could be incorrectly detected as installed.'
- version: 1.11.1
date: 2018-01-30
changes:
- 'Now using baseimage v3.3.1, which brings the following changes:'
- '2:Adjusted the way some ressources are accessed to better support reverse proxy to the container.'
- version: 1.11.0
date: 2018-01-22
changes:
- 'Now using baseimage v3.3.0, which brings the following changes (since last used version):'
- '2:For Alpine Linux images with glibc, automatically update dynamic linker''s cache after new libraries are installed.'
- '2:Fixed the LANG environment variable not being set properly.'
- '2:Added the ability to automatically install a CJK (Chinese/Japanese/Korean) font.'
- version: 1.10.0
date: 2018-01-18
changes:
- 'Added support for multiple watch folders.'
- 'Added environment variable to set the interval at which the automatic video converter checks for new files.'
- 'Source file and HandBrake preset name are now passed to the post hook script.'
- version: 1.9.4
date: 2018-01-11
changes:
- 'Now using baseimage v3.2.2, which brings the following changes (since last used version):'
- '2:Upgraded S6 overlay to version 1.21.2.2.'
- '2:Upgraded glibc to version 2.26 (Alpine Linux glibc images).'
- '2:Adjusted the way ownership of /config is taken to better support cases where the folder is mapped to a network share.'
- 'Small adjustment to the way ownership of files are taken.'
- version: 1.9.3
date: 2017-12-12
changes:
- 'Now using baseimage v3.1.4, which brings the following changes:'
- '2:Set 2 worker processes for nginx.'
- version: 1.9.2
date: 2017-11-20
changes:
- 'Now using baseimage v3.1.3, which brings the following changes:'
- '2:Upgraded S6 overlay to version 1.21.2.1.'
- 'Better output of automated conversions: encoding progress now seen in container''s log, while detailed output is redirected to a log file.'
- version: 1.9.1
date: 2017-11-07
changes:
- 'Now using baseimage v3.1.2, which brings the following changes (from last used version):'
- '2:Fixed an issue where a self-disabled service could be restarted.'
- '2:Upgraded S6 overlay to version 1.21.2.0.'
- '2:Use a more efficient way to monitor status files.'
- version: 1.9.0
date: 2017-10-29
changes:
- 'Now using baseimage v3.1.0, which brings the following changes:'
- '2:Upgraded S6 overlay to version 1.21.1.1.'
- '2:Enhanced integration of service dependencies functionality.'
- '2:Added a simple log monitor.'
- '2:Fixed race condition where container''s exit code would not be the expected one.'
- '2:Fixed issue where application''s GUI fails to displayed when accessing it through the web interface via standard ports 80/443.'
- version: 1.8.0
date: 2017-10-09
changes:
- 'Now using baseimage v3.0.2, which brings the following changes:'
- '2:Better support for service dependencies.'
- '2:Added support for secure access to the application''s GUI.'
- version: 1.7.0
date: 2017-09-18
changes:
- 'Added support for optical drive(s) access.'
- 'Removed some useless shortcuts in the video source selection window.'
- version: 1.6.1
date: 2017-09-08
changes:
- 'Now using baseimage v2.0.8, which brings the following changes (from last used version):'
- '2:Fixed timezone support on alpine-glibc images.'
- '2:Fixed duplicated entries in /etc/passwd and /etc/group that were created after a restart of the container.'
- version: 1.6.0
date: 2017-08-16
changes:
- 'Added libdvdcss to allow reading of encrypted DVD video files.'
- version: 1.5.9
date: 2017-08-14
changes:
- 'Now using baseimage v2.0.6, which brings the following changes:'
- '2:Upgraded S6 overlay to version 1.20.0.0.'
- version: 1.5.8
date: 2017-08-12
changes:
- 'Fixed conversion of videos containing multiple titles.'
- version: 1.5.7
date: 2017-07-31
changes:
- 'Now using baseimage v2.0.5, which brings the following changes (from last used version):'
- '2:Clear the environment of the container during startup.'
- '2:Clear the /tmp folder during startup.'
- '2:Cleanly terminate the X server when container is restarted/stopped.'
- '2:Improved robustness of X server starting process.'
- '2:Removed unneeded files from the image.'
- version: 1.5.6
date: 2017-07-27
changes:
- 'Watch folder: recursively remove empty directories.'
- version: 1.5.5
date: 2017-07-27
changes:
- 'Now using baseimage v2.0.3, which brings the following changes:'
- '2:Improved robustness of the X server starting process.'
- version: 1.5.4
date: 2017-07-26
changes:
- 'Watch folder: properly support video discs (ISO files, DVD/Blu-ray folders).'
- 'Watch folder: when removing empty folders, ignore the watch folder itself.'
- 'Watch folder: make sure to abort if destination file already exists.'
- version: 1.5.3
date: 2017-07-25
changes:
- 'Fixed HandBrake CLI crash that was occuring when working with ISO files or DVD folders.'
- 'Small adjustments to the default configuration file.'
- version: 1.5.2
date: 2017-07-23
changes:
- 'Now using baseimage v2.0.2, which brings the following changes:'
- '2:Proper VNC port is exposed.'
- version: 1.5.1
date: 2017-07-18
changes:
- 'Now using baseimage v2.0.1, which brings the following changes:'
- '2:Internal enhancements.'
- '2:Clean temporary files left by npm.'
- version: 1.5.0
date: 2017-07-17
changes:
- 'Now using baseimage v2.0.0, which brings the following changes:'
- '2:Various internal enhancements.'
- '2:Fixed the way a service waits for another one.'
- 'Watch folder: ignore hidden files and folders.'
- 'Watch folder: adjusted the way empty folders are removed.'
- version: 1.4.0
date: 2017-07-04
changes:
- 'Watch folder: Make sure to respect the configured umask.'
- 'Now using baseimage v1.5.0, which brings the following changes:'
- '2:Added the UMASK environment variable to control how file permissions are set for newly created files.'
- '2:Added the X11VNC_EXTRA_OPTS environment variable used to pass additional arguments to the x11vnc server.'
- '2:By default, activate auto-scaling of application''s window.'
- '2:Applied latest Alpine Linux security updates.'
- version: 1.3.3
date: 2017-06-30
changes:
- 'Watch folder: Added handling of environment variable AUTOMATED_CONVERSION_OUTPUT_SUBDIR, which allows customization of the output location of automatically converted videos..'
- 'The default source folder is now /storage.'
- version: 1.3.2
date: 2017-06-27
changes:
- 'Watch folder: also process files in subfolders.'
- version: 1.3.1
date: 2017-06-22
changes:
- 'Now using baseimage v1.4.3, which brings the following changes:'
- '2:Updated Alpine Linux to version 3.6.2.'
- version: 1.3.0
date: 2017-06-21
changes:
- 'Now using baseimage v1.4.2, which brings the following changes (from last used version):'
- '2:Switched to Alpine Linux 3.6.'
- '2:Associate the application''s icon to a unique version to avoid browser cache issues.'
- '2:Fixed prefix of some service related messages.'
- '2:Added support for supplying supplementary groups of the application.'
- '2:Improved process startup and shutdown.'
- '2:When container is stopped or restarted, processes are now terminated gracefully and in proper order. This allow the GUI application to execute its termination routine.'
- '2:No more error messages when container is stopped or restarted.'
- version: 1.2.0
date: 2017-05-31
changes:
- 'Added support for post-conversion hook.'
- version: 1.1.4
date: 2017-05-30
changes:
- 'Now using baseimage v1.3.2, which brings the following changes:'
- '2:Fixed password modal window not showing up when required.'
- version: 1.1.3
date: 2017-05-26
changes:
- 'Watch folder: Fixed issue where, after a first successful conversion, conversion of next available video files would not start.'
- 'Renamed the ''Watch Folder'' service to ''Automatic Video Converter''.'
- version: 1.1.2
date: 2017-05-24
changes:
- 'Watch folder: Changed the way files being transferred are detected. Method used previously was not working properly in all cases.'
- version: 1.1.1
date: 2017-05-24
changes:
- 'Watch folder: temporarily skip files being accessed/transferred.'
- 'Watch folder: improved robustness.'
- version: 1.1.0
date: 2017-05-23
changes:
- 'Watch folder: properly support filenames containing spaces.'
- 'Watch folder: added support for symbolic links.'
- 'HandBrake debug can now be enabled via the HANDBRAKE_DEBUG environment variable.'
- 'Take ownership of the `/output` folder.'
- 'Added the ability to remove video source files from the watch folder after successfully conversion.'
- version: 1.0.1
date: 2017-05-18
changes:
- 'The watch folder is now monitored without inotify for better compatibility.'
- version: 1.0.0
date: 2017-05-18
changes:
- 'Initial release.'
container:
storage_permissions: ro
# Environment variables.
environment_variables:
- name: HANDBRAKE_DEBUG
description: >-
Setting this to `1` enables HandBrake debug logging for both the GUI and
the automatic video converter. For the latter, the increased verbosity
is reflected in `/config/log/hb/conversion.log` (container path). For
the GUI, log messages are sent to `/config/log/hb/handbrake.debug.log`
(container path). **NOTE**: When enabled, a lot of information is
generated and the log file will grow quickly. Make sure to enable this
temporarily and only when needed.
type: public
default: 0
- name: HANDBRAKE_GUI
description: >-
Setting this to `1` enables the HandBrake GUI, `0` disables it.
type: public
default: 1
unraid_template:
title: "HandBrake GUI State"
description: >-
Setting this to 1 enables the HandBrake GUI, 0 disables it.
display: advanced
required: false
mask: false
- name: HANDBRAKE_GUI_QUEUE_STARTUP_ACTION
description: >-
Action to be taken on the queue of HandBrake (GUI) when it starts. When set to
`PROCESS`, HandBrake automatically starts encoding elements present in the queue.
When set to `CLEAR`, the content of the queue is cleared. With any other value,
no action is taken on the queue.
type: public
default: NONE
unraid_template:
title: "HandBrake GUI State"
description: >-
Action to be taken on the queue of HandBrake (GUI) when it starts. When set to
"PROCESS", HandBrake automatically starts encoding elements present in the