shadikuizayoi
New Member
Hi,
I'm using OBS to capture an arcade machine which initially boots into a 1920x1080 desktop, then into a 1280x720 game after a few minutes.
I've been testing with Elgato Cam Link & HD60 S cards so far, which both appear to lack hardware scalers.
My capture source is currently configured like this:
This works as expected if OBS is started while the game is running, but if it happens before, the capture will fail to start:
Checking with FFmpeg at this time, we can see that the input PC is still on the desktop:
Since these cards have no hardware scaling, only the current 1920x1080 resolution is exposed, so this makes sense.
A short time later, the game boots and the desired resolution is now available.
But OBS doesn't try to re-open the capture device after the initial attempt fails. Manually deactivating and activating the source again works, but I need it to be able to recover automatically for my current use case.
Using device default for resolution doesn't work either, as this will just capture the desktop and then freeze up when the resolution changes:
At this point, the game has booted but the capture is frozen on the last frame before the resolution change occurred.
There is nothing further in the log and the source has to be reactivated manually.
Just wondering if anyone has any ideas on how to potentially work around this.
Apologies in advance if a similar issue has been posted previously.
I'm using OBS to capture an arcade machine which initially boots into a 1920x1080 desktop, then into a 1280x720 game after a few minutes.
I've been testing with Elgato Cam Link & HD60 S cards so far, which both appear to lack hardware scalers.
My capture source is currently configured like this:
This works as expected if OBS is started while the game is running, but if it happens before, the capture will fail to start:
Code:
16:27:03.433: Video Capture Device: Video format match failed
16:27:03.433: Video Capture Device: Video configuration failed
Checking with FFmpeg at this time, we can see that the input PC is still on the desktop:
Code:
[dshow @ 000001a0b513b100] DirectShow video device options (from video devices)
[dshow @ 000001a0b513b100] Pin "Capture" (alternative pin name "0")
[dshow @ 000001a0b513b100] pixel_format=yuyv422 min s=1920x1080 fps=59.9402 max s=1920x1080 fps=59.9402
[dshow @ 000001a0b513b100] pixel_format=yuyv422 min s=1920x1080 fps=59.9402 max s=1920x1080 fps=59.9402 (tv, bt709/bt709/unknown, topleft)
Since these cards have no hardware scaling, only the current 1920x1080 resolution is exposed, so this makes sense.
A short time later, the game boots and the desired resolution is now available.
Code:
[dshow @ 00000202c2e4b100] pixel_format=yuyv422 min s=1280x720 fps=59.9999 max s=1280x720 fps=59.9999
[dshow @ 00000202c2e4b100] pixel_format=yuyv422 min s=1280x720 fps=59.9999 max s=1280x720 fps=59.9999 (tv, bt709/bt709/unknown, topleft)
But OBS doesn't try to re-open the capture device after the initial attempt fails. Manually deactivating and activating the source again works, but I need it to be able to recover automatically for my current use case.
Using device default for resolution doesn't work either, as this will just capture the desktop and then freeze up when the resolution changes:
Code:
17:26:33.244: ==== Startup complete ===============================================
17:26:33.269: All scene data cleared
17:26:33.269: ------------------------------------------------
17:26:33.275: Switched to scene 'Scene'
17:26:33.275: ------------------------------------------------
17:26:33.275: Loaded scenes:
17:26:33.275: - scene 'Scene':
17:26:33.275: - source: 'Video Capture Device' (dshow_input)
17:26:33.275: ------------------------------------------------
17:26:33.333: ---------------------------------
17:26:33.333: [DShow Device: 'Video Capture Device'] settings updated:
17:26:33.333: video device: Cam Link
17:26:33.333: video path: \\?\usb#vid_0fd9&pid_0061&mi_00#9&356347f8&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global
17:26:33.333: resolution: 1920x1080
17:26:33.333: flip: 0
17:26:33.333: fps: 60.00 (interval: 166666)
17:26:33.333: format: YUY2
17:26:33.333: buffering: disabled
17:26:33.361: using video device audio: no
17:26:33.361: separate audio filter
17:26:33.361: sample rate: 44100
17:26:33.361: channels: 2
17:26:33.361: audio type: Capture
There is nothing further in the log and the source has to be reactivated manually.
Code:
17:26:47.950: ---------------------------------
17:26:47.950: [DShow Device: 'Video Capture Device'] settings updated:
17:26:47.950: video device: Cam Link
17:26:47.950: video path: \\?\usb#vid_0fd9&pid_0061&mi_00#9&356347f8&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global
17:26:47.950: resolution: 1280x720
17:26:47.950: flip: 0
17:26:47.950: fps: 60.00 (interval: 166666)
17:26:47.950: format: YUY2
17:26:47.950: buffering: disabled
17:26:47.969: using video device audio: no
17:26:47.969: separate audio filter
17:26:47.969: sample rate: 44100
17:26:47.969: channels: 2
17:26:47.969: audio type: Capture
17:26:54.996: ---------------------------------
Just wondering if anyone has any ideas on how to potentially work around this.
Apologies in advance if a similar issue has been posted previously.