mirror of
https://github.com/linuxserver/docker-jellyfin.git
synced 2025-10-27 03:03:38 +09:00
Add v4l2 support, remove transcode volume
This commit is contained in:
@@ -49,4 +49,4 @@ COPY root/ /
|
|||||||
|
|
||||||
# ports and volumes
|
# ports and volumes
|
||||||
EXPOSE 8096 8920
|
EXPOSE 8096 8920
|
||||||
VOLUME /config /transcode
|
VOLUME /config
|
||||||
|
|||||||
@@ -49,4 +49,4 @@ COPY root/ /
|
|||||||
|
|
||||||
# ports and volumes
|
# ports and volumes
|
||||||
EXPOSE 8096 8920
|
EXPOSE 8096 8920
|
||||||
VOLUME /config /transcode
|
VOLUME /config
|
||||||
|
|||||||
@@ -52,4 +52,4 @@ COPY root/ /
|
|||||||
|
|
||||||
# ports and volumes
|
# ports and volumes
|
||||||
EXPOSE 8096 8920
|
EXPOSE 8096 8920
|
||||||
VOLUME /config /transcode
|
VOLUME /config
|
||||||
|
|||||||
39
README.md
39
README.md
@@ -78,13 +78,15 @@ docker create \
|
|||||||
-e UMASK_SET=<022> `#optional` \
|
-e UMASK_SET=<022> `#optional` \
|
||||||
-p 8096:8096 \
|
-p 8096:8096 \
|
||||||
-p 8920:8920 `#optional` \
|
-p 8920:8920 `#optional` \
|
||||||
-v </path/to/library>:/config \
|
-v /path/to/library:/config \
|
||||||
-v <path/to/tvseries>:/data/tvshows \
|
-v /path/to/tvseries:/data/tvshows \
|
||||||
-v </path/to/movies>:/data/movies \
|
-v /path/to/movies:/data/movies \
|
||||||
-v </path for transcoding>:/transcode `#optional` \
|
|
||||||
-v /opt/vc/lib:/opt/vc/lib `#optional` \
|
-v /opt/vc/lib:/opt/vc/lib `#optional` \
|
||||||
--device /dev/dri:/dev/dri `#optional` \
|
--device /dev/dri:/dev/dri `#optional` \
|
||||||
--device /dev/vchiq:/dev/vchiq `#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 \
|
--restart unless-stopped \
|
||||||
linuxserver/jellyfin
|
linuxserver/jellyfin
|
||||||
```
|
```
|
||||||
@@ -107,10 +109,9 @@ services:
|
|||||||
- TZ=Europe/London
|
- TZ=Europe/London
|
||||||
- UMASK_SET=<022> #optional
|
- UMASK_SET=<022> #optional
|
||||||
volumes:
|
volumes:
|
||||||
- </path/to/library>:/config
|
- /path/to/library:/config
|
||||||
- <path/to/tvseries>:/data/tvshows
|
- /path/to/tvseries:/data/tvshows
|
||||||
- </path/to/movies>:/data/movies
|
- /path/to/movies:/data/movies
|
||||||
- </path for transcoding>:/transcode #optional
|
|
||||||
- /opt/vc/lib:/opt/vc/lib #optional
|
- /opt/vc/lib:/opt/vc/lib #optional
|
||||||
ports:
|
ports:
|
||||||
- 8096:8096
|
- 8096:8096
|
||||||
@@ -118,6 +119,9 @@ services:
|
|||||||
devices:
|
devices:
|
||||||
- /dev/dri:/dev/dri #optional
|
- /dev/dri:/dev/dri #optional
|
||||||
- /dev/vchiq:/dev/vchiq #optional
|
- /dev/vchiq:/dev/vchiq #optional
|
||||||
|
- /dev/video10:/dev/video10 #optional
|
||||||
|
- /dev/video11:/dev/video11 #optional
|
||||||
|
- /dev/video12:/dev/video12 #optional
|
||||||
restart: unless-stopped
|
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 /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/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 /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*. |
|
| `-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/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)
|
## 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://<your-ip>:8096`
|
Webui can be found at `http://<your-ip>: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
|
## 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
|
-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
|
## Support Info
|
||||||
@@ -267,6 +283,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
|||||||
|
|
||||||
## Versions
|
## 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.
|
* **30.01.20:** - Add nightly tag.
|
||||||
* **09.01.20:** - Add Pi OpenMax support.
|
* **09.01.20:** - Add Pi OpenMax support.
|
||||||
* **02.10.19:** - Improve permission fixing for render & dvb devices.
|
* **02.10.19:** - Improve permission fixing for render & dvb devices.
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ common_param_env_vars_enabled: true #PGID, PUID, etc
|
|||||||
param_container_name: "{{ project_name }}"
|
param_container_name: "{{ project_name }}"
|
||||||
param_usage_include_vols: true
|
param_usage_include_vols: true
|
||||||
param_volumes:
|
param_volumes:
|
||||||
- { 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: "/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/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." }
|
- { 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_usage_include_ports: true
|
||||||
param_ports:
|
param_ports:
|
||||||
- { external_port: "8096", internal_port: "8096", port_desc: "Http webUI." }
|
- { 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."}
|
- { 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_usage_include_vols: true
|
||||||
opt_param_volumes:
|
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*." }
|
- { 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_device_map: true
|
||||||
opt_param_devices:
|
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)." }
|
- { 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_usage_include_ports: true
|
||||||
opt_param_ports:
|
opt_param_ports:
|
||||||
- { external_port: "8920", internal_port: "8920", port_desc: "Https webUI (you need to setup your own certificate)." }
|
- { 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: |
|
app_setup_block: |
|
||||||
Webui can be found at `http://<your-ip>:8096`
|
Webui can be found at `http://<your-ip>: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
|
## Hardware Acceleration
|
||||||
|
|
||||||
@@ -84,8 +86,20 @@ app_setup_block: |
|
|||||||
-v /opt/vc/lib:/opt/vc/lib
|
-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
|
# changelog
|
||||||
changelogs:
|
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: "30.01.20:", desc: "Add nightly tag." }
|
||||||
- { date: "09.01.20:", desc: "Add Pi OpenMax support." }
|
- { date: "09.01.20:", desc: "Add Pi OpenMax support." }
|
||||||
- { date: "02.10.19:", desc: "Improve permission fixing for render & dvb devices." }
|
- { date: "02.10.19:", desc: "Improve permission fixing for render & dvb devices." }
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/with-contenv bash
|
#!/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
|
for i in $FILES
|
||||||
do
|
do
|
||||||
|
|||||||
Reference in New Issue
Block a user