diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c b/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c index 03a8db52a..171935e7a 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c @@ -91,11 +91,24 @@ static bool nvenc_init_codec(struct nvenc_encoder *enc) ret = avcodec_open2(enc->context, enc->nvenc, NULL); if (ret < 0) { struct dstr error_message = {0}; - dstr_printf( - &error_message, - "Failed to open NVENC codec: %s" - "\r\n\r\nPlease check your video drivers are up to date.", - av_err2str(ret)); + + // special case for common NVENC error + if (ret == AVERROR_EXTERNAL) { + dstr_printf(&error_message, + "Failed to open NVENC codec: %s\r\n\r\n" + "Check your video drivers are up to " + "date. Disable other software that may " + "be using NVENC such as NVIDIA " + "ShadowPlay or Windows 10 Game " + "DVR.", + av_err2str(ret)); + } else { + dstr_printf( + &error_message, + "Failed to open NVENC codec: %s\r\n\r\n" + "Please check your video drivers are up to date.", + av_err2str(ret)); + } obs_encoder_set_last_error(enc->encoder, error_message.array); dstr_free(&error_message); warn("Failed to open NVENC codec: %s", av_err2str(ret));