Sign inSign up

elecblue/embyserver-rkmpp

By elecblue

•Updated 20 days ago

Image for running embyserver on Rockchip-based platforms.

Image
0

160

elecblue/embyserver-rkmpp repository overview

⁠Emby Media Server: Rockchip Edition

Achtung!
You probably don't want to use this yet. I'm still working out some issues with the MPP service layer and, although ffmpeg knows the codecs are available, some issue is preventing Emby from knowing about them (in fact, Emby running in this engine has neither hardware or software options on the Transcoding settings page). I will remove this notice once everything works as expected.

This image is derived from the official emby/embyserver⁠ image and relies on nyanmisaka's ffmpeg-rockchip⁠ project, as well as the official rockchip-linux/mpp⁠ library.

The elecblue/embyserver-rkmpp is an adaptation of emby/embyserver targeting platforms running on Rockchip (arm64) hardware.

⁠Why?

After purchasing UGREEN's entry-level NAS (DH2300) on a whim, I quickly learned that its capabilities are restricted (albeit in an artificial and easily bypassed manner) to a small list of basic "apps" provided within the device's app catalog. While UGREEN manufactures much more powerful machines more suitable for running complex software, I knew there was no technical reason to prevent more advanced users from leveraging the features being restricted.

After discovering that the Docker application they provide for their more expensive NAS devices can simply be downloaded from their website and manually installed on the DH2300, so began my quest to turn it into an Emby server (and personal cloud, but that's not the focus here). Configuring and installing the official embyserver image was simple enough, and at first glance it would appear to work perfectly...

That is until I checked Emby's transcoding settings and noticed that there were options missing that I didn't expect to be. To make matters worse, it turns out that the embyserver image does not include the drivers necessary to use the device's RK3576 for hardware acceleration (or anything else, for that matter).

So, I aimed to get this working and do so in a way that could help the handful of other people that might find themselves in the same predicament.

⁠Preparing the Device

[This section will contain instructions on how to get to the point where this image can be used.]

⁠Configuring the container (docker-compose)

The following docker-compose should cover the basic configuration of the resulting container:

services:
  emby:
    image: elecblue/embyserver-rkmpp:latest # Pulls the latest version of the custom Emby Server image
    container_name: emby-server-rkmpp # Name of the container (can be changed if desired)
    restart: unless-stopped # Restarts server after unintended terminations
    environment:
      # User/Group IDs for permissions within the container
      # These should match the values of your host system, so make sure to update if needed.
      - UID=1000
      - GID=10
      - GIDLIST=10,44,100,105    # Group IDs needed
    volumes:
      - ./config:/config               # Configuration files
      - ./metadata:/metadata           # Media metadata
      - /volume2/media:/media          # General media storage path
      - /volume2/media/movies:/movies  # Movies storage path
      - /volume2/media/shows:/shows    # TV shows storage path
    devices:
      - /dev/dri:/dev/dri # Required to use hardware (GPU) acceleration
      
      # Required by nyanmisaka/ffmpeg-rockchip
      - /dev/dma_heap:/dev/dma_heap         # DMA_HEAP allocator
      # - /dev/rga:/dev/rga                   # RGA device filters
      - /dev/mpp_service:/dev/mpp_service   # Rockchip MPP codecs

      # Optional (used for compatibility with older kernels/SoCs)
      # - /dev/iep:/dev/iep                   # IEP device filters
      # - /dev/mpp-service:/dev/mpp-service   # Rockchip MPP service
      # - /dev/vpu_service:/dev/vpu_service   # VPU service
      # - /dev/vpu-service:/dev/vpu-service   # VPU service
      # - /dev/hevc_service:/dev/hevc_service # HEVC service
      # - /dev/hevc-service:/dev/hevc-service # HEVC service
      # - /dev/rkvdec:/dev/rkvdec             # RKV decoders
      # - /dev/rkvenc:/dev/rkvenc             # RKV encoders
      # - /dev/vepu:/dev/vepu                 # VEPU device filters
    ports:
      - 8096:8096 # HTTP
      - 8920:8920 # HTTPS

Some keys (volumes especially) will definitely need to be changed to work with your device, unless of course you want to configure your NAS' storage to match mine.

⁠What's next?

Now you'll configure your Emby server just as you would on any other device.

This image and its overview is a work-in-progress. Use this at your own risk, especially while this warning is up.

Tag summary

Content type

Image

Digest

sha256:855df150c…

Size

179.3 MB

Last updated

20 days ago

docker pull elecblue/embyserver-rkmpp