Home ยท Volume 2 ยท Chapter 03

๐Ÿ“– Chapter 03 โ€” Videos & Jellyfin

Stream movies, TV shows, and family videos to every device in the house โ€” and to the phone on the road.

v0.1 ยท draft Vol 2 ยท Ch 03
~15 min

Learning Objectives

Why Jellyfin

Jellyfin is a free media server that turns your NAS into a Netflix-for-your-own-content. Point it at a folder of video files, and it:

Why Jellyfin over Plex or Emby? Jellyfin is fully open source, free, and doesn't have a "premium" tier. Plex and Emby are fine products but their best features require a subscription.

Library organization

Jellyfin's metadata fetching is automatic โ€” if the files are named correctly. The convention:

Movies/ โ”œโ”€โ”€ The Matrix (1999).mp4 โ”œโ”€โ”€ The Matrix Reloaded (2003).mp4 โ””โ”€โ”€ Inception (2010).mp4 TV Shows/ โ”œโ”€โ”€ Breaking Bad/ โ”‚ โ”œโ”€โ”€ Season 01/ โ”‚ โ”‚ โ”œโ”€โ”€ Breaking Bad - S01E01 - Pilot.mkv โ”‚ โ”‚ โ”œโ”€โ”€ Breaking Bad - S01E02 - Cat's in the Bag....mkv โ”‚ โ”‚ โ””โ”€โ”€ ... โ”‚ โ””โ”€โ”€ Season 02/ โ”‚ โ””โ”€โ”€ ... โ””โ”€โ”€ The Office/ โ””โ”€โ”€ ...

The pattern: <Show Name> - S<##>E<##> - <Episode Title>.<ext>. Jellyfin parses this and fetches metadata. Misnamed files end up in a "Unknown" section that you can rename manually.

Movies

One folder per movie, with the year in the filename. Jellyfin uses the year to disambiguate remakes and find the right metadata.

TV shows

One folder per show, with subfolders per season. The show name in the folder path is what Jellyfin matches against its metadata database.

Home videos

Home videos don't have IMDB metadata. They go in their own "Home Videos" library, which Jellyfin treats as a flat folder. You can add custom metadata per video if you want.

Setting up libraries in Jellyfin

  1. Open Jellyfin (at http://<nas>:8096).
  2. Go to Dashboard โ†’ Libraries โ†’ Add Library.
  3. Choose content type: Movies, TV Shows, Music, Home Videos, etc.
  4. Set the folder: /mnt/tank/Media/Movies (or wherever your library lives).
  5. Set the metadata language: English (or your preference).
  6. Set the country: United States (or your country, for metadata sources).
  7. Enable "Fetch metadata from the internet" and "Fetch poster art."
  8. Save. Jellyfin will scan the folder and start fetching metadata.

The first scan takes a while. After that, new files are detected automatically (Jellyfin has a "library scan" scheduled task that runs every hour by default).

Hardware transcoding

When you play a video, three things can happen:

  1. Direct play: the device plays the file as-is. No CPU used on the NAS. Fastest, lowest quality adjustment.
  2. Direct stream: the file is remuxed (repackaged) but not re-encoded. Minimal CPU.
  3. Transcode: the file is re-encoded on-the-fly to match the device's requirements. Heavy CPU/GPU use.

Transcoding kicks in when the device can't play the original format. The most common cases:

For a 4-person family with mostly 1080p content, CPU transcoding is usually fine. For 4K HDR, you want hardware transcoding. The TrueNAS Jellyfin app exposes hardware acceleration settings in the app config.

If you have an Intel CPU with integrated graphics (most modern Intel chips)

Intel QuickSync is a hardware video encoder built into Intel CPUs. Configure Jellyfin to use it for transcoding. The TrueNAS app has a "hardware transcoding" toggle that, when set to "Intel QuickSync" (or "VAAPI" for Linux), enables this. Throughput goes from ~2-3 simultaneous 1080p transcodes on CPU to ~10+ on QuickSync.

If you have an NVidia GPU

Even better. NVENC is faster than QuickSync. Pass the GPU through to the Jellyfin container. Configuration is more involved but the throughput is real.

If you have neither

CPU-only works. For a 4-person family, expect to be able to transcode 1-2 1080p streams simultaneously on a modern CPU. If everyone is watching the same movie (direct play) or if everyone can direct-play their own content, transcoding is rare.

Users and access

Jellyfin has its own user system, separate from TrueNAS users. Create a Jellyfin user for each family member (or for each device):

For TK's build: one user per family member. The TVs in the house each have a "Family TV" user, and the actual people log in on their own devices with their own accounts.

Client apps

Jellyfin has official and unofficial clients for every platform:

For most families: the web UI on laptops, the official Jellyfin app on phones and tablets, the official Jellyfin app on smart TVs. That's it.

Remote access

When the family is away from home, they can still watch their media. The flow:

  1. Tailscale is running on the phone (Chapter 08 of Volume 1).
  2. Open the Jellyfin app on the phone.
  3. Connect to the Jellyfin server using the Tailscale IP (e.g. http://100.x.y.z:8096).
  4. Browse the library. Play a movie. Jellyfin transcodes it (or direct-streams, depending on the network) and sends it to the phone.

This works anywhere in the world with no extra configuration. Tailscale handles the secure tunnel; Jellyfin handles the streaming.

Bandwidth note

Streaming a 4K HDR movie over cellular can use 7+ GB/hour. For remote streaming, set Jellyfin to transcode to 1080p or lower by default. The streaming quality setting in the Jellyfin app controls this per-device.

Library best practices

Hardware considerations

ScenarioCPU needsGPU help?Notes
Direct play (most common)MinimalNoneJust needs to serve bytes over the network
1 stream transcoding 1080pModern i5Nice to haveQuickSync or NVENC recommended for multiple streams
1 stream transcoding 4KRecent i7 / Ryzen 7Highly recommendedSoftware 4K transcoding is rough on most CPUs
4 streams simultaneouslyRecent i7 / Ryzen 7Almost requiredHardware transcode is the right answer

Engineering Note

Jellyfin is one of the highest-leverage apps you can install. It replaces Netflix, Disney+, Hulu, and the family's DVD collection with the family's own NAS. The cost is a TV app setup; the benefit is "we never pay for streaming again, and we own everything we watch."

The setup time is real but front-loaded: organize the library once, configure hardware transcoding once, install the TV apps once. After that, the family uses it forever. The maintenance is low: a library scan after adding new content, occasional metadata refreshes, periodic app updates.

Summary

Jellyfin is the family media server. Movies in one folder, TV shows in another, with the right naming convention. Hardware transcoding (Intel QuickSync or NVENC) makes 4K possible on consumer hardware. Client apps for every platform. Tailscale for remote access. The success metric: the family watches their media through Jellyfin, not through another streaming service.

Checklist

Looking Ahead

Chapter 04 is documents. Paperless-ngx is to physical paperwork what Immich is to phone photos. The principle is the same: scan once, search forever, organized automatically. But the workflows are different โ€” paper documents are scanned, not auto-uploaded, and the categories (taxes, warranties, medical) are more structured than photos.

Ch 03 ยท v0.1 ยท drafted from the original ChatGPT conversation, July 2026