1. Current Location: Home >  NAS >  Feiniu NAS uses Docker to install Jellyfin video library, complete recording: scraping, transcoding, TV end, and the whole process. My N100 finally doesn't collect dust anymore

Feiniu NAS uses Docker to install Jellyfin video library, complete recording: scraping, transcoding, TV end, and the whole process. My N100 finally doesn't collect dust anymore

Feiniu NAS Docker Flowchart for Deploying Jellyfin Home Audio-Visual Library

my N100 mini PC at home with a Feiniu NAS installed, the hard drive is packed with nearly 6TB of movies and TV shows, so I've been relying on SMB sharing on the computer and running the TV on a network hard drive. When switching devices, you have to re-reconnect, and subtitles often don't read. Last month, I steeled myself to install a Jellyfin using Docker, fiddling for two nights. Now I can watch it on my TV, phone, or tablet just by clicking, and the progress is still cloud-synced. This article will write down the entire process in order, focusing on the places where I got stuck.

clarify first: what does Jellyfin do, and how do you choose between him and Emby

simply put, Jellyfin is a "private video library" installed on a NAS: you put movie files onto a hard drive, and it automatically pulls posters, synopses, and cast lists online, organizing them into a library with an interface similar to iQIYI's. Any device at home can open the client and watch on demand. The difference is that the source is your own—no ads, no memberships, no removal from the platform.

similar software, there are only two options: Emby and Jellyfin. I tried both, so here are my real-world impressions—

comparison items JellyfinEmby
charged completely free basic free of charge, The mobile client needs to be unlocked (about 30 yuan),
scraping capability sufficient, and occasionally more stable
transcoding supports hardware decoding hardware decoding
the difficulty to get started about the same about the same

I ended up keeping Jellyfin, for just one reason: both TV and mobile are completely free. Emby's mobile client is free, and every time you open it, you have to wait over ten seconds for an ad screen, which is annoying for elderly and kids at home. Functionally, the two are 90% identical. Emby, past and present, is the origin of Jellyfin's branches, and she will do one and the other.

Step one: Run Jellyfin in Docker

After installing Feiniu's Docker in the app center (if you don't know how, see this article: Feiniu NAS Docker Application Records ), open the Docker management interface, search for jellyfin in the registry, select the official image jellyfin/jellyfin, and just attach the latest tag. Don't download those versions recommended in old tutorials with linuxserver in their names; the official image is currently maintained best.

to create a container, fill in several key parameters as I said:

  • Image : jellyfin/jellyfin: latest
  • container_name: jellyfin (any English)
  • restart policy :always, NAS reboots and it climbs up on its own
  • port : Local 8096 mapped container 8096
  • mount path : Three mounts, explained in detail below

mount is the most prone to failure. The first time I tried it, the path wasn't mapped correctly, and after installation, scanning couldn't show any movies. Fill in according to this table:

What
to fill path
container
/configvol1/1000/docker/jellyfin configuration file must be provided separately for the
/mediavol1/1000/media main catalog of movies and TV dramas
/media/cache can transcode temporary files without attachment; as long as the memory is sufficient, it doesn't matter

here's a pitfall: /config must be mapped . The first time, I was lazy and didn't map; the container upgrade lost all configurations, so I had to re-scrape the media library. Also, in Feiniu, the mounting path is set to 'Folder', not a file. If you select the wrong type, the dropdown list will be empty.

to launch, the browser opens the NAS IP:8096, and the welcome screen appears, and it's alive. Don't rush to the next step—switch 'Languages' to Chinese Simplified and continue, or the pile of English menus will be exhausting.

Step 2: Name the movie catalog like this to double the scraping success rate

Whether

media library is good or not depends on the scraping process. Scraping means Jellyfin searches TMDB (the movie database) based on the file name to retrieve the poster summary. If file names get messy, it can't find it, and the curricula's covers are all gray placeholders.

the most stable directory structure I've tested is like this:

Media Directory / Movies / The Wandering Earth 2 (2023) / The Wandering Earth 2 (2023) .mkv

