lulzsun / RePlays

Open-source game recording management software
GNU General Public License v3.0
150 stars 17 forks source link

[v1.2.23] Stops recording fullscreen application when alt-tabbing #124

Closed kisunji closed 1 year ago

kisunji commented 1 year ago

I had Use Display Capture As Backup turned off but tested that it occurs with it on as well. I did not have such issues in v1.2.1 stable so this might be a regression. Otherwise all settings are default values.

I am trying to record exclusive fullscreen Valorant. On startup I hear the recording sound effect, but I noticed that when I alt-tab out the recording immediately stops. A session clip is created.

Alt-tabbing back to Valorant does not restart the recording.

lulzsun commented 1 year ago

This has been reported issue before and also specifically for Valorant, but are you able to confirm whether or not this occurs for other games?

Please feel free to upload the logs here as they may assist in debugging this issue. You can retrieve the logs from Settings > Help.

lulzsun commented 1 year ago

I've pushed some potential fixes towards this issue, but I am unsure if it will actually solve this particular situation. This issue has been troublesome lately because I have been unable to replicate this and other issues related to recording stopping early #122 (the dreaded, "but it works on my machine!...").

Please continue to attach the logs if the issues are still not resolved so that I can better debug the issue.

kisunji commented 1 year ago

Here are some logs from me testing v1.2.23 with Path of Exile (keeps recording when I alt-tab) then Valorant (stops recording when I alt-tab) with the following steps

  1. Open game
  2. Wait for recording signal
  3. Alt tab out of game
  4. Confirm Replays is recording
  5. Alt tab into game
  6. Exit game
