mirror of
https://github.com/nickyeoman/docker-compose-cookbooks.git
synced 2026-09-04 02:46:23 +00:00
updated handbrake
This commit is contained in:
@@ -0,0 +1,160 @@
|
||||
# Handbrake
|
||||
|
||||
- DockerHub: https://hub.docker.com/r/jlesage/handbrake
|
||||
- Env docs: https://github.com/jlesage/docker-handbrake
|
||||
- Proxy port: 5800
|
||||
|
||||
## NOTES
|
||||
|
||||
You can specify read and write for example:
|
||||
"handbrake-storage:/storage:ro"
|
||||
"handbrake-output:/output:rw"
|
||||
|
||||
## Nvidia GPU
|
||||
|
||||
HANDBRAKE_IMAGE=zocker160/handbrake-nvenc:latest
|
||||
Github: https://github.com/zocker-160/handbrake-nvenc-docker
|
||||
DockerHub NVENC: https://hub.docker.com/r/zocker160/handbrake-nvenc
|
||||
|
||||
# Gotchas
|
||||
|
||||
```
|
||||
problem /etc/cont-init.d/55-handbrake.sh: 47: log: not found docker
|
||||
```
|
||||
chmod the volumes
|
||||
and the env file has to be included
|
||||
|
||||
## Presets
|
||||
|
||||
I think this is the best preset for small file, big quality:
|
||||
```
|
||||
{
|
||||
"AlignAVStart": false,
|
||||
"AudioCopyMask": [
|
||||
"copy:aac"
|
||||
],
|
||||
"AudioEncoderFallback": "none",
|
||||
"AudioLanguageList": [],
|
||||
"AudioList": [
|
||||
{
|
||||
"AudioBitrate": 128,
|
||||
"AudioCompressionLevel": -1.0,
|
||||
"AudioDitherMethod": "auto",
|
||||
"AudioEncoder": "fdk_aac",
|
||||
"AudioMixdown": "stereo",
|
||||
"AudioNormalizeMixLevel": false,
|
||||
"AudioSamplerate": "auto",
|
||||
"AudioTrackDRCSlider": 0.0,
|
||||
"AudioTrackGainSlider": 0.0,
|
||||
"AudioTrackQuality": 1.0,
|
||||
"AudioTrackQualityEnable": false
|
||||
}
|
||||
],
|
||||
"AudioSecondaryEncoderMode": true,
|
||||
"AudioTrackSelectionBehavior": "first",
|
||||
"ChapterMarkers": true,
|
||||
"ChildrenArray": [],
|
||||
"Default": true,
|
||||
"FileFormat": "av_mp4",
|
||||
"Folder": false,
|
||||
"FolderOpen": false,
|
||||
"InlineParameterSets": false,
|
||||
"MetadataPassthru": true,
|
||||
"Mp4iPodCompatible": false,
|
||||
"Optimize": false,
|
||||
"PictureAllowUpscaling": false,
|
||||
"PictureAutoCrop": true,
|
||||
"PictureBottomCrop": 0,
|
||||
"PictureChromaSmoothCustom": "",
|
||||
"PictureChromaSmoothPreset": "off",
|
||||
"PictureChromaSmoothTune": "none",
|
||||
"PictureColorspaceCustom": "",
|
||||
"PictureColorspacePreset": "off",
|
||||
"PictureCombDetectCustom": "",
|
||||
"PictureCombDetectPreset": "off",
|
||||
"PictureCropMode": 2,
|
||||
"PictureDARWidth": 1920,
|
||||
"PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
|
||||
"PictureDeblockPreset": "off",
|
||||
"PictureDeblockTune": "medium",
|
||||
"PictureDeinterlaceCustom": "",
|
||||
"PictureDeinterlaceFilter": "off",
|
||||
"PictureDeinterlacePreset": "",
|
||||
"PictureDenoiseCustom": "",
|
||||
"PictureDenoiseFilter": "off",
|
||||
"PictureDenoisePreset": "",
|
||||
"PictureDenoiseTune": "none",
|
||||
"PictureDetelecine": "off",
|
||||
"PictureDetelecineCustom": "",
|
||||
"PictureForceHeight": 0,
|
||||
"PictureForceWidth": 0,
|
||||
"PictureHeight": 0,
|
||||
"PictureItuPAR": false,
|
||||
"PictureKeepRatio": true,
|
||||
"PictureLeftCrop": 0,
|
||||
"PictureModulus": 2,
|
||||
"PicturePAR": "auto",
|
||||
"PicturePARHeight": 1,
|
||||
"PicturePARWidth": 1,
|
||||
"PicturePadBottom": 0,
|
||||
"PicturePadColor": "black",
|
||||
"PicturePadLeft": 0,
|
||||
"PicturePadMode": "none",
|
||||
"PicturePadRight": 0,
|
||||
"PicturePadTop": 0,
|
||||
"PictureRightCrop": 0,
|
||||
"PictureRotate": "angle=0:hflip=0",
|
||||
"PictureSharpenCustom": "",
|
||||
"PictureSharpenFilter": "off",
|
||||
"PictureSharpenPreset": "",
|
||||
"PictureSharpenTune": "",
|
||||
"PictureTopCrop": 0,
|
||||
"PictureUseMaximumSize": true,
|
||||
"PictureWidth": 0,
|
||||
"PresetDescription": "Nvidia NVENC hardware accelerated H.265 video (up to 2160p) and AAC stereo audio, in an MP4 container.",
|
||||
"PresetDisabled": false,
|
||||
"PresetName": "sameRes-cpu-265",
|
||||
"SubtitleAddCC": false,
|
||||
"SubtitleAddForeignAudioSearch": false,
|
||||
"SubtitleAddForeignAudioSubtitle": false,
|
||||
"SubtitleBurnBDSub": false,
|
||||
"SubtitleBurnBehavior": "none",
|
||||
"SubtitleBurnDVDSub": false,
|
||||
"SubtitleLanguageList": [],
|
||||
"SubtitleTrackSelectionBehavior": "none",
|
||||
"Type": 1,
|
||||
"UsesPictureFilters": true,
|
||||
"VideoAvgBitrate": 7000,
|
||||
"VideoColorMatrixCodeOverride": 0,
|
||||
"VideoEncoder": "x265",
|
||||
"VideoFramerate": "auto",
|
||||
"VideoFramerateMode": "vfr",
|
||||
"VideoGrayScale": false,
|
||||
"VideoHWDecode": 0,
|
||||
"VideoLevel": "auto",
|
||||
"VideoMultiPass": true,
|
||||
"VideoOptionExtra": "",
|
||||
"VideoPreset": "slow",
|
||||
"VideoProfile": "auto",
|
||||
"VideoQSVDecode": false,
|
||||
"VideoQualitySlider": 27.0,
|
||||
"VideoQualityType": 2,
|
||||
"VideoScaler": "swscale",
|
||||
"VideoTune": "",
|
||||
"VideoTurboMultiPass": false,
|
||||
"x264Option": "",
|
||||
"x264UseAdvancedOptions": false
|
||||
},
|
||||
```
|
||||
|
||||
|
||||
## Dockhand Stack, Deploy from Git
|
||||
|
||||
Cookbooks Repository
|
||||
stackname: handbrake
|
||||
Compose file path: handbrake/compose-cpu.yaml
|
||||
Additional env file (optional): handbrake/sample.env
|
||||
|
||||
Then "Load" handbrake/sample.env into the Environmental variables in dockhand
|
||||
|
||||
Create the Stack
|
||||
@@ -0,0 +1,17 @@
|
||||
# Handbrake CPU
|
||||
services:
|
||||
handbrake:
|
||||
image: ${HANDBRAKE_IMAGE:-jlesage/handbrake:latest}
|
||||
restart: ${HANDBRAKE_RESTART:-unless-stopped}
|
||||
volumes:
|
||||
- "${VOL_PATH:-./data}/handbrake/ghb-config:/config"
|
||||
- "${VOL_PATH:-./data}/handbrake/storage:/storage"
|
||||
- "${VOL_PATH:-./data}/handbrake/complete:/output"
|
||||
- "${VOL_PATH:-./data}/handbrake/watch:/watch"
|
||||
- "${VOL_PATH:-./data}/handbrake/watch2:/watch2"
|
||||
- "${VOL_PATH:-./data}/handbrake/trash:/trash"
|
||||
env_file:
|
||||
- ${HANDBRADE_ENV:-sample.env}
|
||||
ports:
|
||||
- ${HANDBRAKE_PORT:-5800}:5800"
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# Handbrake CPU
|
||||
services:
|
||||
handbrake:
|
||||
image: ${HANDBRAKE_IMAGE:-jlesage/handbrake:latest}
|
||||
restart: ${HANDBRAKE_RESTART:-unless-stopped}
|
||||
volumes:
|
||||
- "${VOL_PATH:-./data}/handbrake/ghb-config:/config"
|
||||
- "${VOL_PATH:-./data}/handbrake/storage:/storage"
|
||||
- "${VOL_PATH:-./data}/handbrake/complete:/output"
|
||||
- "${VOL_PATH:-./data}/handbrake/watch:/watch"
|
||||
- "${VOL_PATH:-./data}/handbrake/watch2:/watch2"
|
||||
- "${VOL_PATH:-./data}/handbrake/trash:/trash"
|
||||
env_file:
|
||||
- ${HANDBRADE_ENV:-sample.env}
|
||||
ports:
|
||||
- ${HANDBRAKE_PORT:-5800}:5800"
|
||||
runtime: nvidia
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- capabilities: [gpu]
|
||||
@@ -0,0 +1,29 @@
|
||||
VOL_PATH=/data
|
||||
HANDBRAKE_IMAGE=jlesage/handbrake:latest #CPU
|
||||
#HANDBRAKE_IMAGE=zocker160/handbrake-nvenc:18x #GPU
|
||||
#NVIDIA_VISIBLE_DEVICES=all #GPU
|
||||
#NVIDIA_DRIVER_CAPABILITIES=all #GPU
|
||||
HANDBRAKE_RESTART=unless-stopped
|
||||
HANDBRAKE_ENV=sample.env
|
||||
HANDBRAKE_PORT=5800
|
||||
|
||||
AUTOMATED_CONVERSION=1 # 0 for no
|
||||
AUTOMATED_CONVERSION_FORMAT=m4v
|
||||
AUTOMATED_CONVERSION_KEEP_SOURCE=1 # 0 for remove
|
||||
AUTOMATED_CONVERSION_USE_TRASH=0 # 1 for yes. Required KEEP_SOURCE
|
||||
AUTOMATED_CONVERSION_OVERWRITE_OUTPUT=0
|
||||
AUTOMATED_CONVERSION_NO_GUI_PROGRESS=0 # 0 is show
|
||||
AUTOMATED_CONVERSION_MAX_WATCH_FOLDERS=2
|
||||
|
||||
AUTOMATED_CONVERSION_PRESET='Very Fast 1080p30'
|
||||
AUTOMATED_CONVERSION_OUTPUT_DIR=/output
|
||||
|
||||
AUTOMATED_CONVERSION_PRESET_2='Very Fast 1080p30'
|
||||
AUTOMATED_CONVERSION_OUTPUT_DIR_2=/output
|
||||
|
||||
# Password Protect
|
||||
SECURE_CONNECTION=1
|
||||
WEB_AUTHENTICATION=1
|
||||
WEB_AUTHENTICATION_TOKEN_VALIDITY_TIME=40
|
||||
WEB_AUTHENTICATION_USERNAME=username
|
||||
WEB_AUTHENTICATION_PASSWORD=p@ssw0rd
|
||||
Reference in New Issue
Block a user