jellyfin/readme.md
2025-06-05 16:12:21 +00:00

207 lines
No EOL
5 KiB
Markdown

# Jellyfin Docker Setup with Hardware Acceleration
This repository contains Docker configurations for running Jellyfin with hardware-accelerated transcoding support for various GPU types.
## Features
- Hardware-accelerated transcoding support for:
- Intel ARC GPUs
- Intel integrated graphics (iGPU)
- NVIDIA GPUs
- AMD GPUs
- HDR to SDR tonemapping
- Configurable environment variables
- Optimized for performance
## Prerequisites
- Docker and Docker Compose
- One of the supported GPUs
- Linux host system (recommended)
- Proper GPU drivers installed
## Quick Start
1. Create a new directory and download the required files:
```bash
# Create and enter directory
mkdir jellyfin-docker && cd jellyfin-docker
# Download base docker-compose.yml
curl -O https://raw.githubusercontent.com/yourusername/jellyfin-docker/main/docker-compose.yml
# Download sample.env
curl -O https://raw.githubusercontent.com/yourusername/jellyfin-docker/main/sample.env
# Download transcoding file for your GPU:
# For Intel ARC:
curl -O https://raw.githubusercontent.com/yourusername/jellyfin-docker/main/intel-arc.transcoding.yml
# OR for Intel iGPU:
curl -O https://raw.githubusercontent.com/yourusername/jellyfin-docker/main/intel-igpu.transcoding.yml
```
2. Copy the sample environment file:
```bash
cp sample.env .env
```
3. Edit the `.env` file with your settings:
```bash
nano .env
```
4. Verify your GPU setup:
```bash
# Check render group ID
getent group render | cut -d: -f3
# Verify GPU devices
ls -l /dev/dri
```
5. Start Jellyfin with the appropriate configuration:
```bash
# For Intel ARC
docker compose -f docker-compose.yml -f intel-arc.transcoding.yml up -d
# For Intel iGPU
docker compose -f docker-compose.yml -f intel-igpu.transcoding.yml up -d
```
6. Access Jellyfin at:
- HTTP: http://localhost:8096
- HTTPS: https://localhost:8920
## Quick Start
### Useful Commands
List only named Docker volumes:
```bash
docker volume ls | grep -v "^local.*[0-9a-f]\{64\}$"
```
This will show:
```
DRIVER VOLUME NAME
local cifs-volume_downloads
local cifs-volume_music
local cifs-volume_videos
local cifs_immich
local portainer_data
```
## Hardware Acceleration Setup
### Verify GPU Access
```bash
# Check render group ID
getent group render | cut -d: -f3
# Verify GPU devices
ls -l /dev/dri
```
### Check Driver Installation
For Intel
```bash
vainfo
```
For NVIDIA
```bash
nvidia-smi
```
For AMD
```bash
rocm-smi
```
## Configuration Files
- `docker-compose.yml`: Base configuration
- `intel-arc.transcoding.yml`: Intel ARC specific settings
- `intel-igpu.transcoding.yml`: Intel iGPU specific settings
- `.env`: Environment variables (copy from sample.env)
- `tonemapping.md`: Detailed explanation of HDR tonemapping options
### docker-compose.yml
Base configuration file that includes:
- Container name and image settings
- Volume mappings for media, config, and cache
- Network ports (HTTP/HTTPS)
- Basic environment variables
### intel-arc.transcoding.yml
Intel ARC GPU specific settings:
- Hardware acceleration configuration
- GPU device mappings
- Optimized tonemapping settings
- Intel ARC specific drivers and libraries
### intel-igpu.transcoding.yml
Intel integrated GPU settings:
- Hardware acceleration for QuickSync
- iGPU device mappings
- Compatible tonemapping settings
- Required driver configurations
### .env
Environment variables file containing:
- Port configurations (8096 for HTTP, 8920 for HTTPS)
- Domain settings for remote access
- Timezone configuration
- Render group ID for GPU access
- Cache and config directory paths
### tonemapping.md
Comprehensive guide covering:
- What tonemapping is and why it's needed
- Available algorithms and their use cases
- Performance implications
- Hardware-specific recommendations
- Troubleshooting tips
## Environment Variables
See `sample.env` for available options:
- `JELLYFIN_PORT_HTTP`: HTTP port (default: 8096)
- `JELLYFIN_PORT_HTTPS`: HTTPS port (default: 8920)
- `DOMAIN`: Your domain name
- `TZ`: Timezone
- `RENDER_GID`: Render group ID (get with `getent group render`)
## Tonemapping
For detailed information about HDR tonemapping options, see [tonemapping.md](Docs/tonemapping.md)
## Troubleshooting
1. **Hardware Acceleration Not Working**
- Verify GPU devices are properly mapped
- Check render group ID matches your system
- Ensure proper drivers are installed
2. **Performance Issues**
- Try different tonemapping algorithms
- Check CPU/GPU usage
- Limit concurrent transcoding sessions
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
This project is licensed under the MIT License - see the LICENSE file for details.
## Acknowledgments
- [Jellyfin Project](https://jellyfin.org/)
- [Docker](https://www.docker.com/)
- Hardware acceleration guides from various sources
## Support
If you encounter any issues, please open an issue on GitHub.