Details ``` [6/24/2023 9:34:18 AM][DetectionService.cs(277)]: Starting capture for application: [15884][POEWindowClass][D:\SteamLibrary\steamapps\common\Path of Exile\PathOfExileSteam.exe] [6/24/2023 9:34:18 AM][RecordingService.cs(59)]: Is PreRecording False [6/24/2023 9:34:18 AM][RecordingService.cs(60)]: Is Recording False [6/24/2023 9:34:18 AM][LibObsRecorder.cs(180)]: Waiting to retrieve correct window size (currently 120x0)... retry attempt #0 [6/24/2023 9:34:18 AM][DetectionService.cs(81)]: WindowCreation: [15884][158142850][D:\SteamLibrary\steamapps\common\Path of Exile\PathOfExileSteam.exe] [6/24/2023 9:34:20 AM][LibObsRecorder.cs(191)]: Game capture window size: 3440x1440 [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: warning: Number of remaining views: 1 [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: info: --------------------------------- [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: info: video settings reset: base resolution: 3440x1440 output resolution: 2580x1080 downscale filter: Bilinear fps: 60/1 format: NV12 YUV mode: Rec. 709/Partial [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: info: NV12 texture support enabled [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: info: P010 texture support not available [6/24/2023 9:34:20 AM][LibObsRecorder.cs(195)]: Preparing to create libobs output [3831]... [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: debug: encoder 'combined' (ffmpeg_aac) created [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: info: [win-wasapi: '(output) Default Device'] update settings: device id: default use device timing: 1 [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: debug: source '(output) Default Device' (wasapi_output_capture) created [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: debug: encoder '(output) Default Device' (ffmpeg_aac) created [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: info: [win-wasapi: '(input) Microphone (High Definition Audio Device)'] update settings: device id: {0.0.1.00000000}.{3826866e-fd39-4bcd-bb4b-3d11c52bb532} use device timing: 0 [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: debug: source '(input) Microphone (High Definition Audio Device)' (wasapi_input_capture) created [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: debug: encoder '(input) Microphone (High Definition Audio Device)' (ffmpeg_aac) created [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: debug: source 'gameplay' (game_capture) created [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: debug: encoder 'Replays Recorder' (jim_nvenc) created [6/24/2023 9:34:20 AM][LibObsRecorder.cs(258)]: Waiting for successful graphics hook for [Path of Exile:POEWindowClass:PathOfExileSteam.exe]... retry attempt #1 [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] attempting to hook fullscreen process: PathOfExileSteam.exe [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] existing hook found, signaling process: PathOfExileSteam.exe [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] map id: [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: info: WASAPI: Device 'Microphone (High Definition Audio Device)' [44100 Hz] initialized [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: info: WASAPI: Device 'Monitor (2- NVIDIA High Definition Audio)' [48000 Hz] initialized [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] vk_shtex_init_d3d11_tex: OBS requesting VK_FORMAT_B8G8R8A8_SRGB texture format. capture dimensions: 3440x1440 [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] vulkan shared texture capture successful [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] capture initializing! [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] map id: [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] Starting capture [6/24/2023 9:34:20 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] shared texture capture successful [6/24/2023 9:34:22 AM][LibObsRecorder.cs(70)]: debug: output 'simple_ffmpeg_output' (ffmpeg_muxer) created [6/24/2023 9:34:22 AM][LibObsRecorder.cs(343)]: LibObs output is starting [4583]... [6/24/2023 9:34:22 AM][LibObsRecorder.cs(70)]: info: [jim-nvenc: 'Replays Recorder'] settings: codec: H264 rate_control: VBR bitrate: 50000 cqp: 20 keyint: 250 preset: p5 tuning: hq multipass: qres profile: high width: 2580 height: 1080 b-frames: 2 lookahead: false psycho_aq: true [6/24/2023 9:34:22 AM][LibObsRecorder.cs(70)]: info: --------------------------------- [6/24/2023 9:34:22 AM][LibObsRecorder.cs(70)]: info: [FFmpeg aac encoder: 'combined'] bitrate: 128, channels: 2, channel_layout: stereo [6/24/2023 9:34:22 AM][LibObsRecorder.cs(70)]: info: --------------------------------- [6/24/2023 9:34:22 AM][LibObsRecorder.cs(70)]: info: [FFmpeg aac encoder: '(output) Default Device'] bitrate: 128, channels: 2, channel_layout: stereo [6/24/2023 9:34:22 AM][LibObsRecorder.cs(70)]: info: --------------------------------- [6/24/2023 9:34:22 AM][LibObsRecorder.cs(70)]: info: [FFmpeg aac encoder: '(input) Microphone (High Definition Audio Device)'] bitrate: 128, channels: 2, channel_layout: stereo [6/24/2023 9:34:22 AM][LibObsRecorder.cs(70)]: info: [ffmpeg muxer: 'simple_ffmpeg_output'] Writing file 'C:/Users/Chris/Videos/Plays/Path of Exile/2023_06_24_09_34_18-ses.mp4'... [6/24/2023 9:34:22 AM][LibObsRecorder.cs(353)]: LibObs started recording [15884] [Path of Exile] [Path of Exile:POEWindowClass:PathOfExileSteam.exe] [6/24/2023 9:34:22 AM][RecordingService.cs(66)]: Start Success: True [6/24/2023 9:34:22 AM][RecordingService.cs(67)]: Still allowed to record: True [6/24/2023 9:34:22 AM][RecordingService.cs(69)]: Current Session PID: 15884 [6/24/2023 9:34:22 AM][RecordingService.cs(75)]: Start Recording: 15884, Path of Exile [6/24/2023 9:34:23 AM][DetectionService.cs(277)]: Starting capture for application: [15884][POEWindowClass][D:\SteamLibrary\steamapps\common\Path of Exile\PathOfExileSteam.exe] [6/24/2023 9:34:23 AM][RecordingService.cs(59)]: Is PreRecording True [6/24/2023 9:34:23 AM][RecordingService.cs(60)]: Is Recording False [6/24/2023 9:34:23 AM][DetectionService.cs(81)]: WindowCreation: [15884][158142850][D:\SteamLibrary\steamapps\common\Path of Exile\PathOfExileSteam.exe] [6/24/2023 9:34:23 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] ------------------ vulkan capture freed ------------------ [6/24/2023 9:34:24 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] Hooked SwapBuffers [6/24/2023 9:34:24 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] Hooked wglDeleteContext [6/24/2023 9:34:24 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] Hooked wglSwapLayerBuffers [6/24/2023 9:34:24 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] Hooked wglSwapBuffers [6/24/2023 9:34:24 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] Hooked GL [6/24/2023 9:34:29 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] vk_shtex_init_d3d11_tex: OBS requesting VK_FORMAT_B8G8R8A8_SRGB texture format. capture dimensions: 3440x1440 [6/24/2023 9:34:29 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] vulkan shared texture capture successful [6/24/2023 9:34:29 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] capture initializing! [6/24/2023 9:34:29 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] map id: [6/24/2023 9:34:29 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] Starting capture [6/24/2023 9:34:29 AM][LibObsRecorder.cs(85)]: Fullscreen game coming into focus? Ignoring attempt to restart recording. [6/24/2023 9:34:29 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] shared texture capture successful [6/24/2023 9:34:31 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] capture window no longer exists, terminating capture [6/24/2023 9:34:31 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] capture stopped [6/24/2023 9:34:31 AM][DetectionService.cs(134)]: Failed to get process id, how is this even possible? [6/24/2023 9:34:31 AM][DetectionService.cs(91)]: WindowDeletion: [0][158142850][] [6/24/2023 9:34:31 AM][LibObsRecorder.cs(466)]: Waiting for obs_output to stop... retry attempt #0 [6/24/2023 9:34:32 AM][LibObsRecorder.cs(70)]: info: [ffmpeg muxer: 'simple_ffmpeg_output'] Output of file 'C:/Users/Chris/Videos/Plays/Path of Exile/2023_06_24_09_34_18-ses.mp4' stopped [6/24/2023 9:34:32 AM][LibObsRecorder.cs(70)]: info: Output 'simple_ffmpeg_output': stopping [6/24/2023 9:34:32 AM][LibObsRecorder.cs(70)]: info: Output 'simple_ffmpeg_output': Total frames output: 574 [6/24/2023 9:34:32 AM][LibObsRecorder.cs(70)]: info: Output 'simple_ffmpeg_output': Total drawn frames: 588 (589 attempted) [6/24/2023 9:34:32 AM][LibObsRecorder.cs(70)]: info: Output 'simple_ffmpeg_output': Number of lagged frames due to rendering lag/stalls: 1 (0.2%) [6/24/2023 9:34:32 AM][LibObsRecorder.cs(70)]: info: Video stopped, number of skipped frames due to encoding lag: 1/587 (0.2%) [6/24/2023 9:34:33 AM][LibObsRecorder.cs(70)]: debug: output 'simple_ffmpeg_output' destroyed [6/24/2023 9:34:33 AM][LibObsRecorder.cs(70)]: debug: encoder 'Replays Recorder' destroyed [6/24/2023 9:34:33 AM][LibObsRecorder.cs(70)]: debug: encoder 'combined' destroyed [6/24/2023 9:34:33 AM][LibObsRecorder.cs(70)]: debug: encoder '(output) Default Device' destroyed [6/24/2023 9:34:33 AM][LibObsRecorder.cs(70)]: debug: encoder '(input) Microphone (High Definition Audio Device)' destroyed [6/24/2023 9:34:33 AM][LibObsRecorder.cs(480)]: Session recording saved to C:/Users/Chris/Videos/Plays/Path of Exile/2023_06_24_09_34_18-ses.mp4 [6/24/2023 9:34:33 AM][LibObsRecorder.cs(481)]: LibObs stopped recording 15884 Path of Exile [4468] [6/24/2023 9:34:33 AM][LibObsRecorder.cs(70)]: debug: source 'gameplay' destroyed [6/24/2023 9:34:33 AM][LibObsRecorder.cs(70)]: info: WASAPI: Device 'Monitor (2- NVIDIA High Definition Audio)' Terminated [6/24/2023 9:34:33 AM][LibObsRecorder.cs(70)]: debug: source '(output) Default Device' destroyed [6/24/2023 9:34:33 AM][LibObsRecorder.cs(70)]: info: WASAPI: Device 'Microphone (High Definition Audio Device)' Terminated [6/24/2023 9:34:33 AM][LibObsRecorder.cs(70)]: debug: source '(input) Microphone (High Definition Audio Device)' destroyed [6/24/2023 9:34:34 AM][Helpers.cs(231)]: Found '20' video files in C:/Users/Chris/Videos/Plays [6/24/2023 9:34:34 AM][Helpers.cs(347)]: Created new thumbnail: C:\Users\Chris\Videos\Plays\Path of Exile\.thumbs\2023_06_24_09_34_18-ses.webp [6/24/2023 9:34:34 AM][Helpers.cs(268)]: Parsed '20' video files. Sessions: 17, Clips: 3. [6/24/2023 9:34:34 AM][BookmarkService.cs(33)]: Applying 0 bookmarks [6/24/2023 9:34:34 AM][RecordingService.cs(108)]: Stop Recording: 15884, Path of Exile [6/24/2023 9:34:34 AM][StorageService.cs(16)]: VideoSaveDir 'C:/Users/Chris/Videos/Plays' size is 4.14530448615551 gbs [6/24/2023 9:34:34 AM][StorageService.cs(19)]: Automatically managing space if exceeds 90% of folder's disk. Currently at 58.83518637841798% [6/24/2023 9:34:49 AM][DetectionService.cs(277)]: Starting capture for application: [28896][UnrealWindow][C:\Riot Games\VALORANT\live\ShooterGame\Binaries\Win64\VALORANT-Win64-Shipping.exe] [6/24/2023 9:34:49 AM][RecordingService.cs(59)]: Is PreRecording False [6/24/2023 9:34:49 AM][RecordingService.cs(60)]: Is Recording False [6/24/2023 9:34:49 AM][LibObsRecorder.cs(191)]: Game capture window size: 3440x1440 [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: warning: Number of remaining views: 1 [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: info: --------------------------------- [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: info: video settings reset: base resolution: 3440x1440 output resolution: 2580x1080 downscale filter: Bilinear fps: 60/1 format: NV12 YUV mode: Rec. 709/Partial [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: info: NV12 texture support enabled [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: info: P010 texture support not available [6/24/2023 9:34:49 AM][LibObsRecorder.cs(195)]: Preparing to create libobs output [3836]... [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: debug: encoder 'combined' (ffmpeg_aac) created [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: info: [win-wasapi: '(output) Default Device'] update settings: device id: default use device timing: 1 [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: debug: source '(output) Default Device' (wasapi_output_capture) created [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: debug: encoder '(output) Default Device' (ffmpeg_aac) created [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: info: [win-wasapi: '(input) Microphone (High Definition Audio Device)'] update settings: device id: {0.0.1.00000000}.{3826866e-fd39-4bcd-bb4b-3d11c52bb532} use device timing: 0 [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: debug: source '(input) Microphone (High Definition Audio Device)' (wasapi_input_capture) created [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: debug: encoder '(input) Microphone (High Definition Audio Device)' (ffmpeg_aac) created [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: debug: source 'gameplay' (game_capture) created [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: debug: encoder 'Replays Recorder' (jim_nvenc) created [6/24/2023 9:34:49 AM][LibObsRecorder.cs(258)]: Waiting for successful graphics hook for [VALORANT :UnrealWindow:VALORANT-Win64-Shipping.exe]... retry attempt #0 [6/24/2023 9:34:49 AM][DetectionService.cs(81)]: WindowCreation: [28896][1343951184][C:\Riot Games\VALORANT\live\ShooterGame\Binaries\Win64\VALORANT-Win64-Shipping.exe] [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] attempting to hook fullscreen process: VALORANT-Win64-Shipping.exe [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: info: WASAPI: Device 'Microphone (High Definition Audio Device)' [44100 Hz] initialized [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] using helper (compatibility hook) [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: info: WASAPI: Device 'Monitor (2- NVIDIA High Definition Audio)' [48000 Hz] initialized [6/24/2023 9:34:49 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] hook not loaded yet, retrying.. [6/24/2023 9:34:51 AM][LibObsRecorder.cs(258)]: Waiting for successful graphics hook for [VALORANT :UnrealWindow:VALORANT-Win64-Shipping.exe]... retry attempt #1 [6/24/2023 9:34:51 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] attempting to hook fullscreen process: VALORANT-Win64-Shipping.exe [6/24/2023 9:34:51 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] existing hook found, signaling process: VALORANT-Win64-Shipping.exe [6/24/2023 9:34:51 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] map id: [6/24/2023 9:34:53 AM][LibObsRecorder.cs(258)]: Waiting for successful graphics hook for [VALORANT :UnrealWindow:VALORANT-Win64-Shipping.exe]... retry attempt #2 [6/24/2023 9:34:53 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] capture stopped [6/24/2023 9:34:55 AM][LibObsRecorder.cs(258)]: Waiting for successful graphics hook for [VALORANT :UnrealWindow:VALORANT-Win64-Shipping.exe]... retry attempt #3 [6/24/2023 9:34:55 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] attempting to hook fullscreen process: VALORANT-Win64-Shipping.exe [6/24/2023 9:34:55 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] existing hook found, signaling process: VALORANT-Win64-Shipping.exe [6/24/2023 9:34:55 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] map id: [6/24/2023 9:34:55 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] DXGI_SWAP_CHAIN_DESC: BufferDesc.Width: 3440 BufferDesc.Height: 1440 BufferDesc.RefreshRate.Numerator: 0 BufferDesc.RefreshRate.Denominator: 0 BufferDesc.Format: 24 BufferDesc.ScanlineOrdering: 0 BufferDesc.Scaling: 0 SampleDesc.Count: 1 SampleDesc.Quality: 0 BufferUsage: 48 BufferCount: 2 Windowed: 0 SwapEffect: 4 Flags: 2050 [6/24/2023 9:34:55 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] d3d11 shared texture capture successful [6/24/2023 9:34:55 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] ----------------- d3d11 capture freed ---------------- [6/24/2023 9:34:55 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] DXGI_SWAP_CHAIN_DESC: BufferDesc.Width: 3440 BufferDesc.Height: 1440 BufferDesc.RefreshRate.Numerator: 0 BufferDesc.RefreshRate.Denominator: 0 BufferDesc.Format: 24 BufferDesc.ScanlineOrdering: 0 BufferDesc.Scaling: 0 SampleDesc.Count: 1 SampleDesc.Quality: 0 BufferUsage: 48 BufferCount: 2 Windowed: 0 SwapEffect: 4 Flags: 2050 [6/24/2023 9:34:55 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] d3d11 shared texture capture successful [6/24/2023 9:34:55 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] capture initializing! [6/24/2023 9:34:55 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] map id: [6/24/2023 9:34:55 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] Starting capture [6/24/2023 9:34:55 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] shared texture capture successful [6/24/2023 9:34:55 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] Hooked SwapBuffers [6/24/2023 9:34:55 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] Hooked wglDeleteContext [6/24/2023 9:34:55 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] Hooked wglSwapLayerBuffers [6/24/2023 9:34:55 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] Hooked wglSwapBuffers [6/24/2023 9:34:55 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] Hooked GL [6/24/2023 9:34:57 AM][LibObsRecorder.cs(70)]: debug: output 'simple_ffmpeg_output' (ffmpeg_muxer) created [6/24/2023 9:34:57 AM][LibObsRecorder.cs(343)]: LibObs output is starting [4590]... [6/24/2023 9:34:57 AM][LibObsRecorder.cs(70)]: info: [jim-nvenc: 'Replays Recorder'] settings: codec: H264 rate_control: VBR bitrate: 50000 cqp: 20 keyint: 250 preset: p5 tuning: hq multipass: qres profile: high width: 2580 height: 1080 b-frames: 2 lookahead: false psycho_aq: true [6/24/2023 9:34:57 AM][LibObsRecorder.cs(70)]: info: --------------------------------- [6/24/2023 9:34:57 AM][LibObsRecorder.cs(70)]: info: [FFmpeg aac encoder: 'combined'] bitrate: 128, channels: 2, channel_layout: stereo [6/24/2023 9:34:57 AM][LibObsRecorder.cs(70)]: info: --------------------------------- [6/24/2023 9:34:57 AM][LibObsRecorder.cs(70)]: info: [FFmpeg aac encoder: '(output) Default Device'] bitrate: 128, channels: 2, channel_layout: stereo [6/24/2023 9:34:57 AM][LibObsRecorder.cs(70)]: info: --------------------------------- [6/24/2023 9:34:57 AM][LibObsRecorder.cs(70)]: info: [FFmpeg aac encoder: '(input) Microphone (High Definition Audio Device)'] bitrate: 128, channels: 2, channel_layout: stereo [6/24/2023 9:34:57 AM][LibObsRecorder.cs(70)]: info: [ffmpeg muxer: 'simple_ffmpeg_output'] Writing file 'C:/Users/Chris/Videos/Plays/VALORANT/2023_06_24_09_34_49-ses.mp4'... [6/24/2023 9:34:57 AM][LibObsRecorder.cs(353)]: LibObs started recording [28896] [VALORANT] [VALORANT :UnrealWindow:VALORANT-Win64-Shipping.exe] [6/24/2023 9:34:57 AM][RecordingService.cs(66)]: Start Success: True [6/24/2023 9:34:57 AM][RecordingService.cs(67)]: Still allowed to record: True [6/24/2023 9:34:57 AM][RecordingService.cs(69)]: Current Session PID: 28896 [6/24/2023 9:34:57 AM][RecordingService.cs(75)]: Start Recording: 28896, VALORANT [6/24/2023 9:35:07 AM][DetectionService.cs(91)]: WindowDeletion: [28896][58135038][C:\Riot Games\VALORANT\live\ShooterGame\Binaries\Win64\VALORANT-Win64-Shipping.exe] [6/24/2023 9:35:07 AM][LibObsRecorder.cs(466)]: Waiting for obs_output to stop... retry attempt #0 [6/24/2023 9:35:08 AM][LibObsRecorder.cs(70)]: info: [ffmpeg muxer: 'simple_ffmpeg_output'] Output of file 'C:/Users/Chris/Videos/Plays/VALORANT/2023_06_24_09_34_49-ses.mp4' stopped [6/24/2023 9:35:08 AM][LibObsRecorder.cs(70)]: info: Output 'simple_ffmpeg_output': stopping [6/24/2023 9:35:08 AM][LibObsRecorder.cs(70)]: info: Output 'simple_ffmpeg_output': Total frames output: 613 [6/24/2023 9:35:08 AM][LibObsRecorder.cs(70)]: info: Output 'simple_ffmpeg_output': Total drawn frames: 626 [6/24/2023 9:35:09 AM][LibObsRecorder.cs(70)]: debug: output 'simple_ffmpeg_output' destroyed [6/24/2023 9:35:09 AM][LibObsRecorder.cs(70)]: debug: encoder 'Replays Recorder' destroyed [6/24/2023 9:35:09 AM][LibObsRecorder.cs(70)]: debug: encoder 'combined' destroyed [6/24/2023 9:35:09 AM][LibObsRecorder.cs(70)]: debug: encoder '(output) Default Device' destroyed [6/24/2023 9:35:09 AM][LibObsRecorder.cs(70)]: debug: encoder '(input) Microphone (High Definition Audio Device)' destroyed [6/24/2023 9:35:09 AM][LibObsRecorder.cs(480)]: Session recording saved to C:/Users/Chris/Videos/Plays/VALORANT/2023_06_24_09_34_49-ses.mp4 [6/24/2023 9:35:09 AM][LibObsRecorder.cs(481)]: LibObs stopped recording 28896 VALORANT [4476] [6/24/2023 9:35:09 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] capture stopped [6/24/2023 9:35:09 AM][LibObsRecorder.cs(70)]: debug: source 'gameplay' destroyed [6/24/2023 9:35:09 AM][LibObsRecorder.cs(70)]: info: WASAPI: Device 'Monitor (2- NVIDIA High Definition Audio)' Terminated [6/24/2023 9:35:09 AM][LibObsRecorder.cs(70)]: debug: source '(output) Default Device' destroyed [6/24/2023 9:35:09 AM][LibObsRecorder.cs(70)]: info: WASAPI: Device 'Microphone (High Definition Audio Device)' Terminated [6/24/2023 9:35:09 AM][LibObsRecorder.cs(70)]: debug: source '(input) Microphone (High Definition Audio Device)' destroyed [6/24/2023 9:35:09 AM][Helpers.cs(231)]: Found '21' video files in C:/Users/Chris/Videos/Plays [6/24/2023 9:35:10 AM][Helpers.cs(347)]: Created new thumbnail: C:\Users\Chris\Videos\Plays\VALORANT\.thumbs\2023_06_24_09_34_49-ses.webp [6/24/2023 9:35:10 AM][Helpers.cs(268)]: Parsed '21' video files. Sessions: 18, Clips: 3. [6/24/2023 9:35:10 AM][BookmarkService.cs(33)]: Applying 0 bookmarks [6/24/2023 9:35:10 AM][RecordingService.cs(108)]: Stop Recording: 28896, VALORANT [6/24/2023 9:35:10 AM][StorageService.cs(16)]: VideoSaveDir 'C:/Users/Chris/Videos/Plays' size is 4.148694157600403 gbs [6/24/2023 9:35:10 AM][StorageService.cs(19)]: Automatically managing space if exceeds 90% of folder's disk. Currently at 59.160805214080504% ```
kisunji commented 1 year ago

