Michael Fabian 'Xaymar' Dirks 0a20b750b8 encoders/generic: Implement video encoding and always use frame queue
This implements video encoding for the generic encoder by using frame queue and a set lag amount (in frames). The lag amount determines for how many frames no repeated attempts at submitting or retrieving a frame should be made, and after that many frames have been submitted the generic encoder will try to retrieve packets if at all possible. If not possible, it will delay for as long as possible to show an Encoder overloaded message.
2019-07-06 14:22:15 +02:00
2018-11-13 19:04:13 +01:00
2018-11-13 19:01:53 +01:00
2019-06-28 20:34:26 +02:00
2018-11-13 19:01:53 +01:00
2018-11-13 19:01:53 +01:00

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.

S
Description
Legacy plugin for OBS Studio to provide some FFmpeg encoders.
Readme MIT 413 KiB
Languages
C++ 82.4%
CMake 15.7%
JavaScript 1.9%