* Updated the libOBS dependency to 24.0.0. You will need to use OBS Studio 24.0.0 or newer in order to run the plugin. * Implemented full hardware encoding for all GPU capable encoders (NVENC H264, NVENC H265). This should be perform identical to the OBS included full hardware encoders. * Reduced the latency for some encoders to be as low as 1 frame, if settings allow. For NVENC, latency is tied to (B-Frames + 1) and Lookahead Frames, whichever is bigger. * Further improved performance by throwing even less memory away every frame. Almost all memory is now re-used if possible and only released when the encoding is stopped by any means. * Apple ProRes encoded files should now be remuxable when stored in Matroska (MKV) and survive at least one remuxing. This bug was already fixed in current master FFmpeg, and thanks for discovering this bug go to FRANKIEonPC. * All color metadata is now set for encoders that support this, such as NVENC. Video players and editors that support this kind of metadata should see an improvement in color quality, especially with 10-bit or higher output. * Framerate is now set to be fixed, further improving compatibility with players. It was previously left to be guessed by the video player through the timing information. * Settings are now output to the log file for easier debugging. Please remember to send a log file with any issue you have with the plugin.
FFMPEG Encoders for OBS studio
Adds ffmpeg encoders for normal use instead of requiring ffmpeg output. Not much else to say.
Encoders
Video Production / Edition
Apple ProRes (prores_aw)
- Intra-Frame only
- Fixed Bitrate (defined by Profile)
- Profiles: PXY, LT, Standard, HQ, 4444
- Threading: Frame
Threading Modes
All threading modes can be combined to create a more complex one.
Frame
Frame Threading means that new frames can be submitted before the last one is complete. This is the most basic threading and has huge latency issues, and is likely also very unstable with frame times.
Slice
Slice Threading allows individual frames to be done quicker by splitting up the entire submitted frame into individual slices, each of which are handed off to workers. More complex than frame threading, but can result in faster encoding and will result in less latency.
Macroblock
This kind of threading is rarely seen and splits the frame into macroblocks, allowing for massive parallelization. Similar latency to Slice threading and can occasionally use SMT/HT better, resulting in better performance.