Here's v1.2.1 logs for Valorant:

Details ``` [6/24/2023 9:52:44 AM][DetectionService.cs(228)]: Failed to get process: [17080] full path. Error: [Access is denied. [6/24/2023 9:52:49 AM][DetectionService.cs(300)]: Process [16808][VALORANT-Win64-Shipping.exe]: Got no MainWindow. Retrying... 0/40 [6/24/2023 9:52:49 AM][DetectionService.cs(273)]: Process [6688][VALORANT.exe] isn't in the game detection list, checking if it might be a game [6/24/2023 9:52:50 AM][DetectionService.cs(287)]: Failed to evaluate gpu usage for [VALORANT.exe] isGame: False, reason: Invalid query [6/24/2023 9:52:50 AM][DetectionService.cs(228)]: Failed to get process: [9416] full path. Error: [Access is denied. [6/24/2023 9:52:50 AM][DetectionService.cs(300)]: Process [16808][VALORANT-Win64-Shipping.exe]: Got no MainWindow. Retrying... 1/40 [6/24/2023 9:52:51 AM][DetectionService.cs(300)]: Process [16808][VALORANT-Win64-Shipping.exe]: Got no MainWindow. Retrying... 2/40 [6/24/2023 9:52:52 AM][DetectionService.cs(300)]: Process [16808][VALORANT-Win64-Shipping.exe]: Got no MainWindow. Retrying... 3/40 [6/24/2023 9:52:53 AM][DetectionService.cs(300)]: Process [16808][VALORANT-Win64-Shipping.exe]: Got no MainWindow. Retrying... 4/40 [6/24/2023 9:52:54 AM][DetectionService.cs(305)]: Process [16808][VALORANT-Win64-Shipping.exe]: Got MainWindow [VALORANT ] [6/24/2023 9:52:54 AM][DetectionService.cs(314)]: This process [16808] is a recordable game [VALORANT-Win64-Shipping.exe], prepared to record [6/24/2023 9:52:54 AM][DetectionService.cs(318)]: Is allowed to record: True [6/24/2023 9:52:54 AM][RecordingService.cs(60)]: Is PreRecording False [6/24/2023 9:52:54 AM][RecordingService.cs(61)]: Is Recording False [6/24/2023 9:52:54 AM][LibObsRecorder.cs(189)]: Game capture window size: 3440x1440 [6/24/2023 9:52:54 AM][LibObsRecorder.cs(70)]: warning: 1 views remain at shutdown [6/24/2023 9:52:54 AM][LibObsRecorder.cs(70)]: info: --------------------------------- [6/24/2023 9:52:54 AM][LibObsRecorder.cs(70)]: info: video settings reset: base resolution: 3440x1440 output resolution: 2580x1080 downscale filter: Bilinear fps: 60/1 format: NV12 YUV mode: Rec. 709/Partial [6/24/2023 9:52:54 AM][LibObsRecorder.cs(70)]: info: NV12 texture support enabled [6/24/2023 9:52:54 AM][LibObsRecorder.cs(70)]: info: P010 texture support not available [6/24/2023 9:52:54 AM][LibObsRecorder.cs(193)]: Preparing to create libobs output [4940]... [6/24/2023 9:52:54 AM][LibObsRecorder.cs(70)]: debug: encoder 'combined' (ffmpeg_aac) created [6/24/2023 9:52:54 AM][LibObsRecorder.cs(70)]: info: [win-wasapi: '(output) Default Device'] update settings: device id: default use device timing: 1 [6/24/2023 9:52:54 AM][LibObsRecorder.cs(70)]: debug: source '(output) Default Device' (wasapi_output_capture) created [6/24/2023 9:52:54 AM][LibObsRecorder.cs(70)]: debug: encoder '(output) Default Device' (ffmpeg_aac) created [6/24/2023 9:52:54 AM][LibObsRecorder.cs(70)]: info: [win-wasapi: '(input) Default Device'] update settings: device id: default use device timing: 0 [6/24/2023 9:52:54 AM][LibObsRecorder.cs(70)]: debug: source '(input) Default Device' (wasapi_input_capture) created [6/24/2023 9:52:54 AM][LibObsRecorder.cs(70)]: debug: encoder '(input) Default Device' (ffmpeg_aac) created [6/24/2023 9:52:54 AM][LibObsRecorder.cs(70)]: debug: source 'gameplay' (game_capture) created [6/24/2023 9:52:54 AM][LibObsRecorder.cs(70)]: debug: encoder 'Replays Recorder' (jim_nvenc) created [6/24/2023 9:52:54 AM][LibObsRecorder.cs(247)]: Waiting for successful graphics hook for [VALORANT :UnrealWindow:VALORANT-Win64-Shipping.exe]... retry attempt #0 [6/24/2023 9:52:54 AM][LibObsRecorder.cs(70)]: info: WASAPI: Device 'Microphone (7- I'm Fulla Schiit)' [48000 Hz] initialized [6/24/2023 9:52:54 AM][LibObsRecorder.cs(70)]: info: WASAPI: Device 'Monitor (2- NVIDIA High Definition Audio)' [48000 Hz] initialized [6/24/2023 9:52:56 AM][LibObsRecorder.cs(247)]: Waiting for successful graphics hook for [VALORANT :UnrealWindow:VALORANT-Win64-Shipping.exe]... retry attempt #1 [6/24/2023 9:52:58 AM][LibObsRecorder.cs(247)]: Waiting for successful graphics hook for [VALORANT :UnrealWindow:VALORANT-Win64-Shipping.exe]... retry attempt #2 [6/24/2023 9:53:00 AM][LibObsRecorder.cs(247)]: Waiting for successful graphics hook for [VALORANT :UnrealWindow:VALORANT-Win64-Shipping.exe]... retry attempt #3 [6/24/2023 9:53:00 AM][DetectionService.cs(228)]: Failed to get process: [14600] full path. Error: [Access is denied. [6/24/2023 9:53:02 AM][LibObsRecorder.cs(247)]: Waiting for successful graphics hook for [VALORANT :UnrealWindow:VALORANT-Win64-Shipping.exe]... retry attempt #4 [6/24/2023 9:53:03 AM][DetectionService.cs(228)]: Failed to get process: [8172] full path. Error: [Access is denied. [6/24/2023 9:53:04 AM][LibObsRecorder.cs(247)]: Waiting for successful graphics hook for [VALORANT :UnrealWindow:VALORANT-Win64-Shipping.exe]... retry attempt #5 [6/24/2023 9:53:06 AM][DetectionService.cs(228)]: Failed to get process: [4024] full path. Error: [Access is denied. [6/24/2023 9:53:06 AM][DetectionService.cs(228)]: Failed to get process: [5228] full path. Error: [Access is denied. [6/24/2023 9:53:06 AM][LibObsRecorder.cs(247)]: Waiting for successful graphics hook for [VALORANT :UnrealWindow:VALORANT-Win64-Shipping.exe]... retry attempt #6 [6/24/2023 9:53:08 AM][LibObsRecorder.cs(247)]: Waiting for successful graphics hook for [VALORANT :UnrealWindow:VALORANT-Win64-Shipping.exe]... retry attempt #7 [6/24/2023 9:53:10 AM][LibObsRecorder.cs(247)]: Waiting for successful graphics hook for [VALORANT :UnrealWindow:VALORANT-Win64-Shipping.exe]... retry attempt #8 [6/24/2023 9:53:12 AM][LibObsRecorder.cs(247)]: Waiting for successful graphics hook for [VALORANT :UnrealWindow:VALORANT-Win64-Shipping.exe]... retry attempt #9 [6/24/2023 9:53:12 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] attempting to hook fullscreen process: VALORANT-Win64-Shipping.exe [6/24/2023 9:53:12 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] using helper (compatibility hook) [6/24/2023 9:53:12 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] hook not loaded yet, retrying.. [6/24/2023 9:53:14 AM][LibObsRecorder.cs(247)]: Waiting for successful graphics hook for [VALORANT :UnrealWindow:VALORANT-Win64-Shipping.exe]... retry attempt #10 [6/24/2023 9:53:14 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] attempting to hook fullscreen process: VALORANT-Win64-Shipping.exe [6/24/2023 9:53:14 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] existing hook found, signaling process: VALORANT-Win64-Shipping.exe [6/24/2023 9:53:14 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] map id: [6/24/2023 9:53:14 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] DXGI_SWAP_CHAIN_DESC: BufferDesc.Width: 3440 BufferDesc.Height: 1440 BufferDesc.RefreshRate.Numerator: 0 BufferDesc.RefreshRate.Denominator: 0 BufferDesc.Format: 24 BufferDesc.ScanlineOrdering: 0 BufferDesc.Scaling: 0 SampleDesc.Count: 1 SampleDesc.Quality: 0 BufferUsage: 48 BufferCount: 2 Windowed: 0 SwapEffect: 4 Flags: 2050 [6/24/2023 9:53:14 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] d3d11 shared texture capture successful [6/24/2023 9:53:14 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] capture initializing! [6/24/2023 9:53:14 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] map id: [6/24/2023 9:53:14 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] Starting capture [6/24/2023 9:53:14 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] shared texture capture successful [6/24/2023 9:53:16 AM][LibObsRecorder.cs(70)]: debug: output 'simple_ffmpeg_output' (ffmpeg_muxer) created [6/24/2023 9:53:16 AM][LibObsRecorder.cs(332)]: LibObs output is starting [5654]... [6/24/2023 9:53:16 AM][LibObsRecorder.cs(70)]: info: [jim-nvenc: 'Replays Recorder'] settings: codec: H264 rate_control: VBR bitrate: 50000 cqp: 20 keyint: 250 preset: p5 tuning: hq multipass: qres profile: high width: 2580 height: 1080 b-frames: 2 lookahead: false psycho_aq: true [6/24/2023 9:53:16 AM][LibObsRecorder.cs(70)]: info: --------------------------------- [6/24/2023 9:53:16 AM][LibObsRecorder.cs(70)]: info: [FFmpeg aac encoder: 'combined'] bitrate: 128, channels: 2, channel_layout: stereo [6/24/2023 9:53:16 AM][LibObsRecorder.cs(70)]: info: --------------------------------- [6/24/2023 9:53:16 AM][LibObsRecorder.cs(70)]: info: [FFmpeg aac encoder: '(output) Default Device'] bitrate: 128, channels: 2, channel_layout: stereo [6/24/2023 9:53:16 AM][LibObsRecorder.cs(70)]: info: --------------------------------- [6/24/2023 9:53:16 AM][LibObsRecorder.cs(70)]: info: [FFmpeg aac encoder: '(input) Default Device'] bitrate: 128, channels: 2, channel_layout: stereo [6/24/2023 9:53:16 AM][LibObsRecorder.cs(70)]: info: [ffmpeg muxer: 'simple_ffmpeg_output'] Writing file 'C:/Users/Chris/Videos/Plays/VALORANT/2023_06_24_09_52_54-ses.mp4'... [6/24/2023 9:53:16 AM][LibObsRecorder.cs(341)]: LibObs started recording [16808] [VALORANT] [VALORANT :UnrealWindow:VALORANT-Win64-Shipping.exe] [6/24/2023 9:53:16 AM][RecordingService.cs(67)]: Start Success: True [6/24/2023 9:53:16 AM][RecordingService.cs(68)]: Still allowed to record: True [6/24/2023 9:53:16 AM][RecordingService.cs(70)]: Current Session PID: 16808 [6/24/2023 9:53:16 AM][RecordingService.cs(76)]: Start Recording: 16808, VALORANT [6/24/2023 9:53:18 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] Hooked SwapBuffers [6/24/2023 9:53:18 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] Hooked wglDeleteContext [6/24/2023 9:53:18 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] Hooked wglSwapLayerBuffers [6/24/2023 9:53:18 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] Hooked wglSwapBuffers [6/24/2023 9:53:18 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] Hooked GL [6/24/2023 9:53:19 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] ----------------- d3d11 capture freed ---------------- [6/24/2023 9:53:19 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] Found D3D11 11.0 device on swap chain [6/24/2023 9:53:19 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] DXGI_SWAP_CHAIN_DESC: BufferDesc.Width: 3440 BufferDesc.Height: 1440 BufferDesc.RefreshRate.Numerator: 0 BufferDesc.RefreshRate.Denominator: 0 BufferDesc.Format: 24 BufferDesc.ScanlineOrdering: 0 BufferDesc.Scaling: 0 SampleDesc.Count: 1 SampleDesc.Quality: 0 BufferUsage: 48 BufferCount: 2 Windowed: 1 SwapEffect: 4 Flags: 2050 [6/24/2023 9:53:19 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] d3d11 shared texture capture successful [6/24/2023 9:53:19 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] capture initializing! [6/24/2023 9:53:19 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] map id: [6/24/2023 9:53:19 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] Starting capture [6/24/2023 9:53:19 AM][LibObsRecorder.cs(84)]: Fullscreen game coming into focus? Ignoring attempt to restart recording. [6/24/2023 9:53:19 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] shared texture capture successful [6/24/2023 9:53:23 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] ----------------- d3d11 capture freed ---------------- [6/24/2023 9:53:23 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] Found D3D11 11.0 device on swap chain [6/24/2023 9:53:23 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] DXGI_SWAP_CHAIN_DESC: BufferDesc.Width: 3440 BufferDesc.Height: 1440 BufferDesc.RefreshRate.Numerator: 0 BufferDesc.RefreshRate.Denominator: 0 BufferDesc.Format: 24 BufferDesc.ScanlineOrdering: 0 BufferDesc.Scaling: 0 SampleDesc.Count: 1 SampleDesc.Quality: 0 BufferUsage: 48 BufferCount: 2 Windowed: 0 SwapEffect: 4 Flags: 2050 [6/24/2023 9:53:23 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] d3d11 shared texture capture successful [6/24/2023 9:53:23 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] capture initializing! [6/24/2023 9:53:23 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] map id: [6/24/2023 9:53:23 AM][LibObsRecorder.cs(70)]: debug: [game-capture: 'gameplay'] Starting capture [6/24/2023 9:53:23 AM][LibObsRecorder.cs(84)]: Fullscreen game coming into focus? Ignoring attempt to restart recording. [6/24/2023 9:53:23 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] shared texture capture successful [6/24/2023 9:53:32 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] capture window no longer exists, terminating capture [6/24/2023 9:53:32 AM][LibObsRecorder.cs(70)]: info: [game-capture: 'gameplay'] capture stopped [6/24/2023 9:53:33 AM][LibObsRecorder.cs(446)]: Waiting for obs_output to stop... retry attempt #0 [6/24/2023 9:53:33 AM][LibObsRecorder.cs(70)]: info: [ffmpeg muxer: 'simple_ffmpeg_output'] Output of file 'C:/Users/Chris/Videos/Plays/VALORANT/2023_06_24_09_52_54-ses.mp4' stopped [6/24/2023 9:53:33 AM][LibObsRecorder.cs(70)]: info: Output 'simple_ffmpeg_output': stopping [6/24/2023 9:53:33 AM][LibObsRecorder.cs(70)]: info: Output 'simple_ffmpeg_output': Total frames output: 1008 [6/24/2023 9:53:33 AM][LibObsRecorder.cs(70)]: info: Output 'simple_ffmpeg_output': Total drawn frames: 1021 (1022 attempted) [6/24/2023 9:53:33 AM][LibObsRecorder.cs(70)]: info: Output 'simple_ffmpeg_output': Number of lagged frames due to rendering lag/stalls: 1 (0.1%) [6/24/2023 9:53:33 AM][LibObsRecorder.cs(70)]: info: Video stopped, number of skipped frames due to encoding lag: 1/1020 (0.1%) [6/24/2023 9:53:35 AM][LibObsRecorder.cs(70)]: debug: output 'simple_ffmpeg_output' destroyed [6/24/2023 9:53:35 AM][LibObsRecorder.cs(70)]: debug: encoder 'Replays Recorder' destroyed [6/24/2023 9:53:35 AM][LibObsRecorder.cs(70)]: debug: encoder 'combined' destroyed [6/24/2023 9:53:35 AM][LibObsRecorder.cs(70)]: debug: encoder '(output) Default Device' destroyed [6/24/2023 9:53:35 AM][LibObsRecorder.cs(70)]: debug: encoder '(input) Default Device' destroyed [6/24/2023 9:53:35 AM][LibObsRecorder.cs(460)]: Session recording saved to C:/Users/Chris/Videos/Plays/VALORANT/2023_06_24_09_52_54-ses.mp4 [6/24/2023 9:53:35 AM][LibObsRecorder.cs(461)]: LibObs stopped recording 16808 VALORANT [5547] [6/24/2023 9:53:35 AM][LibObsRecorder.cs(70)]: debug: source 'gameplay' destroyed [6/24/2023 9:53:35 AM][LibObsRecorder.cs(70)]: info: WASAPI: Device 'Monitor (2- NVIDIA High Definition Audio)' Terminated [6/24/2023 9:53:35 AM][LibObsRecorder.cs(70)]: debug: source '(output) Default Device' destroyed [6/24/2023 9:53:35 AM][LibObsRecorder.cs(70)]: info: WASAPI: Device 'Microphone (7- I'm Fulla Schiit)' Terminated [6/24/2023 9:53:35 AM][LibObsRecorder.cs(70)]: debug: source '(input) Default Device' destroyed [6/24/2023 9:53:35 AM][Helpers.cs(205)]: Found '24' video files in C:/Users/Chris/Videos/Plays [6/24/2023 9:53:35 AM][Helpers.cs(315)]: Created new thumbnail: C:\Users\Chris\Videos\Plays\VALORANT\.thumbs\2023_06_24_09_52_54-ses.png [6/24/2023 9:53:35 AM][Helpers.cs(239)]: Parsed '24' video files. Sessions: 21, Clips: 3. [6/24/2023 9:53:35 AM][BookmarkService.cs(38)]: Applying 0 bookmarks [6/24/2023 9:53:35 AM][RecordingService.cs(109)]: Stop Recording: 16808, VALORANT [6/24/2023 9:53:35 AM][StorageService.cs(16)]: VideoSaveDir 'C:/Users/Chris/Videos/Plays' size is 4.178035452030599 gbs [6/24/2023 9:53:35 AM][StorageService.cs(19)]: Automatically managing space if exceeds 90% of folder's disk. Currently at 58.74496518547739% ```
kisunji commented 1 year ago

