diff --git a/docs/rffmpeg/Master-Install.md b/docs/rffmpeg/Master-Install.md new file mode 100644 index 0000000..ce72cc9 --- /dev/null +++ b/docs/rffmpeg/Master-Install.md @@ -0,0 +1,74 @@ +## Prerequisites: +* A running jellyfin server on the master + +## Step 1: Configuring Jellyfin and preparing the server + +### Transcode temp folder +#### Sharing the the local trancode folder +Make the new trancode folder +``` +mkdir /var/lib/jellyfin/transcoding-temp +``` +NFS is the recomend way of sharing this folder, but SMB/CIFS shoud also work +``` +apt -y install nfs-kernel-server +echo '/var/lib/jellyfin/transcoding-temp /24(rw,sync,no_subtree_check)' >> /etc/exports +systemctl restart nfs-kernel-server +``` +Set the following setting in jellyfin "Transcode path" in the Playback settings to "/var/lib/jellyfin/transcoding-temp" + +#### Useing a existing remote share trancode folder +Make sure the folder is mounted at"/var/lib/jellyfin/transcoding-temp" +Set the following setting in jellyfin "Transcode path" in the Playback settings to "/var/lib/jellyfin/transcoding-temp" + +### SSH keypair +Generating sshkey pair without password +``` +sudo -u jellyfin mkdir -p /var/lib/jellyfin/.ssh +sudo -u jellyfin ssh-keygen -t rsa -f /var/lib/jellyfin/.ssh/id_rsa +``` + +## Step 2: Install slave/render servers + +### Getting info +Run `cat /etc/group | grep jellyfin:`, to get group info, i will refer to it as `` +Run `cat /etc/passwd | grep jellyfin:` to get user info, i will refer to it as `` +Run `cat /var/lib/jellyfin/.ssh/id_rsa.pub` To get ssh-key for sending commands , i will refer to it as `` +Get the ip of the master, i will refer to it as `` + +### Installing on the remote slave +use the info you collected en follow "Slave-install.md" + +### Adding local system as slave +``` +echo 'ssh-rsa ' | sudo -u jellyfin tee /var/lib/jellyfin/.ssh/authorized_keys +sudo -u jellyfin ssh -i /var/lib/jellyfin/.ssh/id_rsa jellyfin@localhost +``` + +Set the jellyfin user to login as bash in /etc/passwd + +## Step 3: Installing rffmpeg +``` +mkdir /etc/rffmpeg /opt/rffmpeg +wget https://raw.githubusercontent.com/joshuaboniface/rffmpeg/master/rffmpeg.yml.sample -O /etc/rffmpeg/rffmpeg.yml +wget https://raw.githubusercontent.com/joshuaboniface/rffmpeg/master/rffmpeg.py -O /opt/rffmpeg/rffmpeg.py +ln -s /usr/local/bin/rffmpeg.py /opt/rffmpeg/ffmpeg +ln -s /usr/local/bin/rffmpeg.py /opt/rffmpeg/ffprobe +``` +## Step 3: Configuring rffmpeg +Add to the host section of /etc/rffmpeg/rffmpeg.yml +Example of the section in the config file +``` +remote: + # A YAML list of remote hosts to connect to + hosts: + - 192.168.1.2 + - 192.168.1.3 +``` +if you also want the local system to render add localhost or 127.0.0.1 + + +## Step 4: Set jellyfin to use rffmpeg +Set the following setting in jellyfin "FFmpeg path" in the Playback settings to "/opt/rffmpeg/ffmpeg" + +## Done