Commit Graph

44 Commits (a94c0e055b879f68bb7b378bfc53fb1412754d9b)

Author SHA1 Message Date
jpark37 b6afaceeae Update VIDEO_CS_DEFAULT to mean 709 instead of 601
Consistent with modified default UI setting.
2020-09-06 20:51:28 -07:00
jpark37 37f01b35f6 obs-ffmpeg: Improve color space handling
Add support for VIDEO_CS_SRGB.

Use SMPTE 170M for 601 instead of undef/BT470BG. This is the
American/Chromium way of handling 601.

Add color metadata to the container file as well via ffmpeg-mux.
2020-07-18 19:44:13 -07:00
Richard Stanway 6fac77b69f obs-ffmpeg: Add error message for non-zero GPU 2020-04-27 01:22:34 +02:00
Richard Stanway 35e218e05b obs-ffmpeg: Add localization for NVENC error messages 2020-04-27 01:22:05 +02:00
Richard Stanway 6b441a180c obs-ffmpeg: Preserve error message from new NVENC
If we fallback to ffmpeg NVENC, the error from new NVENC might still be
present in the encoder structure. Given that this provides a lot more
actionable information to the user, let's use it if possible.
2020-04-26 23:35:28 +02:00
Richard Stanway 15781073dc obs-ffmpeg: Add error text for NVENC AVERROR_EXTERNAL
Since new NVENC still falls back, try to make the error from ffmpeg
NVENC more actionable for users.
2020-04-12 17:35:27 +02:00
Richard Stanway 5e3e9c1f13 obs-ffmpeg: Use new encoder error handling functions 2020-04-12 17:05:19 +02:00
jp9000 113af5344c obs-ffmpeg: Make sure to show FFmpeg NVENC on non-windows 2020-03-18 17:02:56 -07:00
jp9000 11eafbda35 obs-ffmpeg: Mark FFmpeg NVENC as internal
Because we implemented the fallback for rescaling, there's no need to
show FFmpeg NVENC anymore.
2020-02-18 21:37:51 -08:00
jp9000 806ab5a022 libobs: Mark encoders that support dynamic bitrate
(This commit also modifies mac-vth264, obs-ffmpeg, obs-qsv11, and
obs-x264)
2019-08-18 03:14:38 -07:00
jp9000 ed43de5c75 obs-ffmpeg: Allow FFmpeg NVENC to be reconfigured
Adds the ability to reconfigure FFmpeg's NVENC implementation on the
fly.
2019-08-18 03:14:38 -07:00
jp9000 68a5a40df9 libobs, obs-ffmpeg, win-dshow: Fix FFmpeg 4.0 deprecation
Fixes FFmpeg 4.0 deprecation warnings.
2019-07-29 20:34:13 -07:00
jp9000 f53df7da64 clang-format: Apply formatting
Code submissions have continually suffered from formatting
inconsistencies that constantly have to be addressed.  Using
clang-format simplifies this by making code formatting more consistent,
and allows automation of the code formatting so that maintainers can
focus more on the code itself instead of code formatting.
2019-06-23 23:49:10 -07:00
Clayton Groeneveld 31b73f8025 UI: Add ability to set properties spinbox suffix 2019-05-02 08:54:14 -07:00
Gol-D-Ace f27a00d266 Revert "obs-ffmpeg: Add option to use b-frames as reference"
This reverts commit adf3337d3c.
Currently causing timestamp issues resulting in FPS issues.
2019-03-14 10:05:55 +01:00
derrod adf3337d3c obs-ffmpeg: Add option to use b-frames as reference
According to nvidia's documentation using b-frames as reference results in
a slight quality improvement with no/negligible performance impact and is
recommended to be enabled by default when using multiple b-frames.
2019-02-20 05:05:12 +01:00
jp9000 e67d04270a obs-ffmpeg: Enable NVENC psycho_aq by default for now 2019-02-13 19:33:39 -08:00
jp9000 0948e8a629 obs-ffmpeg: Mark unused parameter 2019-02-11 17:34:07 -08:00
jp9000 e49bba3292 obs-ffmpeg: Don't expose new settings to old NVENC (yet) 2019-02-11 17:33:17 -08:00
VodBox 81dc78f50f obs-ffmpeg: Use CQP in jim-nvenc properties text 2019-02-10 13:23:05 +13:00
jp9000 8fb36700b2 obs-ffmpeg: Add tooltips for new NVENC settings 2019-02-09 01:12:18 -08:00
jp9000 ecdae0d417 obs-ffmpeg: Disable psycho_aq by default (for now) 2019-02-08 16:16:41 -08:00
jp9000 8b566f3352 obs-ffmpeg: Update NVENC properties and property defaults
Adds VBR rate control mode, adds a lookahead option, adds psycho visual
tuning option, removes level property (now always set to 'auto'),
removes "2pass" option (replaced by new "Max Quality" preset which uses
2pass by default), modifies a few defaults, and updates their locale
text.
2019-02-07 17:00:47 -08:00
jp9000 9c11772682 obs-ffmpeg: Update display name of FFmpeg NVENC encoder 2019-02-07 17:00:47 -08:00
jp9000 530266917d obs-ffmpeg: Use correct function with older FFmpeg vers.
When this was being fixed up, the incorrect function name was used --
however it still compiled because the author was using the newer FFmpeg
version at the time.
2017-12-06 10:10:03 -08:00
jp9000 0d6204c8af Fix a number of MSVC warnings
Fixes a number of warnings with all modules
2017-12-05 13:53:44 -08:00
jp9000 1738adf021 Revert "obs-ffmpeg/nvenc: Remove "default" preset"
This reverts commit d1343dc064.