Media Directory / TV Series / The Long Season (2023) / Season 1 / The Long Season S01E01.mkv

key points, all I stepped on:

  • Movies: leave a space between the title and year, and enclose the year in English parentheses
  • Series: file names with a Season number like S01E01, with one Season folder per season
  • Animation and variety shows are organized by TV series, and don't arbitrarily assign them to movies
  • If the title contains an English colon (such as "Call of Duty: Black Ops"), the colon must be removed or replaced with a space; colons are illegal in filenames and cannot be recognized by scraping

If your source is downloaded online with a bunch of prefixes and suffixes (like '4K.'), HDR. Bilingual Chinese Subtitles"), try to rename it to the format above before re-importing. If you find changing them one by one troublesome, you can install tinyMediaManager to batch rename on your computer, but that's another topic.

Step 3: For the first configuration wizard, select the wrong two options

return to the 8096 webpage and enter the configuration wizard for the first time. Set a username and password. This password is for logging in to your home device. Keep it simple, since it's only on the internal network.

to the 'Media Library' step, click Add Media Library, select Movie as the type, and point the path to /media/Movie —note that this is the of the path inside the container, which is the /media in the mounting table, not Feiniu's own vol1 path. The first time, I filled in Feiniu's path, and Jellyfin was completely confused, unable to find anything.

choose Chinese, and the country should choose 'China, Mainland (Simplified)'. Scroll down to 'Preferred language for downloading metadata', and also select Chinese Simplified; otherwise, the retrieved poster and description will be in Traditional or English.

TV drama library follows the same method, select programs by genre, and follow /media/TV drama . After creating both libraries, use the wizard to enter the main interface. In the top left corner, click "Console → Media Library→ Scan All Media Libraries." Once it finishes, the poster wall will appear. I scanned over 300 movies for about 20 minutes, and the mechanical drive was slower.

Step 4: What to do if it can't be scraped? My three tricks

after the first scan, eight or nine out of ten are gray or have mismatched posters. Don't panic, first identify these three common reasons:

First Trick: Network Issues. TMDB servers are overseas, and direct connections often time out. In the NAS network settings, change DNS to 223.5.5.5 or 119.29.29.29, then rescan—the success rate will change immediately. If that doesn't work, assign a proxy to the NAS. Docker containers can also inherit host proxy devices. This varies by environment, so I won't elaborate here.

Second trick: file name issues. check the naming rules in section two above, especially for incorrect years or those with garbled prefixes. After renaming the file, find the movie in Jellyfin, right-click (on mobile devices, tap the three dots in the top right corner) and select "Refresh Metadata." You don't need to redo the full library.

Third trick: Identify errors and assign manually. For example it recognizes "The Wandering Earth 2" as the first film. On the film's detail page, there are three dots in the top right corner for "Recognize" or "Search." Manually enter the correct title and year, then select the correct poster from the results and overwrite it.

there's a hidden pitfall: when creating separate libraries for variety shows and animation, there are two options: "TV Program" and "Mixed Content" in the genre. For animation, just select the TV program; Mixed content mixes movies and series into one database for scanning, which lowers recognition rates unless your folders are really mixed together.

Step 5: How to watch on TV and mobile phones

the server is done, the rest is to install the client. Search for Jellyfin in almost every app store

device client experience
Android TV/boxJellyfin Google The Play version or DIY package the best, remote control operation
the official app on your phone the official app. If you select 'User' mode offline cache do you need a membership? No, free
iPad/iPhoneSwiftfin (third-party) smoother than official apps
computer just open the browser 8096 is enough, no need to install

my main product is the Xiaomi TV, which isn't available in the app store. I installed the APK using a USB drive: copying the Jellyfin App installation package from my phone to the USB drive, and plugging the TV into the USB drive using a "HD player" or installing it on Dangbei Market. After installing and opening it for the first time, it will ask you to enter the server address and enter the NAS's internal IP address: 8096 (for example, 192.168.1.100:8096). Enter your account and password and it will connect.

