diff --git a/Dockerfile b/Dockerfile index 8693d69..891e5f3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -49,4 +49,4 @@ COPY root/ / # ports and volumes EXPOSE 8096 8920 -VOLUME /config /transcode +VOLUME /config diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 65462e5..d68d57a 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -49,4 +49,4 @@ COPY root/ / # ports and volumes EXPOSE 8096 8920 -VOLUME /config /transcode +VOLUME /config diff --git a/Dockerfile.armhf b/Dockerfile.armhf index dddd603..9523d9f 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -52,4 +52,4 @@ COPY root/ / # ports and volumes EXPOSE 8096 8920 -VOLUME /config /transcode +VOLUME /config diff --git a/README.md b/README.md index 86ad9a5..a8d8dfa 100644 --- a/README.md +++ b/README.md @@ -78,13 +78,15 @@ 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 /opt/vc/lib:/opt/vc/lib `#optional` \ --device /dev/dri:/dev/dri `#optional` \ --device /dev/vchiq:/dev/vchiq `#optional` \ + --device /dev/video10:/dev/video10 `#optional` \ + --device /dev/video11:/dev/video11 `#optional` \ + --device /dev/video12:/dev/video12 `#optional` \ --restart unless-stopped \ linuxserver/jellyfin ``` @@ -107,10 +109,9 @@ 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 - /opt/vc/lib:/opt/vc/lib #optional ports: - 8096:8096 @@ -118,6 +119,9 @@ services: devices: - /dev/dri:/dev/dri #optional - /dev/vchiq:/dev/vchiq #optional + - /dev/video10:/dev/video10 #optional + - /dev/video11:/dev/video11 #optional + - /dev/video12:/dev/video12 #optional restart: unless-stopped ``` @@ -136,10 +140,12 @@ Container images are configured using parameters passed at runtime (such as thos | `-v /config` | Jellyfin data storage location. *This can grow very large, 50gb+ is likely for a large collection.* | | `-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). | +| `--device /dev/vchiq` | Only needed if you want to use your Raspberry Pi OpenMax video encoding. | +| `--device /dev/video10` | Only needed if you want to use your Raspberry Pi V4L2 video encoding. | +| `--device /dev/video11` | Only needed if you want to use your Raspberry Pi V4L2 video encoding. | +| `--device /dev/video12` | Only needed if you want to use your Raspberry Pi V4L2 video encoding. | ## Environment variables from files (Docker secrets) @@ -172,7 +178,7 @@ In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as bel Webui can be found at `http://:8096` -More information can be found in their official documentation [here](https://github.com/MediaBrowser/Wiki/wiki) . +More information can be found in their official documentation [here](https://jellyfin.org/docs/general/quick-start.html) . ## Hardware Acceleration @@ -201,6 +207,16 @@ Hardware acceleration users for Raspberry Pi OpenMAX will need to mount their /d -v /opt/vc/lib:/opt/vc/lib ``` +### V4L2 (Raspberry Pi) + +Hardware acceleration users for Raspberry Pi V4L2 will need to mount their /dev/videoX video devices inside of the container by passing the following options when running or creating the container: + +``` +--device=/dev/video10:/dev/video10 +--device=/dev/video11:/dev/video11 +--device=/dev/video12:/dev/video12 +``` + ## Support Info @@ -267,6 +283,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **24.02.20:** - Add Pi V4L2 support, remove optional transcode mapping (location is selected in the gui, defaults to path under `/config`). * **30.01.20:** - Add nightly tag. * **09.01.20:** - Add Pi OpenMax support. * **02.10.19:** - Improve permission fixing for render & dvb devices. diff --git a/readme-vars.yml b/readme-vars.yml index 0c79546..8a8d18a 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: "Jellyfin 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: "Jellyfin 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,12 +39,14 @@ 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: "/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/vchiq", device_host_path: "/dev/vchiq", desc: "Only needed if you want to use your Raspberry Pi OpenMax video encoding (Bellagio)." } + - { device_path: "/dev/vchiq", device_host_path: "/dev/vchiq", desc: "Only needed if you want to use your Raspberry Pi OpenMax video encoding." } + - { device_path: "/dev/video10", device_host_path: "/dev/video10", desc: "Only needed if you want to use your Raspberry Pi V4L2 video encoding." } + - { device_path: "/dev/video11", device_host_path: "/dev/video11", desc: "Only needed if you want to use your Raspberry Pi V4L2 video encoding." } + - { device_path: "/dev/video12", device_host_path: "/dev/video12", desc: "Only needed if you want to use your Raspberry Pi V4L2 video encoding." } 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)." } @@ -55,7 +57,7 @@ app_setup_block_enabled: true app_setup_block: | Webui can be found at `http://:8096` - More information can be found in their official documentation [here](https://github.com/MediaBrowser/Wiki/wiki) . + More information can be found in their official documentation [here](https://jellyfin.org/docs/general/quick-start.html) . ## Hardware Acceleration @@ -84,8 +86,20 @@ app_setup_block: | -v /opt/vc/lib:/opt/vc/lib ``` + ### V4L2 (Raspberry Pi) + + Hardware acceleration users for Raspberry Pi V4L2 will need to mount their /dev/videoX video devices inside of the container by passing the following options when running or creating the container: + + ``` + --device=/dev/video10:/dev/video10 + --device=/dev/video11:/dev/video11 + --device=/dev/video12:/dev/video12 + ``` + + # changelog changelogs: + - { date: "24.02.20:", desc: "Add Pi V4L2 support, remove optional transcode mapping (location is selected in the gui, defaults to path under `/config`)." } - { date: "30.01.20:", desc: "Add nightly tag." } - { date: "09.01.20:", desc: "Add Pi OpenMax support." } - { date: "02.10.19:", desc: "Improve permission fixing for render & dvb devices." } diff --git a/root/etc/cont-init.d/40-gid-video b/root/etc/cont-init.d/40-gid-video index 9ebcb11..371891f 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 /dev/vchiq -type c -print 2>/dev/null) +FILES=$(find /dev/dri /dev/dvb /dev/vchiq /dev/video1? -type c -print 2>/dev/null) for i in $FILES do