Powershell script that recursively searches through a user-defined file path and convert all videos of user-specified file types to MP4 with H264 video and AAC audio as needed using ffmpeg. If a conversion failure is detected, the script re-encodes the file with HandbrakeCLI. Upon successful encoding, Plex libraries are refreshed and source file is deleted. The purpose of this script is to reduce the amount of transcoding CPU load on a Plex server and increase video compatibility across platforms.
Get the latest image at Dockerhub
Features
- Full automation: Set a cron-formatted schedule, and convert/encode your files while you do something more interesting.
- Detailed logging: Allows easy tracking of what files are in the queue, overall queue progress, individual and cumulative file size gains and reductions, as well as total hours of video converted, how long it took to convert them, and the average encode speed.
- Plex integration: Refreshes Plex libraries upon completion of each item in the queue.
- Garbage collection: Allows user-specified file types to be deleted during each execution, keeping non-media files such as .nfo or thumbs.db from accumulating.
Want to contribute? Pull requests welcome!
GitLab | Github | Dockerhub