a reminder: tie a static IP to the NAS router, or if one day the router reassigns addresses and the whole family's TVs can't connect, you'll think the NAS is broken. My home is set up in the Xiaomi router's "Common Devices → Static IP Binding." For specific operations on the router side, you can see the I wrote before Xiaomi router restarts at a scheduled time, and the entry point is in the same backend.

a detail on the mobile side: upon first login, you will be asked to select either "User Mode" or "Home Mode" and select User. The homepage mode is used to split permissions among multiple users on one server; if you're the only one managing the server, you won't be able to use it.

Step 6: Accessing external websites and transcoding—these are the two things beginners most likely to mess up with

Let's start with the foreign internet. the first week after installation, I tried to watch a NAS show at home during my company lunch break, but found it couldn't connect at all—Jellyfin only serves the internal network by default. If you want to access the public network, the solution goes from simple to complex: router port mapping (mapping the 8096 out, not recommended , as it basically lets the entire network scan the login page bare), Feiniu's built-in remote access (fn connect, which is sufficient but only covers Feiniu's own interface), or using FRP/Tailscale for internal network traversal. For beginners, I recommend using Tailscale first. Install one on your phone and one on your NAS, log in to the same account, and your phone will access it just like you're on a local area network, without needing to adjust any router settings.

let's talk about transcoding. you don't understand this concept, watching the film will keep you buffered. Direct playback means the TV reads the original file and decodes it itself; Transcoding means the NAS first converts it to a format suitable for the TV, then pushes it forward. When is transcoding needed? If your source is HEVC/H.265 or 4K HDR, and your TV is old and doesn't recognize these formats,

transcoding is very CPU-intensive. If my N100 is a non-integrated graphics processor, I can decode a 4K HEVC with software and max out the CPU, but it still lags like a PowerPoint slide. The solution is to enable hardware transcoding : → console → play and transcoding, check the Intel QSV options (the N100 uses Intel chips with integrated graphics). After enabling the same 4K source, CPU usage drops from 98% to around 20%, so two or three people can watch at the same time without lag. If your NAS is a purely mechanical bay drive and your CPU is weak, just stick to H.264 encoded sources and don't force 4K original drives.

another note: Jellyfin's transcoding has a "subtitle burning" flaw: external ASS effect subtitles get burned into the screen during transcoding, which consumes a lot of resources. If you can add subtitles to the source, just do it—no need to worry.

Finally: Some honest thoughts after these two months

two months after installing Jellyfin, the Apple TV set-top box at home gathered dust. When the TV was turned on, it was a Jellyfin poster wall: kids watching cartoons, elders watching shows, me watching movies—each watching their own schedules without interfering with the other. The electricity bill hasn't increased for a month, and the N100's standby power consumption is low, with the whole unit only about ten watts.

have drawbacks: the support for domestic dramas is less comprehensive than foreign ones, and some obscure old dramas have to manually fill in posters; Before upgrading to a major version of Docker, remember to back up the config directory. I lost the configuration once when upgrading to 10.9 (but I learned my lesson and packaged the entire vol1/1000/docker/jellyfin directory before upgrading).

Here's a stepwise tip for those who want to get started: first stabilize the Feiniu system and storage space (if you're unsure about the hanging drive, see this article Feiniu NAS Hard Drive Record ), then install Docker and run Jellyfin. Just copy my naming conventions first, run it once, then work on hardware decoding and penetration. Don't be greedy for too many at once. On the first night, I installed, changed my specs, and tested the external network, but in the end, I couldn't locate any mistakes; On the second night, I honestly took it step by step, and ended up clearing everything in two hours.

Read More


Copyright Notice Scan to read on mobile
All Rights Reserved: 《SHUNOT》 => 《Feiniu NAS uses Docker to install Jellyfin video library, complete recording: scraping, transcoding, TV end, and the whole process. My N100 finally doesn't collect dust anymore
Article URL: https://www.shunot.com/en/nas/758.html
Unless otherwise stated, all articles are original by 《SHUNOT》. Reposting is welcome! Please indicate the original URL when reposting, thank you.

Contact Us

Online Consultation: Click here to send me a message

WeChat ID: master_135

Scan to follow