At a glance in v1.2.23 it looks like the hwnd for WindowCreation and WindowDeletion events are different:

[6/24/2023 9:34:49 AM][DetectionService.cs(81)]: WindowCreation: [28896][1343951184][C:\Riot Games\VALORANT\live\ShooterGame\Binaries\Win64\VALORANT-Win64-Shipping.exe]
[6/24/2023 9:35:07 AM][DetectionService.cs(91)]: WindowDeletion: [28896][58135038][C:\Riot Games\VALORANT\live\ShooterGame\Binaries\Win64\VALORANT-Win64-Shipping.exe]

I think the fact that you match on PID OR HWND here might cause the premature stops: https://github.com/lulzsun/RePlays/blob/21357eae94a9e1722b4c8a94db588bac329d9d1c/Classes/Services/DetectionService.cs#L90

Maybe the check should match both? I'd imagine most games would have a 1:1 relationship.

My hypothesis is that Valorant does some weird stuff with windows when players switch windows. I've noticed that video captures of the game are replaced with a black screen when streamers alt-tab so maybe the game process spawns multiple window handles that come and go?

kisunji commented 1 year ago

On another note, I think your latest commit causes Replays to not stop recording Valorant when I exit the game (I tested with Path of Exile as well and Replays stops recording correctly on exit).

