Add openmax support

This commit is contained in:
aptalca
2020-02-26 16:56:24 -05:00
parent 70cc67859f
commit 43a4b407ff
6 changed files with 75 additions and 11 deletions

View File

@@ -50,4 +50,4 @@ COPY root/ /
# ports and volumes
EXPOSE 8096 8920
VOLUME /config /transcode
VOLUME /config

View File

@@ -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

View File

@@ -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

View File

@@ -82,7 +82,9 @@ docker create \
-v /path/to/tvshows:/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
```
@@ -109,11 +111,13 @@ services:
- /path/to/tvshows:/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.

View File

@@ -40,9 +40,11 @@ opt_param_env_vars:
opt_param_usage_include_vols: true
opt_param_volumes:
- { 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." }

View File

@@ -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