298 Commits

Author SHA1 Message Date
Gol-D-Ace
f27a00d266 Revert "obs-ffmpeg: Add option to use b-frames as reference"
This reverts commit adf3337d3cdd1fe91cc5c763ff5ea292b4d6787e.
Currently causing timestamp issues resulting in FPS issues.
2019-03-14 10:05:55 +01:00
Colin Edwards
e001e2d1b9
Merge pull request #1733 from VodBox/media-source-wording
obs-ffmpeg: Change clear on media end wording for media source
2019-03-14 00:17:42 -05:00
jasonlee
6039cbb938 obs-ffmpeg: Use correct calling convention on CreateDXGIFactory1
Closes #1740
2019-03-13 20:11:43 -05:00
Colin Edwards
01b6672de5
Merge pull request #1671 from derrod/nvenc-bframeasreferenceoption
obs-ffmpeg: Add option to use b-frames as reference
2019-03-13 19:10:59 -05:00
VodBox
ce4bda45df obs-ffmpeg: Change clear on media end wording for media source
As per mantis issue 1403, the current wording for ClearOnMediaEnd is
ambiguous. Since it says "Hide source", some may believe it to mean the
scene item in the sources list will have it's visibility set to hidden.
This wording makes it clearer what the checkbox actually does.
2019-03-11 12:16:54 +13:00
Richard Stanway
d8812e0808 obs-ffmpeg: Check avformat context before use 2019-03-05 21:58:09 +01:00
Richard Stanway
460c34aeaf obs-ffmpeg: Fix crash on failed audio codec init (for real) 2019-03-05 21:54:12 +01:00
Richard Stanway
b73bffff48 obs-ffmpeg: Fix crash on failed audio codec init 2019-03-05 21:48:58 +01:00
jp9000
a2201d5898 obs-ffmpeg: Always output SEI 2019-03-03 07:07:34 -08:00
jp9000
b8c78a340d obs-ffmpeg: Fix SEI data output
SEI was using the wrong variable for its size.
2019-03-03 07:07:34 -08:00
jp9000
748067c930 obs-ffmpeg: Fix NVENC blacklisted card check
Apparently, the parameters were the wrong way, making the test always
fail to detect a blacklisted adapter.
2019-02-28 06:34:13 -08:00
jp9000
dccf686150 obs-ffmpeg: Fix bitrate being set on NVENC CQP/lossless 2019-02-26 07:43:38 -08:00
jp9000
a87afeb69b obs-ffmpeg: Add more blacklisted NVENC adapters 2019-02-25 08:05:38 -08:00
Gol-D-Ace
98f78fe3a7 Update translations from Crowdin 2019-02-25 15:11:33 +01:00
Gol-D-Ace
ec42739ad5 Update translations from Crowdin 2019-02-24 23:26:47 +01:00
jp9000
ef270c8ba0 obs-ffmpeg: Free NVENC textures after sending EOS
Prevents a crash when using the new lookahead feature, presumably
because those textures are in use when the EOS is sent.
2019-02-21 03:12:12 -08:00
Gol-D-Ace
c3711bdd5e Update translations from Crowdin 2019-02-20 22:26:07 +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
derrod
18c59c3e54 obs-ffmpeg: Fix constant QP mode in new NVENC 2019-02-17 02:43:31 +01:00
Richard Stanway
9cd892cf9e obs-ffmpeg: Update advice for CFA
Turns out you need to add the ffmpeg mux processes too which is a bit
unreasonable to expect a user to do, so just recommend disabling it
outright.
2019-02-15 09:38:19 +01:00
jp9000
4c3f992b44 obs-ffmpeg: Add more blacklisted non-NVENC adapters 2019-02-14 23:12:55 -08: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
Jim
25bc6db718
Merge pull request #1658 from cristisilaghi/master2
obs-ffmpeg: Fix crash when audio not configured
2019-02-11 13:04:23 -08:00
Cristian Silaghi
4c293b9755 obs-ffmpeg: Fix crash when audio not configured 2019-02-11 22:17:41 +02:00
jp9000
0d4693e015 obs-ffmpeg: Add a few line breaks for new tooltips 2019-02-10 15:43:08 -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
a249d26eaa obs-ffmpeg: Do not allow new NVENC on gpu idx > 0
Because the new NVENC implementation requires texture sharing, if the
user chooses to use a secondary GPU, fall back to the old implementation
instead.
2019-02-07 22:47:50 -08:00
jp9000
ed0c7bcd6a obs-ffmpeg: Add texture-based NVENC encoder implementation
Adds a texture-based NVENC implementation which passes OBS NV12 output
textures directly to NVENC without downloading them off of the GPU,
increasing NVENC performance by a significant margin.