lulzsun commented 1 year ago

Maybe the check should match both? I'd imagine most games would have a 1:1 relationship.

... so maybe the game process spawns multiple window handles that come and go?

The reason why we aren't checking both is because some game processes recreate the window and therefore create a new window handle id that no longer matches the currentSession.

With the latest commits, I am checking to see if the process has exited or no longer exists upon a window deletion event. However it seems like it is unreliable when it comes to Valorant?

In stable release 1.2.1, I used WMI to log all processes open/close events instead of relying on window event triggers. I think I will be reverting back to using that method as it seems more reliable than what we have right now...

kisunji commented 1 year ago

The reason why we aren't checking both is because some game processes recreate the window and therefore create a new window handle id that no longer matches the currentSession.

In the case of Valorant there is the "first" game window which when closed you can confirm the game has terminated. So the window handle pseudo-tracks the lifetime of the game process (process can outlive the window, but for recording purposes you can stop when the window is killed).

Are there games where the "first" window is outlived by a new window?

Wouldn't an event be emitted when the first window is destroyed? That would stop the recording prematurely regardless of matching just PID or both PID and HWND.

Correct me if I'm misunderstanding anything; I'm not a Windows developer 😅

kisunji commented 1 year ago

I guess to put it more clearly:

If we check both PID and HWND before stopping recording, we would record for as long as currentSession.WindowHandle is alive.

