Plex server with Amazon drive - rclone crypt vs encFS speed

I think it may have to do with the way Plex streams and segments the file using HLS (HTTP Live Streaming) that is different with crypt and encfs.

Trying to be methodical here, here’s the constants/variables in my tests:

Constants

  1. Linode 4GB VPS
  2. ACD mounted via rclone mount command in two spots: /mnt/rclone (using encrypted config) and /mnt/encfs (using raw config)
  3. The Plex Media Server + settings
  4. My Apple TV / iPhone that are being used as test clients.
    5.Same original movie file (unencrypted file I’m testing with.

Variables

  1. Two libraries in Plex: Movies (rclone) and Movies (encFS)
  2. Encryption format of the movie file
  3. For encFS, the encfs is layered on top of the ACD rclone mount to allow Plex to read the files.

More results

rclone encrypted file

  1. Movie takes longer to start streaming
  2. Movie will often pause or “jump” ahead, sometimes the movie will just stop, sending you back to the Plex menu.
  3. Movie sometimes does not start at the beginning, but instead 5-30 seconds into the movie
  4. Skipping ahead is hit or miss (although there is a known issue for this).
  5. Downloading the raw file from Plex shows speeds of 5-10MB/s, more than enough bandwidth from the VPS to my house to stream a few streams at a time. This tests the raw decryption speed + download from the VPS to my house.

encfs encrypted file

  1. Movie starts much quicker than the rclone encrypted file
  2. Movie does not jump ahead
  3. Movie always starts at beginning
  4. Skipping ahead is much smoother than rclone, but can still takes 5-10 seconds before it picks it back up.
  5. Downloading the raw file from Plex shows speeds of 5-10MB/s, more than enough bandwidth from the VPS to my house to stream a few streams at a time. No difference between rclone and encfs on the download.

As I mentioned, the Plex logs are littered with errors that it cannot pull enough segments when using rclone. By default, Plex segments the file for HLS streaming using 10 second segments and feeds those to the client. By default again, it will buffer 6 segments (60 seconds - this is configurable) ahead. As sessions are played, it queues up more segments. If it runs out of segments or can fill its cache, that is when buffering/complete stop will occur. I’ve tried bumping this to 120, even 300, but it doesn’t change anything.

Again, I feel this may be specific to Plex. I will attempt streaming via VLC a bit later, but I do not suspect it to be slow. If the raw download speed shows 5-10MB/s, chances are VLC will play fine.

I’m not entirely certain what is going on, but I can vouch that the rclone encrypted data is much more sporadic of getting a valid stream and holding it. With EncFS, it’s practically a guarantee that the stream will work and complete successfully - important for a good user experience.