Apparently people are having issues caused by this specific commit.
Going to temporarily revert for the time being.
2017-05-21 02:54:41 -07:00
BtbN d1343dc064 obs-ffmpeg/nvenc: Remove "default" preset
The "default" preset is not an actual default, but something Nvidia
decided to just call that way.  It yields the worst quality per bitrate
out of all the presets, for no actual benefits.  The actual FFmpeg
default is the hq one, which yields the best quality, especially when
twopass mode is enabled.

I can't think of a way to keep the "default" preset in a non-confusing
way, and as it gives no known benefits, might as well just remove it
entirely.

(Jim edit: Also made it so that if the settings have it set to
"default", it automatically treats it as "hq")

Closes jp9000/obs-studio#865
2017-03-25 02:08:06 -07:00
jp9000 cef4cba576 obs-ffmpeg: Fix nvenc_h264 deprecated message
The encoder name was changed from "nvenc_h264" to "h264_nvenc", and will
throw a warning in the log file if you use the former, so try the latter
first, then the former.
2016-12-21 19:27:55 -08:00
Ricardo Constantino 8c3b475812
obs-ffmpeg: Fix assumption about plane height with i444
Affected both FFmpeg and nvenc encoders.
Fixes issue 667.
2016-11-09 16:04:12 +00:00
jp9000 a7ef10f7ea obs-ffmpeg: Add b-frames to NVENC logging 2016-10-20 06:51:21 -07:00
Richard Stanway a8020b37be obs-ffmpeg: Fix possible NVENC crash
If the codec hasn't even been fully initialized, calling these functions
in the shutdown code could cause a crash.
2016-09-28 15:24:04 -07:00
jp9000 1e0d5e7b3e obs-ffmpeg: Add b-frame support to NVENC (default: 2)
It was unintentionally using intra-only before, impacting quality.
2016-09-26 14:46:56 -07:00
derrod 3b3933b42f obs-ffmpeg: Fix (put back in) "profile" NVENC setting
The profile setting may have been unintentionally removed in 0157d02564.

Closes jp9000/obs-studio#616
2016-09-16 19:55:18 -07:00
jp9000 c5c1e34d09 obs-ffmpeg: Free remaining NVENC frames on exit
This clears out remaining NVENC frames to ensure that the encoder has
finished processing before shutting down.
2016-09-13 09:17:07 -07:00
jp9000 757c1942dc obs-ffmpeg: Fix NVENC lossless mode
Lossless mode is set through the preset setting, and the profile ffmpeg
setting was incorrectly being set as lossless instead.
2016-05-16 04:18:29 -07:00
jp9000 978e607522 obs-ffmpeg: Change NVENC to use rate control
Instead of using an option that turns CBR on/off, adds rate control
methods: VBR, CBR, CQP, Lossless.

This moves lossless from being a preset to being a rate control method.
2016-05-11 13:12:30 -07:00
jp9000 0157d02564 obs-ffmpeg: Add lossless mode to NVENC encoder 2016-05-05 15:24:32 -07:00
jp9000 ff38176c60 obs-ffmpeg: Increase upper NVENC bitrate limit
The bitrate for the properties was capped at 90000, which is a bit low.
2016-05-04 20:31:12 -07:00
jp9000 7c3d858110 obs-ffmpeg: Remove unused variable 2016-04-24 13:01:14 -07:00
jp9000 86a41f844f obs-ffmpeg: Remove unused variable 2016-04-19 18:21:15 -07:00
jp9000 98cc538776 obs-ffmpeg: Remove 'tier' from FFmpeg NVENC encoder
The 'tier' parameter is used with the NVENC HEVC encoder, not with the
AVC encoder.
2016-04-19 14:45:46 -07:00
jp9000 43eba49a50 obs-ffmpeg: Fix warning and remove unnecessary null checks
The if statement erroneously ended with a ';', which means that the code
is always executed, but there's no reason to even have these if checks
in the first place as the functions themselves return safely with null
pointers.
2016-04-19 10:29:34 -07:00
jp9000 8e1943065c obs-ffmpeg: Add FFmpeg NVENC encoder 2016-04-19 09:20:26 -07:00