jellybench_py is a benchmarking tool designed to measure the performance of hardware when handling simultaneous ffmpeg transcoding processes. This tool tests how many parallel ffmpeg transcoding processes a system can manage, providing detailed insights into hardware performance.
The benchmark results can be uploaded to the central Jellyfin Hardware Survey Server, allowing users to compare their hardware's performance with other systems. This facilitates easy visualization of the results and serves as a valuable resource for Jellyfin users looking to optimize their transcoding capabilities.
jellybench_py QuickStart Guide
Warning
This is an Alpha Version of the Client. It has not been properly tested, nor implemented for all Platforms yet! Use at your own risk.
Note
This hardware benchmark will use all system ressources available.
Note
The Benchmark will take multiple hours to finish. Make sure to run it, when the system is not used.
Warning
By default the client will use the official Jellyfin Hardware Survey Server on https://hwa.jellyfin.org/. The script will not upload any Test results without seperate user confirmation. It will only load the tests and test files based on your Operating System and Architecture.
jellybench_py is built as a python module via poetry. Therefore you need to have at least python 3.11.2 and poetry installed on your system.
poetry is installed via pipx using: pipx install poetry
If you do not have pipx installed, follow the official install guide
- Clone the GitHub Repository
git clone https://github.com/BotBlake/jellybench_py
- Go into the jellybench_py Folder
cd jellybench_py
- Switch to the development branch
git switch develop
- Open the venv shell
poetry shell
- Install Dependencies
poetry install
(To exit the Shell:exit
)
Important
Since the state of the software often Changes, you might have to do some "additional steps" to ensure its running correctly. They are explained down below in the additional Steps section.
- open the poetry shell
poetry shell
- run the script
jellybench
Important
By default this will use the official Jellyfin Hardware Survey Server https://hwa.jellyfin.org/. If you want to run from a custom Server, use the --server {url}
option
If you want / need specific info about all the CLI Arguments, run jellybench -h
To reduce Test Runtime you can disable certain hardware reducing the number of tests you run.
- CPU based tests can be disabled using the
--nocpu
flag - GPU based tests can be disabled using the
--gpu 0
option or by selecting 0 in the interactive GPU selector - If the CPU and GPU are disabled the program will error out saying "ERROR: All Hardware Disabled"
Since the Script downloads ffmpeg AND video files, you have the option to specify a Path for both. If the files are already existing there, they will not be redownloaded.
- Path to video directory via
--videos {path}
- Path to ffmpeg portable directory via
--ffmpeg {path}
During development jellybench_py may require you to set up specific things manually these will change over Time
- Make sure you are on the latest version
git pull
- Take a Look into the "Current Issues" section
You will find a List of currently known issues below. These will change over time, so please ensure you check this section regularly for any changes.
NVIDIA Limits their consumer grade GPU's maximum NvEnc Streams through the driver. Currently this leads to a super long runtime on NvEnc limited devices.
Caution
If you do use a NVIDIA consumer grade Graphics Card and have not done anything to circumvent the limit, its currently recommended to not Test on that device. Runtime on these devices will be significantly increased!