Cannot enable Hardware transcoding update on portainer
Just updated to v1.72.0 & trying to enable HW transcoding using intel quicksync. When I add the lines under immich_microservices and another services as hwaccel & redeploy, getting the following error:
"Failure
failed to pull images of the stack: open /data/compose/1/hwaccel.yml: no such file or directory"
My docker compose used as a stack in portainer:
17 Replies
Have you read the linked guide in the release note
To the best of my efforts, I have Alex.
Hardware Transcoding [Experimental] | Immich
This feature allows you to use a GPU or Intel Quick Sync to accelerate transcoding and reduce CPU load.
There is the link to the hwavcel.yml file in the documentation
Have you had a chance to get the file yet?
sorry not sure why but pasting the change in discord is screwing up the format of the hardware transcoding service but it shows up ok in portainer as far as formating is concerned.

Yup, following that I made the following changes (in bold) to my docker compose file I am deploying as a stack in portainer:
immich-microservices:
container_name: immich_microservices
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
extends:
file: hwaccel.yml
service: hwaccel
command: [ "start.sh", "microservices" ]
volumes:
${UPLOAD_LOCATION}:/usr/src/app/upload env_file: stack.env depends_on: redis database typesense restart: always hwaccel: devices:
/dev/dri:/dev/dri # If using Intel QuickSync or VAAPI # volumes: # - /usr/lib/wsl:/usr/lib/wsl # If using VAAPI in WSL2 # environment: # - NVIDIA_DRIVER_CAPABILITIES=all # If using NVIDIA GPU # - LD_LIBRARY_PATH=/usr/lib/wsl/lib # If using VAAPI in WSL2 # - LIBVA_DRIVER_NAME=d3d12 # If using VAAPI in WSL2 # deploy: # Uncomment this section if using NVIDIA GPU # resources: # reservations: # devices: # - driver: nvidia # count: 1 # capabilities: [gpu] I am guessing the "extends" is expecting a file where as I have defined it as a service ?
${UPLOAD_LOCATION}:/usr/src/app/upload env_file: stack.env depends_on: redis database typesense restart: always hwaccel: devices:
/dev/dri:/dev/dri # If using Intel QuickSync or VAAPI # volumes: # - /usr/lib/wsl:/usr/lib/wsl # If using VAAPI in WSL2 # environment: # - NVIDIA_DRIVER_CAPABILITIES=all # If using NVIDIA GPU # - LD_LIBRARY_PATH=/usr/lib/wsl/lib # If using VAAPI in WSL2 # - LIBVA_DRIVER_NAME=d3d12 # If using VAAPI in WSL2 # deploy: # Uncomment this section if using NVIDIA GPU # resources: # reservations: # devices: # - driver: nvidia # count: 1 # capabilities: [gpu] I am guessing the "extends" is expecting a file where as I have defined it as a service ?
I believe so
anything I can try ?
I have tried using:
extends:
service: hwaccel
But got error that "hwaccel" does not have an image associated with it as a service
You can find where the docker-compose is stored and put in the hwaccel file in there
@sogan Might have better idea than me
hwaccel.yml
is intended to be a convenience to reuse the settings in it across different docker-compose
files and avoid cluttering them. If Portainer is complaining about it, you can just put the relevant settings in immich-microservices
itself.
in your case, it would just mean adding
to immich-microservices
Thanks giving this a try
Do you have the portainer data directory mounted as a folder?
This worked perfectly. I can see igpu being used for HEVC encoding (only have 7th gen i3)
To confirm, had to install "sudo apt install intel-gpu-tools" then "intel_gpu_top"

Hi, haven't messed around with the actual portainer installed components yet.
awesome! also thanks for mentioning that tool, i wasn't aware of it
Thank you for the awsome hw transcoding efforts. My 1500 videos are actually transcoding faster now.
And the difference is night & day, my instance transcoded around 1500 videos in ~5 days before HW enabled. It has done 100 in the last 1 hour. already