diff --git a/Dockerfile b/Dockerfile
index 793a068..c133dcb 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -50,4 +50,4 @@ COPY root/ /
# ports and volumes
EXPOSE 8096 8920
-VOLUME /config /transcode
+VOLUME /config
diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64
index c657507..03b2852 100644
--- a/Dockerfile.aarch64
+++ b/Dockerfile.aarch64
@@ -44,10 +44,22 @@ LABEL maintainer="thelamer"
# add needed nvidia environment variables for https://github.com/NVIDIA/nvidia-docker
ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility"
+RUN \
+ echo "**** add emby deps ****" && \
+ apt-get update && \
+ apt-get install -y --no-install-recommends \
+ libomxil-bellagio0 \
+ libomxil-bellagio-bin && \
+ echo "**** cleanup ****" && \
+ rm -rf \
+ /tmp/* \
+ /var/lib/apt/lists/* \
+ /var/tmp/*
+
# add local files
COPY --from=buildstage /app/emby /app/emby
COPY root/ /
# ports and volumes
EXPOSE 8096 8920
-VOLUME /config /transcode
+VOLUME /config
diff --git a/Dockerfile.armhf b/Dockerfile.armhf
index 4557df4..7f0453a 100644
--- a/Dockerfile.armhf
+++ b/Dockerfile.armhf
@@ -44,10 +44,29 @@ LABEL maintainer="thelamer"
# add needed nvidia environment variables for https://github.com/NVIDIA/nvidia-docker
ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility"
+RUN \
+ echo "**** install packages ****" && \
+ apt-get update && \
+ apt-get install -y --no-install-recommends \
+ gnupg && \
+ echo "**** add emby deps *****" && \
+ curl -s https://keyserver.ubuntu.com/pks/lookup?op=get\&search=0x6587ffd6536b8826e88a62547876ae518cbcf2f2 | apt-key add - && \
+ echo "deb http://ppa.launchpad.net/ubuntu-raspi2/ppa/ubuntu bionic main">> /etc/apt/sources.list.d/raspbins.list && \
+ apt-get update && \
+ apt-get install -y --no-install-recommends \
+ libomxil-bellagio0 \
+ libomxil-bellagio-bin \
+ libraspberrypi0 && \
+ echo "**** cleanup ****" && \
+ rm -rf \
+ /tmp/* \
+ /var/lib/apt/lists/* \
+ /var/tmp/*
+
# add local files
COPY --from=buildstage /app/emby /app/emby
COPY root/ /
# ports and volumes
EXPOSE 8096 8920
-VOLUME /config /transcode
+VOLUME /config
diff --git a/README.md b/README.md
index 857117a..04a0105 100644
--- a/README.md
+++ b/README.md
@@ -78,11 +78,13 @@ docker create \
-e UMASK_SET=<022> `#optional` \
-p 8096:8096 \
-p 8920:8920 `#optional` \
- -v :/config \
- -v :/data/tvshows \
- -v :/data/movies \
- -v :/transcode `#optional` \
+ -v /path/to/library:/config \
+ -v /path/to/tvseries:/data/tvshows \
+ -v /path/to/movies:/data/movies \
+ -v /path/for/transcoding:/transcode `#optional` \
+ -v /opt/vc/lib:/opt/vc/lib `#optional` \
--device /dev/dri:/dev/dri `#optional` \
+ --device /dev/vchiq:/dev/vchiq `#optional` \
--restart unless-stopped \
linuxserver/emby
```
@@ -105,15 +107,17 @@ services:
- TZ=Europe/London
- UMASK_SET=<022> #optional
volumes:
- - :/config
- - :/data/tvshows
- - :/data/movies
- - :/transcode #optional
+ - /path/to/library:/config
+ - /path/to/tvseries:/data/tvshows
+ - /path/to/movies:/data/movies
+ - /path/for/transcoding:/transcode #optional
+ - /opt/vc/lib:/opt/vc/lib #optional
ports:
- 8096:8096
- 8920:8920 #optional
devices:
- /dev/dri:/dev/dri #optional
+ - /dev/vchiq:/dev/vchiq #optional
restart: unless-stopped
```
@@ -133,7 +137,9 @@ Container images are configured using parameters passed at runtime (such as thos
| `-v /data/tvshows` | Media goes here. Add as many as needed e.g. `/data/movies`, `/data/tv`, etc. |
| `-v /data/movies` | Media goes here. Add as many as needed e.g. `/data/movies`, `/data/tv`, etc. |
| `-v /transcode` | Path for transcoding folder, *optional*. |
+| `-v /opt/vc/lib` | Path for Raspberry Pi OpenMAX libs *optional*. |
| `--device /dev/dri` | Only needed if you want to use your Intel GPU for hardware accelerated video encoding (vaapi). |
+| `--device /dev/vchiq` | Only needed if you want to use your Raspberry Pi OpenMax video encoding (Bellagio). |
## Environment variables from files (Docker secrets)
@@ -180,6 +186,14 @@ https://github.com/NVIDIA/nvidia-docker
We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime `--runtime=nvidia` and add an environment variable `-e NVIDIA_VISIBLE_DEVICES=all` (can also be set to a specific gpu's UUID, this can be discovered by running `nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv` ). NVIDIA automatically mounts the GPU and drivers from your host into the emby docker.
+### OpenMAX (Raspberry Pi)
+
+Hardware acceleration users for Raspberry Pi OpenMAX will need to mount their /dev/vchiq video device inside of the container and their system OpenMax libs by passing the following options when running or creating the container:
+```
+--device=/dev/vchiq:/dev/vchiq
+-v /opt/vc/lib:/opt/vc/lib
+```
+
## Support Info
@@ -246,6 +260,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
+* **26.02.20:** - Add openmax support on Raspberry Pi.
* **15.02.20:** - Allow restarting emby from the gui (also allows for auto restarts after addon updates).
* **02.10.19:** - Improve permission fixing for render and dvb devices.
* **13.08.19:** - Add umask environment variable.
diff --git a/readme-vars.yml b/readme-vars.yml
index 4694446..c5c9b92 100644
--- a/readme-vars.yml
+++ b/readme-vars.yml
@@ -24,9 +24,9 @@ common_param_env_vars_enabled: true #PGID, PUID, etc
param_container_name: "{{ project_name }}"
param_usage_include_vols: true
param_volumes:
- - { vol_path: "/config", vol_host_path: "", desc: "Emby data storage location. *This can grow very large, 50gb+ is likely for a large collection.*" }
- - { vol_path: "/data/tvshows", vol_host_path: "", desc: "Media goes here. Add as many as needed e.g. `/data/movies`, `/data/tv`, etc." }
- - { vol_path: "/data/movies", vol_host_path: "", desc: "Media goes here. Add as many as needed e.g. `/data/movies`, `/data/tv`, etc." }
+ - { vol_path: "/config", vol_host_path: "/path/to/library", desc: "Emby data storage location. *This can grow very large, 50gb+ is likely for a large collection.*" }
+ - { vol_path: "/data/tvshows", vol_host_path: "/path/to/tvseries", desc: "Media goes here. Add as many as needed e.g. `/data/movies`, `/data/tv`, etc." }
+ - { vol_path: "/data/movies", vol_host_path: "/path/to/movies", desc: "Media goes here. Add as many as needed e.g. `/data/movies`, `/data/tv`, etc." }
param_usage_include_ports: true
param_ports:
- { external_port: "8096", internal_port: "8096", port_desc: "Http webUI." }
@@ -39,10 +39,12 @@ opt_param_env_vars:
- { env_var: "UMASK_SET", env_value: "<022>", desc: "for umask setting of Emby, default if left unset is 022."}
opt_param_usage_include_vols: true
opt_param_volumes:
- - { vol_path: "/transcode", vol_host_path: "", desc: "Path for transcoding folder, *optional*." }
+ - { vol_path: "/transcode", vol_host_path: "/path/for/transcoding", desc: "Path for transcoding folder, *optional*." }
+ - { vol_path: "/opt/vc/lib", vol_host_path: "/opt/vc/lib", desc: "Path for Raspberry Pi OpenMAX libs *optional*." }
opt_param_device_map: true
opt_param_devices:
-- { device_path: "/dev/dri", device_host_path: "/dev/dri", desc: "Only needed if you want to use your Intel GPU for hardware accelerated video encoding (vaapi)." }
+ - { device_path: "/dev/dri", device_host_path: "/dev/dri", desc: "Only needed if you want to use your Intel GPU for hardware accelerated video encoding (vaapi)." }
+ - { device_path: "/dev/vchiq", device_host_path: "/dev/vchiq", desc: "Only needed if you want to use your Raspberry Pi OpenMax video encoding (Bellagio)." }
opt_param_usage_include_ports: true
opt_param_ports:
- { external_port: "8920", internal_port: "8920", port_desc: "Https webUI (you need to setup your own certificate)." }
@@ -67,8 +69,17 @@ app_setup_block: |
We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime `--runtime=nvidia` and add an environment variable `-e NVIDIA_VISIBLE_DEVICES=all` (can also be set to a specific gpu's UUID, this can be discovered by running `nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv` ). NVIDIA automatically mounts the GPU and drivers from your host into the emby docker.
+ ### OpenMAX (Raspberry Pi)
+
+ Hardware acceleration users for Raspberry Pi OpenMAX will need to mount their /dev/vchiq video device inside of the container and their system OpenMax libs by passing the following options when running or creating the container:
+ ```
+ --device=/dev/vchiq:/dev/vchiq
+ -v /opt/vc/lib:/opt/vc/lib
+ ```
+
# changelog
changelogs:
+ - { date: "26.02.20:", desc: "Add openmax support on Raspberry Pi." }
- { date: "15.02.20:", desc: "Allow restarting emby from the gui (also allows for auto restarts after addon updates)." }
- { date: "02.10.19:", desc: "Improve permission fixing for render and dvb devices." }
- { date: "13.08.19:", desc: "Add umask environment variable." }
diff --git a/root/etc/cont-init.d/40-gid-video b/root/etc/cont-init.d/40-gid-video
index 8e0dec3..15e2d6d 100644
--- a/root/etc/cont-init.d/40-gid-video
+++ b/root/etc/cont-init.d/40-gid-video
@@ -1,6 +1,6 @@
#!/usr/bin/with-contenv bash
-FILES=$(find /dev/dri /dev/dvb -type c -print 2>/dev/null)
+FILES=$(find /dev/dri /dev/dvb /dev/vchiq -type c -print 2>/dev/null)
for i in $FILES
do
@@ -24,3 +24,10 @@ done
if [ -n "${FILES}" ] && [ ! -f "/groupadd" ]; then
usermod -a -G root abc
fi
+
+# openmax lib loading
+if [ -e "/opt/vc/lib" ] && [ ! -e "/etc/ld.so.conf.d/00-vmcs.conf" ]; then
+ echo "[emby-init] Pi Libs detected loading"
+ echo "/opt/vc/lib" > "/etc/ld.so.conf.d/00-vmcs.conf"
+ ldconfig
+fi