If process is killed, I assume there we would see an event for destroying currentSession.WindowHandle and we would stop recording.

If process creates more window handles, we don't care as long as currentSession.WindowHandle is alive.

If currentSession.WindowHandle is outlived by a new "main game window", we would see an event for destroying currentSession.WindowHandle and stop recording regardless of || or && (so it would be a bug with existing code)

kisunji commented 1 year ago

In stable release 1.2.1, I used WMI to log all processes open/close events instead of relying on window event triggers. I think I will be reverting back to using that method as it seems more reliable than what we have right now...

Totally up to you! I appreciate all the work you put in. Hope to contribute more directly to the project in the future (when I get more familiar with dotnet and win32)

lulzsun commented 1 year ago

Forgot to reference this issue in commit message, but https://github.com/lulzsun/RePlays/commit/0d8eddf1f2957705a889031f7ecc7b753b6f50db has re-implemented the previous process close eventlistener (WMI event query). Hopefully that should make it more reliable in stopping recordings where the process no longer exists.

I initially switched away from using WMI as I figured it would be more taxing than just capturing window events. Maybe it doesn't matter that much and I was just preemptively doing performance improvements for no good reason.

It does not seem reliable to only capture window events as it appears that sometimes

Will be researching more reliable solutions in tracking lifetimes of window handles and processes in the future.

kisunji commented 1 year ago

Awesome, thanks for the context.