StreamFX v1.0.0 Beta 443
Added 2024-01-23 18:54:19 +0000 UTCWith most major platforms now adopting AV1, it's time for it to be available via StreamFX as well. For now I'll provide a handler for FFmpegs av1_nvenc, listed as NVIDIA AV1 (via FFmpeg). This encoder will be functional on NVIDIA RTX 40 Series and newer, but will unfortunately still be listed for NVIDIA RTX 30 Series and earlier since querying for support is not that easy.
The quality benefits of customizing the settings are rather small, and practically impossible to notice. Even at extremely low bitrates, NVIDIAs AV1 encoding quality is indistinguishable between their fastest p1 and slowest p7 presets. In both H264 and HEVC, the difference between those two presets is massive - so hats off to NVIDIA for that.
And since I was already working on the FFmpeg encoder component, I figured I'd fulfill a request from 2022. Instead of the massive customized log output, why not just log a proper command line that can be parsed later? It only took a few hours to figure out when and how to do it, so now the log file will contain a somewhat proper FFmpeg command line. Unfortunately since we can only print it after the encoder is properly initialized, you won't get a command line or log output when it can't be initialized.
Additionally I switched out the parsing of the Custom Settings field with a much faster algorithm, sacrificing some flexibility. This algorithm supports both the command line style (-key value) as well as the key-value style (-key=value), and still supports escape sequences and quoting.
All in all, this is mostly an update that focuses on the FFmpeg encoders.
Changelog (1.0.0b433 to 1.0.0b443)
- Added a handler for FFmpeg's 'av1_nvenc' listed as "NVENC AV1 (via FFmpeg)". This encoder is functional on NVIDIA RTX 40 Series, but will still be listed on older GPUs as there is no easy way to check if your GPU supports the encoder for now.
- Replaced the parsing for Custom Settings of FFmpeg encoders with a much faster algorithm, sacrificing a bit of flexibility for performance. This new parsing supports the actual command line style of -key value and the old map style of -key=value. The latter is now considered legacy, and will log a warning.
- Replaced the custom log entries from FFmpeg Encoders with a generated command line. While the generated command line is not perfect and may include additional invalid options that are only valid within code, it is much better than the previous approach.
- Migrated the internal component loader to something that can resolve dependencies, albeit with some additional initialization time. This reduces the chance of me setting an incorrect priority on a component, causing it to load before its dependencies have loaded.
Comments
update me too hahaha i wanna learn
Chachi Meow
2024-05-03 22:33:05 +0000 UTCNew guy here. Installed and am looking for the shortcuts... Basically, I need a 'StreamFx for Dummies'. Any help would be appreciated!
Alamo Gulfcitizen
2024-01-31 00:10:47 +0000 UTC