Jump to content

use system memory as transcode cache folder


Recommended Posts

Phil8888

Host OS:openwrt Kernel Version  5.4.108

Docker:20.10.6 (API: 1.41)

emby server:docker 4.6.0.38

Feature Request:

1:give an option to use host memory as cache folder and can set an memory size limit,when cache run out , clear the oldest transcode file.

2:give an option to only allow iptv transcode.

 

reason:

1:As most of client device such as  iphone、android tv have very powerful cpu and do not need transcode,I only need transcode when watching IPTV.

2:My host os installed in an ssd drive with a data write limit and transcode produce mass data write.

3:My host have very large memory.

Thank you very much for your hard work.

 

 

Edited by Phil8888
Link to post
Share on other sites
ebr

Hi.  You could do this by just using a RAMDrive, no?

Link to post
Share on other sites

The only thing I could see is the deletions as it fills.. or clearing of oldest file... and with a RAM Drive it will write the image to disk on shutdown and read from disk on boot. The data write limit I have to look into but SSD's do have wear as well.. It would definitely offset a great deal.

IF the Host is on all of the time however this may not be such a big deal..

Think he might be looking for transcoding options per library.. ( I am not for sure how to only do IPTV )... Even though EMBY only transcodes according to need.. Hardware/Software support of the client apps and system settings... 🤷‍♂️

RAM Drive would be worth a try for the whole server if enough RAM is available.. would have to be installed on that drive however..

Link to post
Share on other sites
Phil8888
13 hours ago, ebr said:

Hi.  You could do this by just using a RAMDrive, no?

My host OS is linux,I use the emby docker version,when I mapping host's path /tmp/emby to docker emby transcode cache folder and use script to delete the oldest transcode file, the script works fine and oldest files were deleted, but the linux os cached memory keep growing to docker container memory limitition. when the limition reached, my iptv stopped playing.

But when i transcode film not iptv, even linux os cached memory reached the docker emby memory limition, It still works fine.

I think the emby windows version cae resolve this situation by ramdrive.

Link to post
Share on other sites
Happy2Play

Ramdrive/memory will not make a difference do to the way Emby transcodes.  The entire session is maintained until the session is stopped.  So you need as much space as the size of the item being played (roughly).

Continuous playing Live TV consumes space, depending on how long on a given channel as the entire session is stored.

Edited by Happy2Play
Link to post
Share on other sites
Phil8888
7 hours ago, Hxemby001 said:

The only thing I could see is the deletions as it fills.. or clearing of oldest file... and with a RAM Drive it will write the image to disk on shutdown and read from disk on boot. The data write limit I have to look into but SSD's do have wear as well.. It would definitely offset a great deal.

IF the Host is on all of the time however this may not be such a big deal..

Think he might be looking for transcoding options per library.. ( I am not for sure how to only do IPTV )... Even though EMBY only transcodes according to need.. Hardware/Software support of the client apps and system settings... 🤷‍♂️

RAM Drive would be worth a try for the whole server if enough RAM is available.. would have to be installed on that drive however..

When you use emby docker version, It  just need to mapping host path /tmp/emby to docker emby folder /mnt/transcache, and set  /mnt/transcache as emby transcode cache folder.

My scenario as below

use emby client on android tv

use emby client on ios

use kodi or emby theater on pc

use web on chrome when watching IPTV

So, I only need transcode when I watching IPTV and I want store cache file only in os memory.

Link to post
Share on other sites
Phil8888
Posted (edited)
15 minutes ago, Happy2Play said:

Ramdrive/memory will not make a difference do to the way Emby transcodes.  The entire session is maintained until the session is stopped.  So you need as much space as the size of the item being played (roughly).

Continuous playing Live TV consumes space, depending on how long on a given channel as the entire session is stored.

I use the follow script to delete the oldest transcode files to release my OS memory and the file was deleted correctly, but the OS memory usage and cached memory still growing to the docker emby memory limitation, When the limitation reached, IPTV stop playing but film works fine, May be the IPTV addon cause IPTV stop playing?

 

execute every 1 minute to check if file number reach to 120,then delete the oldest 100 files and keep the latest 20 files.

#!/bin/shminitemannite
FILE=`ls /tmp/emby/transcoding-temp/*.ts -l|grep "^-"| wc -l`
if [ ${FILE} -ge 120 ];then
find /tmp/emby/transcoding-temp/*.ts -type f -size +50M -exec rm -rf {} \;
ls /tmp/emby/transcoding-temp/*.ts -t|tail -100|xargs rm -rf
else
    exit 0
fi

Edited by Phil8888
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...