Video capture issues

Hi,
i’m making experiments to extend video capture settings but i’ve found some features not working (or not working as i was expecting)

Using this settings:

{"settings":{"video":{"override_overwolf_setting":true,"buffer_length":30000,"keep_game_capture_on_lost_focus":true,"game_window_capture":{"enable_when_available":true,"capture_overwolf_windows":false}},"audio":{"mic":{"volume":100,"enable":true},"game":{"volume":100,"enable":true},"separate_tracks":true,"filtered_capture":{"enable":true}}}}

  • Overwolf windows are captured: should be avoided by game_window_capture.capture_overwolf_windows = false

  • Audio recorded on 1 track: defined audio.separate_tracks to true but at least from my analysis, the audio track is still one

  • System sound (Spotify, Mic) recorded: specified filtered_capture.enable to true

  • Game stopped to be captured when tabbed out and recorded “tabbed out” message: keep_game_capture_on_lost_focus is set to true

  • peripherals set to null doesnt have effect on recording, game mouse still captured

  • defining the webcam source as documented with secondary_file at true, creates the video file but is corrupted until the video capture ends - is correct?

  • webcam capture: what is the purpose of defining the secondary_file = false . expected that the webcam video was integrated into the main one, but no, simply is not recorded. Otherwise i dont understand the position and size_scale parameters

All tried on Euro Truck Simulator 2.

OverwolfLogs_2022-06-09_23-34-26.zip (1007.0 KB)

Hi!
Going to be a bit of a lengthy response

  • capture_overwolf_windows - This should normally work. Just to make sure - are you using vulkan, directX, or anything else? See correction in comment below!
  • audio.separate_tracks - This should work, so it’s probably something on the level of the setup. We can look into it further, so if you send us a video recorded with this setting where it didn’t work + logs, we’ll be able to help further.
  • filtered_capture - As mentioned on slack, and also updated in the docs - filtered_capture was initially mis-documented. It’s a field under game:{…}. Let me know if that helps!
  • keep_game_capture_on_lost_focus - We will look into that. There are some known edge-cases for this, so it might simply be a case of the game’s implementation interefering.
  • peripherals - Setting it to null should make it not capture peripherals, however, it might be bugged currently. We are testing it extensively as we speak, and will let you know once we have a proper answer!
  • video is “corrupted” until it finishes recording - That’s most likely just because of how videos are encoded. Many formats today are “unreadable” until they’re fully recorded, due to the way the actual encoding works.
  • secondary_file = false - This should integrate the video properly, especially if it did save it to another file when secondary file was enabled. This is most likely something to do with the position and size_scale parameters, so if you can give a snippet of how you used those, it would help a lot!

Capture Overwolf Windows:
This is a slightly tricky one, because there are a few things with somewhat similar names, but different contexts and meanings. Will be further highlighted in the docs in the near future.

  • capture overwolf window - a setting from the settings menu (capture → advanced → Capture Overwolf Windows). PURELY a setting to control the capturing of “base” overwolf windows (“current recording timestamp”, the overwolf dock…).
  • GameWindowCapture - Some games run in “exclusive mode”. Due to certain technical limitations, recording those games by default, when they’re in windowed mode, will record the desktop as well. This setting is purely for altering that behavior.
  • StreamingMode - Used to control the capturing behavior of specific overwolf apps’ windows.

Hi @oded.itkin

the filtered capture does not work on ETS2.

Unless i messed up with settings:

{"settings":{"video":{"override_overwolf_setting":true,"buffer_length":30000,"keep_game_capture_on_lost_focus":true,"game_window_capture":{"enable_when_available":true,"capture_overwolf_windows":true},"sources":[{"source_type":"WebCam","name":"webcam","secondary_file":false,"parameters":{"device_id":"default"},"position":{"x":200,"y":200},"size_scale":{"x":0.25,"y":0.25}}]},"audio":{"mic":{"volume":100,"enable":true},"game":{"volume":100,"enable":true,"filtered_capture":{"enable":true}},"separate_tracks":true}}}

This is the video recorded: - YouTube (wait for it at 00:23 and you’ll hear the Spotify music)

Thank you for the update!

I’ll check this and see if we can replicate the behavior.
In the meantime, did you try to potentially set additional_process_names = [], just so it’s defined?
Also, the video is private and not unlisted, so I can’t check it for that issue.

Sorry, unlocked the video now.

Will try as soon is possible to use pass additional_process_names as empty array

Eventually, i’ve set also separate_tracks at true, do you mind checking also if it really registered the video with two tracks? need the original file shared instead of youtube one?

Alright, so, after taking a look at the video, and trying to reproduce it:
It worked with these settings, in ETS2, so it’s definitely not the additional_process_names part.

Try to record again when you can, with these exact settings, and then send both the logs and the video. I’ll also check the tracks on that video once you send it, since I don’t think these can be checked on youtube.

First video recording settings:

{"settings":{"video":{"override_overwolf_setting":true,"buffer_length":30000,"keep_game_capture_on_lost_focus":true,"game_window_capture":{"enable_when_available":true,"capture_overwolf_windows":true},"sources":[{"source_type":"WebCam","name":"webcam","secondary_file":false,"parameters":{"device_id":"default"},"position":{"x":200,"y":200},"size_scale":{"x":0.25,"y":0.25}}]},"audio":{"mic":{"volume":100,"enable":true},"game":{"volume":100,"enable":true,"filtered_capture":{"enable":true}},"separate_tracks":true}}}

Second video settings

{"settings":{"video":{"override_overwolf_setting":true,"buffer_length":30000,"keep_game_capture_on_lost_focus":true,"game_window_capture":{"enable_when_available":true,"capture_overwolf_windows":true},"sources":[{"source_type":"WebCam","name":"webcam","secondary_file":false,"parameters":{"device_id":"default"},"position":{"x":200,"y":200},"size_scale":{"x":0.25,"y":0.25}}]},"audio":{"mic":{"volume":100,"enable":true},"game":{"volume":100,"enable":true,"filtered_capture":{"enable":true,"additional_process_names":[]}},"separate_tracks":true}}}

Videos and logs:

Hi!
So, after testing:
1 - Separate tracks is working in the videos you sent, so everything is okay there.
2 - Please try to test filtered_capture, and in general, all of these settings, by running these commands through a chrome console while in-game:
overwolf.media.replays.turnOn(settings_sent_above, callback), and then overwolf.media.replays.startCapture(duration, callback). If that doesn’t work, send the logs (and the videos). If it does, then we can try to see why it isn’t working in the code.

I don’t understand, why i should do it from console if my app does exactly the same thing?

In cases where we can’t reproduce an error on our side, we want to create a minimal-working-example that works on both sides, so we have a basis to see where did things potentially go wrong.
The console allows us to run the code in relative isolation, with minimal interference from other parts of an app, and without creating a potentially cumbersome dummy sample app just to test a few lines of code.

In this case, we simply want to see if the two basic commands, with these exact settings, when run in solation, work. Whichever way this goes, we will be able to understand the issue better!

Added recorded videos with manual commands here Dropbox - recording_test - Simplify your life