If NV12 textures are unavailable or the new encoder fails to initialize
for whatever reason, it will fall back to the FFmpeg NVENC
implementation safely.
2019-02-07 17:00:47 -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
c3f3aa7f25 obs-ffmpeg: Update nvEncodeAPI.h to latest version 2019-02-07 17:00:47 -08:00
jp9000
0be02564cb obs-ffmpeg: Implement NVENC video card blacklist
This implements a blacklist of devices that ship with NVENC libraries,
but do not support NVENC, which would cause the plugin to mistakenly
think that NVENC was available when it was not.  If these devices are
the only NVIDIA devices on the system, consider NVENC unavailable.

This is much more efficient than spawning an encoder on startup to see
if NVENC is available, which would incur a ~500 millisecond hit on
startup.  Additionally, also much less crash-prone.
2019-02-07 17:00:46 -08:00
Richard Stanway
bf16ec5f2d obs-ffmpeg: Show additional details in failed to write error
A bit of a hack, but this is one of the more common errors that users
are encountering, so showing useful information will help cut down on
the number of support issues.
2019-01-27 20:16:40 +01:00
pkviet
340fb9d669 obs-ffmpeg: Enable multiple audio tracks for FFmpeg output
This allows multiple audio tracks for the FFmpeg output.

Closes obsproject/obs-studio#1351
2018-10-04 20:32:35 -07:00
Thomas Crider
a64ae11bce obs-ffmpeg: Add linux VAAPI h.264 encoding support
Closes obsproject/obs-studio#1482
Closes obsproject/obs-studio#1256
2018-09-24 23:12:24 -07:00
Jim
af320a0838
Merge pull request #1480 from kkartaltepe/module-descriptions
Plugins: Add descriptions to modules
2018-09-16 15:34:28 -07:00
Kurt Kartaltepe
d86c8121ed Plugins: Add descriptions to modules 2018-09-11 18:28:58 -07:00
Gol-D-Ace
a79aaa28ab Update translations from Crowdin 2018-08-18 04:16:35 +02:00
Ryan Foster
1f592d12aa obs-ffmpeg: Set average framerate in video stream
This commit fixes an issue where videos created with OBS will appear as
having 1000 FPS in some media players.
2018-05-27 00:45:05 -04:00
comex
c54cc0bf5b obs-ffmpeg: fill in more fields on audio frames
After you call av_frame_alloc(), ffmpeg expects you to fill in certain
fields on the frame, depending on whether it's an audio or video frame.
obs-ffmpeg did this in the two places where it allocates video frames,
but not where it allocates audio frames.  On my system, using trunk
ffmpeg and the Opus codec, this causes OBS to crash while calling
avcodec_send_frame, ultimately because av_frame_copy fails due to
'dst->format < 0' (as 'format' stays at the default of -1), causing a
null pointer to be added to a buffer queue, which later gets
dereferenced.

Oddly, the fields in question can just be copied directly from
corresponding fields in the AVCodecContext, but I don't see any ffmpeg
API to automatically copy all relevant fields, and all the examples I've
seen do it by hand.  So this patch does the same.
2018-04-18 13:13:48 -07:00
Gol-D-Ace
88282c168c Update translations from Crowdin 2018-03-15 09:00:28 +01:00
Gol-D-Ace
7337b7ffb8 obs-ffmpeg: Fix locale typo 2018-03-01 22:44:43 +01:00
jp9000
aa58b9cf5f obs-ffmpeg: Use FFmpeg's "fast" AAC encoder by default
FFmpeg has recently made their "fast" AAC encoder the default, which
uses less CPU and sounds better at common bitrates.
2018-02-26 00:11:30 -08:00
jp9000
a89470d2ea obs-ffmpeg: Remove cutoff hack for AAC encoder
The cutoff hack was added many, many years ago as recommended by
Konverter.  Since then, there has been much work on the AAC encoder, so
this hack should no longer be necessary.
2018-02-25 23:50:09 -08:00
Exeldro
277b664001 obs-ffmpeg: Add speed percentage option
(Note: This commit also modifies the deps/media-playback module.)

Allows modifying the speed of local file playback.

Closes jp9000/obs-studio#1091
2018-02-15 15:18:13 -08:00
jp9000
dc0363d3e8 deps/media-playback: Use a struct for media init data
Instead of using countless parameters for the media initialization data,
use a structure.
2018-02-15 13:32:35 -08:00