mirror of
https://github.com/DoTheEvo/selfhosted-apps-docker.git
synced 2026-07-03 14:06:40 +02:00
update
This commit is contained in:
+79
-60
@@ -6,6 +6,14 @@
|
||||
|
||||

|
||||
|
||||
1. [Purpose & Overview](#Purpose--Overview)
|
||||
2. [Video - core concepts](#Video---core-concepts)
|
||||
3. [Jellyfin transcoding](#Jellyfin-transcoding)
|
||||
4. [Clients and Plugins](#Clients-and-Plugins)
|
||||
5. [Docker deploy](#Docker-deploy)
|
||||
6. [Specific setups](#Speciifc-setups)
|
||||
7. [Troubleshooting](#Troubleshooting)
|
||||
|
||||
# Purpose & Overview
|
||||
|
||||
Stream movies, shows, music to a phone, a TV, a browser, ...<br>
|
||||
@@ -34,7 +42,7 @@ various languages and frameworks.
|
||||
* **H.262** - also called MPEG-2 - stuff of the past.
|
||||
* **H.264** - the most common now, also called **AVC** or MPEG-4.
|
||||
* **H.265** - also called **HEVC**, fast spreading, 50% improved over H.264,<br>
|
||||
but it also greatly increased fees for developers and manufacturers and and came
|
||||
but it also greatly increased fees for developers and manufacturers and came
|
||||
with a convoluted patent pools.
|
||||
* **AV1** - the future, no royalty fees, more improvements.
|
||||
The successor to VP9, which was developed by google.
|
||||
@@ -68,12 +76,12 @@ various languages and frameworks.
|
||||
contains codec libraries to be a single tool for all video manipulation.
|
||||
Is often the one under the hood of any media related software, doing the work.
|
||||
|
||||
---
|
||||
---
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
---
|
||||
|
||||
<details>
|
||||
<details open>
|
||||
<summary><h1>Jellyfin transcoding</h1></summary>
|
||||
|
||||

|
||||
@@ -170,7 +178,10 @@ Results
|
||||
* ryzen **4350GE**
|
||||
* 10x streams FHD - 6 max, otherwise stutter
|
||||
* 4K+HDR+tonemapping - [1x stream](https://i.imgur.com/8iairvO.png)
|
||||
|
||||
* ryzen **5500GT**
|
||||
* 10x streams FHD - 6 max, otherwise stutter,
|
||||
[1 stream 185 fps](https://i.imgur.com/O5BfVZB.png)
|
||||
* 4K+HDR+tonemapping - [1x stream](https://i.imgur.com/wsrUoPe.png)
|
||||
|
||||
Software used for monitoring the cpu and gpu usage
|
||||
|
||||
@@ -209,7 +220,9 @@ Aimed for music. Did not tested much yet.
|
||||
* [intro-skipper](https://github.com/intro-skipper/intro-skipper?tab=readme-ov-file)
|
||||
\- skips intros for shows
|
||||
|
||||
# Files and directory structure
|
||||
# Docker deploy
|
||||
|
||||
### Files and directory structure
|
||||
|
||||
```
|
||||
/mnt/
|
||||
@@ -236,7 +249,7 @@ Aimed for music. Did not tested much yet.
|
||||
You only need to provide the two files.</br>
|
||||
The directories are created by docker compose on the first run.
|
||||
|
||||
# Compose
|
||||
### Compose
|
||||
|
||||
* [the official documentation](https://jellyfin.org/docs/general/installation/container)
|
||||
|
||||
@@ -299,7 +312,7 @@ If one does not exist yet: `docker network create caddy_net`
|
||||
|
||||
</details>
|
||||
|
||||
# Reverse proxy
|
||||
### Reverse proxy
|
||||
|
||||
Caddy is used, details
|
||||
[here](https://github.com/DoTheEvo/selfhosted-apps-docker/tree/master/caddy_v2).</br>
|
||||
@@ -311,6 +324,49 @@ tv.{$MY_DOMAIN} {
|
||||
}
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary><h3>Mounting network shares</h3></summary>
|
||||
|
||||
If the media files are stored on an SMB share and should be mounted directly
|
||||
on the docker host using [systemd mounts](https://forum.manjaro.org/t/root-tip-systemd-mount-unit-samples/1191),
|
||||
instead of fstab or autofs.
|
||||
|
||||
`/etc/systemd/system/mnt-bigdisk.mount`
|
||||
```ini
|
||||
[Unit]
|
||||
Description=12TB truenas mount
|
||||
|
||||
[Mount]
|
||||
What=//10.0.19.11/Dataset-01
|
||||
Where=/mnt/bigdisk
|
||||
Type=cifs
|
||||
Options=ro,username=ja,password=qq,vers=3.0,soft,file_mode=0644,dir_mode=0755,uid=1000,gid=1000
|
||||
DirectoryMode=0700
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
`/etc/systemd/system/mnt-bigdisk.automount`
|
||||
```ini
|
||||
[Unit]
|
||||
Description=12TB truenas mount
|
||||
|
||||
[Automount]
|
||||
Where=/mnt/bigdisk
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
to automount on boot - `sudo systemctl enable mnt-bigdisk.automount`
|
||||
|
||||
---
|
||||
---
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# The first run
|
||||
|
||||
|
||||
@@ -321,8 +377,10 @@ Click through the basic setup.
|
||||
*
|
||||
|
||||
|
||||
# Specific setups
|
||||
|
||||
<details>
|
||||
<summary><h1>Intel specific setup</h1></summary>
|
||||
<summary><h3>Intel specific setup</h3></summary>
|
||||
|
||||
* [the official documentation](https://jellyfin.org/docs/general/administration/hardware-acceleration/intel/#configure-with-linux-virtualization)
|
||||
|
||||
@@ -352,16 +410,16 @@ To be able to use `Enable Intel Low-Power H.264 hardware encoder`
|
||||
* `mkinitcpio -P`
|
||||
* reboot
|
||||
|
||||
---
|
||||
---
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
---
|
||||
|
||||
<details>
|
||||
<summary><h1>AMD specific setup</h1></summary>
|
||||
<summary><h3>AMD specific setup</h3></summary>
|
||||
|
||||
* [the official documentation](https://jellyfin.org/docs/general/administration/hardware-acceleration/amd#configure-with-linux-virtualization)
|
||||
* [some videos](https://youtu.be/H0pCpNT4b-Q) with [some takes](https://youtu.be/UNJLDS5gC7o)
|
||||
* [some videos](https://youtu.be/H0pCpNT4b-Q) and [some takes](https://youtu.be/UNJLDS5gC7o)
|
||||
on [AMD transcoding](https://youtu.be/pnvp9DtqVjo)
|
||||
|
||||
Assuming an amd cpu with vega or RDNA.<br>
|
||||
@@ -391,63 +449,24 @@ The `compose.yml` + `.env` should just work.
|
||||
|
||||
[default](https://i.imgur.com/4EIv4mo.png) | [after](https://i.imgur.com/rbvsJQ9.png)
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
---
|
||||
|
||||
<details>
|
||||
<summary><h1>Mounting network shares</h1></summary>
|
||||
|
||||
If the media files are stored and an smb share and should be mounted directly
|
||||
on the docker host using [systemd mounts](https://forum.manjaro.org/t/root-tip-systemd-mount-unit-samples/1191),
|
||||
instead of fstab or autofs.
|
||||
|
||||
`/etc/systemd/system/mnt-bigdisk.mount`
|
||||
```ini
|
||||
[Unit]
|
||||
Description=12TB truenas mount
|
||||
|
||||
[Mount]
|
||||
What=//10.0.19.11/Dataset-01
|
||||
Where=/mnt/bigdisk
|
||||
Type=cifs
|
||||
Options=ro,username=ja,password=qq,file_mode=0700,dir_mode=0700,uid=1000
|
||||
DirectoryMode=0700
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
`/etc/systemd/system/mnt-bigdisk.automount`
|
||||
```ini
|
||||
[Unit]
|
||||
Description=12TB truenas mount
|
||||
|
||||
[Automount]
|
||||
Where=/mnt/bigdisk
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
to automount on boot - `sudo systemctl enable mnt-bigdisk.automount`
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
---
|
||||
|
||||
# Troubleshooting
|
||||
|
||||
#### Playback failed due to a fatal player error
|
||||
|
||||

|
||||
|
||||
#### Playback failed due to a fatal player error
|
||||
|
||||
* docker host - go to `jellyfin/jellyfin_config/log/`
|
||||
* the last file in the folder is the last playback attempt
|
||||
* paste that in to chatgpt
|
||||
|
||||
But generally, if it's after you made some transcoding options changes,
|
||||
go back to default, see if that works and then only enable stuff one by one.
|
||||
|
||||
#### Autodiscovery not working
|
||||
|
||||
to check if autodiscovery port is open and server is responding:
|
||||
@@ -455,7 +474,7 @@ to check if autodiscovery port is open and server is responding:
|
||||
* `echo -n 'Who is JellyfinServer?' | nc -u -b 10.0.19.4 7359`
|
||||
|
||||
|
||||

|
||||
<!--  -->
|
||||
|
||||
#### Unable to connect to the selected server right now
|
||||
|
||||
|
||||
Reference in New Issue
Block a user