Sign inSign up

bxgms/emby-vulkan

By bxgms

Updated 4 months ago

Image
0

10K+

bxgms/emby-vulkan repository overview

Docker Image Overview

Base Image: linux/emby:version-4.9.3.0
Vulkan Version: 1.3.275
Mesa Vulkan Drivers: 23.2.1

This Docker image is built to support Vulkan-based ** MP4,MKV,ISO P5,P7,P8,HDR,HDR+ to SDR screenshot conversion** with CPU transcoding enabled. It’s ideal for users looking to integrate Vulkan and other dependencies into their Jellyfin FFmpeg build. Use rffmpeg to deal Distributed-Extract


Features

  • Vulkan Support: With Vulkan version 1.3.275 and Mesa Vulkan Drivers version 23.2.1, this image supports hardware-accelerated transcoding and rendering.
  • FFmpeg with Vulkan: The FFmpeg build comes with --enable-vulkan and --enable-libplacebo, enabling Vulkan integration for enhanced video processing. Such as [official Jellyfin FFmpeg repository](https://github.com/jellyfin/jellyfin-ffmpeg)
  • CPU Transcoding: Optimized for environments requiring CPU transcoding.

Vulkan Environment Variables

For proper Vulkan configuration, ensure the following environment variables are set:

For ARM architecture:
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.aarch64.json
For X64 architecture:
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.x86_64.json

For proper Vulkan configuration, ensure the following environment variables are set:

For third User-defined ffmpeg:
/third/bin/ffmpeg
For Distributed-Extract ffmpeg worker:
/work/bin/rffmpeg

RUN for example

version: '3'

services:
  
  embyserver_vulkan:
    image: bxgms/emby-vulkan:latest
    container_name: embyserver_vulkan
    restart: unless-stopped
    privileged: true
    ports:
      - "8096:8096"
      - "8920:8920"
    environment:
      - TZ=Asia/Shanghai 
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.aarch64.json
      # - VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.json
      # ffmpeg DB type: sqlite or postgres
      - DB_TYPE=sqlite
      - DB_SQLITE_PATH=./rffmpeg.db
      # START postgres setting
      - DB_POSTGRES_HOST=192.168.149.99
      - DB_POSTGRES_PORT=5432
      - DB_POSTGRES_NAME=rffmpeg
      - DB_POSTGRES_USER=postgres
      - DB_POSTGRES_PASS=postgres
      # END postgres setting
      - RFF_MANAGE_NODES=true #switch add nodes for rffmpeg
      # use '|' split nodes, for every team use ":" to split command(add/remove),servername,serverweight and serverip
      - RFF_NODE_ACTIONS=add:agent1:1:192.168.149.3|add:agent2:1:192.168.149.4|add:agent3:1:192.168.149.5|add:agent4:1:192.168.149.6    
    volumes:
      - /docker/emby_vulkan/config:/config 
      - /dockerf/media:/media
      - /docker/emby_vulkan/emby-crx:/system/dashboard-ui/emby-crx
     
    # devices:
    #   - /dev/dri:/dev/dri
    networks:
      embyserver_network:
        ipv4_address: 192.168.149.2          

  #--- 3. PostgreSQL 18 if DB_POSTGRES_HOST SET ---    
  rffmpeg-postgres-db:
    image: postgres:18
    container_name: rffmpeg-postgres-db-18
    restart: unless-stopped
    networks:
      embyserver_network:
        ipv4_address: 192.168.149.99
    volumes:
     - /docker/emby_postgres_data_18:/var/lib/postgresql
      # - postgres_data:/var/lib/postgresql
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=rffmpeg
      # - PGDATA=/var/lib/postgresql/data
    ports:
      - "5434:5432"
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres -d postgres"]
      interval: 10s
      timeout: 5s
      retries: 5

networks:
  embyserver_network:
    driver: bridge
    ipam:
      config:
        - subnet: 192.168.149.0/24

Tag summary

Content type

Image

Digest

sha256:17885a9c1

Size

601.9 MB

Last updated

4 months ago

docker pull bxgms/emby-vulkan