
Turn on the flag “Disable video stream transcoding”, note that this won’t eliminate the transcoding entirely, the server will still transcode when it absolutely needed, like transcode for a web client. Here is how you can prevent this behavior and push the original data to the client-side and the powerful client deal with transcoding instead.įirst, you need access Plex app via either the web or desktop client, go to Setting, under your server name (in my case I named it raspberrypi), choose the Transcoder section. The reason behind this is Plex priority bandwidth optimization over computational optimization, so by default, it will try to transcode the video on the server-side first to match the expected bandwidth and resolution indicated by the client. Worst, 4k videos won’t play at all due to “Your server is not powerful enough to transcode this video”. Technically, at this point, you can start watching your Movies on Plex, but you will soon realize that your Pi will start heating up extremely fast (especially in the tropical climate here, Singapore) and the CPU started being throttling. Linuxserver/plex Config Plex for transcoding optimization The starting command roughly look like docker run -d -name=plex \ Note that the official docker image at plexinc/pms-docker doesn’t support ARM so I use the linuxserver/plex alternative. For me I want the app to be self-contain so I chose docker for this task.
#TRANSCODING THROTTLED PLEX INSTALL#
You can install Plex server using any approach that you are comfortable with. I connect my Pi to a switch which then connects to the router as the Pi sit quite far from the Router itself (Sorry for the wire mess) Plex Server Installation Therefore, using an Ethernet connection between the Pi and your router is a must. Plus, you want to drop your source video files from your computer to the SSD fast. s "backup:/share/backup:rw:seannguyen" ConnectivityĮven though the Pi is capable of using wifi, but video streaming is a very bandwidth demanding task, especially when you stream 4k videos to multiple devices at your home. I used docker to run a samba implementation, one decent image that supports ARM is like below: docker run -d -name samba -restart unless-stopped \ I couldn’t really tell what is the issue from its logs so I decided to connect the SSD directly to my Pi and run the NAS from my Pi instead. However, my router kept hanging when I use the built-in NAS function after a period of usage, I use the Asus AC88U which is a very capable router. By doing this I can drop files easily to this storage and the Pi also can connect to this NAS without any problem. I did have a spare 256GB SSD lying around unused so I swapped it with the HDD for a much better IO performance, but HDD should do the trick you only have HDD at your disposal.Īt first, I connected this SSD to my router and then used the built-in NAS function of the router on top of this drive.

The first thing that came to mind was to use the same HDD that stores movies, which solve the problem. So, I had to place these folders on external storage.

As this is temp data and will be removed anyway after you finish watching a movie, I did think of using `tmpfs` (file system but only sit on RAM) for this transcoding folder, however, this is not feasible due to the large size of the transcoded videos and cannot fit in the tiny 1GB memory of the Pi. The heaviest disk IO operation is the transcoding of video. Due to this behavior, the SD Card that came with the Pi simply couldn’t keep up, overheated and paused randomly middle of a heavy write sometimes. These data can be metadata, caches, and transcoded video data.

Later down the road, I realized that Plex is a heavy storage usage application that reads and writes to the persistent layer at high frequency.
#TRANSCODING THROTTLED PLEX TV#
For the storage, in the beginning, I used a 1TB Seagate HDD as the home for all of my movies and TV Shows.
