I build a tool to re-encode my entire library on GDrive, with native RClone support. It’s still under development, but you can check it out here. The default codecs are H.264 and AAC as these are the most universally supported, but you can change these on runtime or change the defaults via plexus config.
Essentially, mount your GDrive account to a local directory, then run plexus list -d /path/to/media -l listfile.txt. Once the list file exists, modify it to remove the trailing path from the beginning of each entry (if you’ve mounted to /mnt/drive/, then you’ll need to remove the /mnt/drive/ from the beginning of each line using something like Notepad++, I’m working on removing this).Fixed.
Once you’ve got the list, run plexus encode -l listfile.txt -r YourGDriveRemote:. For extended support, you can install a custom build of FFmpeg using plexus install.
That sounds neat @Wolveix! I assume this requires a full download of all files, does it not? Does the tool detect files that are already using those codecs and leaves them alone? Also, I assume it’s probably better to mount this elsewhere with a second api client / secret so it doesn’t interfere with the one used by plex?
Thanks The mount is only needed while you build the list. Once it’s built, you can just unmount it if nothing else requires it. Realistically, you probably won’t hit the API request limit before hitting the daily download limit, so you’ll probably be fine. It’s highly recommended that you use your own client ID and secret anyway though, as you’ll see a huge increase in performance The program also has a mount function with the best settings that I’ve personally found.
The list function only adds a file to the list if either of the codecs are incorrect. A file does not get added if both codecs are correct.
When running the encode process, each file’s codecs are double checked once downloaded to determine how it should be encoded. For example, if it’s just the audio codec that needs changing, then the encode process will just copy the video codec rather than pointlessly re-encoding. This cuts down the encode time massively!
MKV by default as it has better support for multiple audio tracks, but you can change this by modifying the code yourself. I will add an option to modify this via the config function soon I’m currently in the process of rewriting the application from Shell to Go due to huge feature updates planned for v1.1+
Great! Message me if you have any issues It’s still under active development, so bugs are inevitable. In my use, I haven’t had many issues, and any that I have I’ve patched. I can’t recommend installing the custom build of FFmpeg enough as it provides much better codec support for AAC audio Rather than having to go through the hassle of building it yourself, you can just run the plexus install function to automate the process (it does take a good 10+ minutes though).
@Wolveix when I tried installing dependencies it brought me to the list of dependencies to install but then the script died:
root@plexy:~# plexus install
What would you like to do?
1 - Install missing dependencies
2 - Reinstall/Update Plexus
0 - Exit
1 - All
2 - FFmpeg
3 - Fuse
4 - RClone
0 - Exit
Please enter a valid menu option. Enter 0 to exit.
I installed it manually by getting the commands out of the script and compiling manually but thought you should know
Did you happen to press enter after typing the 1? The script automatically accepts the input, so pressing enter basically invalidates the next menu option. Just press 1 and it’ll take you through to the next menu I’ll add a handler for pressing enter though as I could see how that could be an oversight! Thanks!
Nope, I didn’t press anything, tried a few times too in case I was doing something stupid. Maybe my terminal sends something I’m not. In any case, I’m already testing it out with 1 file, re-encoding as I speak
EDIT: It worked! I think I have a perfect use case for this: assisted subtitles not being supported along with mkv container. This happens all the time with Anime. I’ll play around with it some more.