Jump to content

Recommended Posts

Posted (edited)

 

#Include <WinAPIFiles.au3>


_SetDPIUNAWARE('D:\Bureau\ScreenRecorder\ScreenRecorder64.exe')

Func _SetDPIUNAWARE($sFullPath) ; With a dpi scale > 1
;~  Application compatibily flags are stored in the registry (user or system part):
;~  HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
;~  HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
    Local $iRet, $sHklm
    If _WinAPI_GetBinaryType($sFullPath) Then
        Switch @extended
            Case $SCS_32BIT_BINARY
                $sHklm = 'HKLM'
            Case $SCS_64BIT_BINARY
                $sHklm = 'HKLM64'
            Case Else
                Return SetError(-1, 0, 0)
        EndSwitch
        Local $sReg1 = RegRead($sHklm & '\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers', $sFullPath)
        Local $sReg2 = RegRead('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers', $sFullPath)
        If $sReg1 <> '~ DPIUNAWARE' Or $sReg2 <> '~ DPIUNAWARE' Then
            $iRet = RegWrite($sHklm & '\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers', _
                    $sFullPath, _
                    'REG_SZ', _
                    '~ DPIUNAWARE')
            If @error Or $iRet = 0 Then Return SetError(@error, 0, -2)
            $iRet = RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers', _
                    $sFullPath, _
                    'REG_SZ', _
                    '~ DPIUNAWARE')
            If @error Or $iRet = 0 Then Return SetError(@error, 0, -3)

            Return 1
        EndIf
    EndIf
EndFunc   ;==>_SetDPIUNAWARE

Once script run, i run ScreenRecorder64.exe and now i'm able to read your gui

Edited by wakillon

AutoIt 3.3.18.0 X86 - SciTE 4.4.6.0WIN 11 24H2 X64 - Other Examples Scripts

Posted
4 hours ago, wakillon said:

When i try to enter 30 fps in your gui settings, numbers are not visibles ... 🤔

Well, if the background is light, it can be even harder to read the values in the input fields. But when I open the GUI on a white background, I can still see the numbers fairly well. Maybe it’s because I don’t have a 4K monitor and can’t reproduce your problem.

 

On 4/25/2026 at 10:25 AM, Gianni said:

I recorded for about a minute just by pressing the Start button and without changing any settings, but when I open the file, the media player displays this message: "Cannot open Capture_..._... It's using unsupported encoding settings." (win11 x64)
Am I doing something wrong?

Since desktop recordings can get quite large and are recorded internally in high444 format—which not every video player can play—you can easily use FFMPEG to reduce the size of the AVI file and make it compatible so that even the default Windows tools can play it!

Example in CMD:

ffmpeg.exe -i Capture_20260426_181055.avi -c:v libx265 -crf 32 -pix_fmt yuv420p -preset medium output_small.mp4

 

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Posted (edited)
10 hours ago, UEZ said:

Well, if the background is light, it can be even harder to read the values in the input fields. But when I open the GUI on a white background, I can still see the numbers fairly well. Maybe it’s because I don’t have a 4K monitor and can’t reproduce your problem.

It's incredible !
When i look with my own eyes your gui settings, i don't see any numbers even when placing

the black background of notepad or a white background  behind it


But when i take a screenshot for show you that there is no numbers displayed, the screenshot show well the numbers !!! ☹️

You invented invisible numbers ! 👍

For the suspicious, no, I didn't drink! 😋

Edited by wakillon

AutoIt 3.3.18.0 X86 - SciTE 4.4.6.0WIN 11 24H2 X64 - Other Examples Scripts

Posted (edited)

Ok, you are not drunken. 😉😄

I'm working on fixing the problem. Thanks for testing.

I wonder if others have the same problem...

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Posted

First of all, I am sorry for straying away from the main topic but I am curious...

On 4/13/2026 at 7:45 PM, UEZ said:

The previous version used the GDI API to send frames to the codec

What API are you using to capture frames now?

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Posted
1 hour ago, TheDcoder said:

First of all, I am sorry for straying away from the main topic but I am curious...

What API are you using to capture frames now?

GraphicsCaptureWrapper is a C++ wrapper using WinRT and DX11 to provide the desktop image to the encoder.

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Posted (edited)

@wakillon I changed the Settings GUI to DarkMode. It should work now for you, too.

image-2026-04-27-234729172.png

 

You have to download it again -> ScreenRecorder.7z 

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Posted (edited)

Gui settings, display ok now

So, with settings to ultrafast and 30 FPS

Video quality ok

Playing ok, i mean playing duration = record duration 🫡

Excellent work 👍

Edited by wakillon

AutoIt 3.3.18.0 X86 - SciTE 4.4.6.0WIN 11 24H2 X64 - Other Examples Scripts

  • 2 weeks later...
Posted

Hi everyone,

I’ve updated my video recording tool, now named AirCapRec (v0.7.5).

I need help testing technical edge cases where manual stride handling often fails.

Seeking feedback on:

  • "Weird" Resolutions: Any skewed/slanted images on ultra-wide or non-standard window sizes?

  • High-DPI / Multi-Monitor: Does the capture area and cursor align correctly at 125% or 150% scaling?

  • Stability: Any frame drops or stutter during long sessions?

Download: AirCapRec.zip

If you find a bug, please post your Resolution, DPI Scaling, and Windows Version. You can also enable the Debug Log option in the settings to provide more information.

Thanks for the support! 

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Posted

Wow, already available on Softpedia 😉

5 minutes recorded with UltraFast, 30 FPS, audio 192k, 300% scaling give well 5 minutes reading.

Mp4 file 498 Mo 5mn200ms H.264 3840x2160 AAC

What is the question mark for? 
When I click on it, both windows disappear and i need to right click on the taskbar for close it and then both windows reappear

When i record with "region" selected , it display a default  width of 1280 and height of 720
but the region is three times smaller than my screen size (3840x2160) due to my dpi scalling (X3)
Is it intentional ? I need to set manually the real size in inputs


And why not suggest reducing the video dimensions at the output for reduce Mo size ?
 

AirCapRec_debug.log

AutoIt 3.3.18.0 X86 - SciTE 4.4.6.0WIN 11 24H2 X64 - Other Examples Scripts

Posted (edited)
1 hour ago, wakillon said:

What is the question mark for? 
When I click on it, both windows disappear and i need to right click on the taskbar for close it and then both windows reappear

What a shame that it's not showing up on your screen. It is the About Window with some raymarched animation and a simple vertical scroller.

The About window video: About AirCapRec Window

 

1 hour ago, wakillon said:

When i record with "region" selected , it display a default  width of 1280 and height of 720
but the region is three times smaller than my screen size (3840x2160) due to my dpi scalling (X3)
Is it intentional ? I need to set manually the real size in inputs

I need to check. Unfortunatelly I don't have a 4k monitor to test with 300% DPI.

 

1 hour ago, wakillon said:

And why not suggest reducing the video dimensions at the output for reduce Mo size ?

It takes up a lot of CPU time if you have to reduce the resolution while recording. I'm currently working on another DLL to re-encode the recorded mp4 file afterward and make it smaller.

 

Let me analyze your log....

 

Thank you so much, again and again, for testing the app. I really appreciate it. 👍

 

Latest version on my OneDrive: AirCapRec which from today. 😉

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Posted (edited)

@wakillon I think I fixed the DPI issues which caused that you can't see the About window and the region selection.

For region: it was set to DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 and for me it works propely. Obvously your Windows version doesn't support it - added some fallbacks.

I uploaded a new build -> AirCapRec (link is the same).

Can you please test again?

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Posted (edited)

Now it works ! 

Very nice About ! 😁

 

For the region, the default width can be simply obtained by @DesktopWidth X dpiScale, same for the height

Func _GetDPIScale() ;~  https://learn.microsoft.com/en-us/answers/questions/601314/vb-net-adjusting-forms-and-controls-to-display-res
    Local Const $HORZRES = 8 ; Horizontal width in pixels
    Local Const $DESKTOPHORZRES = 118 ; Horizontal width of entire desktop in pixels
    Local $hDC = _WinAPI_GetDC(0)
    Local $iDHWidth = _WinAPI_GetDeviceCaps($hDC, $DESKTOPHORZRES)
    Local $iHWidth = _WinAPI_GetDeviceCaps($hDC, $HORZRES)
    _WinAPI_ReleaseDC(0, $hDC)
    Return $iDHWidth / $iHWidth
EndFunc   ;==>_GetDPIScale

 

 

 

Edited by wakillon

AutoIt 3.3.18.0 X86 - SciTE 4.4.6.0WIN 11 24H2 X64 - Other Examples Scripts

Posted (edited)

 

1 hour ago, wakillon said:

Now it works ! 

Also the region?

 

I've added support for the YUV color space (now the default), which does use a bit more CPU power, but this should allow older versions of Windows Media Player to play the files, and the MP4 file should also be a little smaller.

I don't know how 4K @ 60 FPS recording works with YUV, or if there are a lot of frame drops.

 

Thanks again for testing. 👍

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Posted (edited)
5 hours ago, UEZ said:

Also the region?

( yes dimensions region are good when playing)

Well, i have re-downloaded AirCapRec and , selecting "Primary" or "Region", videos with 60 FPS and UltraFast  are shorter than recording time,

1 Min give 28 sec, It looks like a film in fast motion (27s967ms.H.264.3840x2160.AAC)

VLC displays the remaining time at the bottom right and

after playing 28 sec, it display  -00:01 and after image is frozen and remaining time is strangely displayed

from --00:01 to --00:32 second by second and then stop playing ☹️

 

Edited by wakillon

AutoIt 3.3.18.0 X86 - SciTE 4.4.6.0WIN 11 24H2 X64 - Other Examples Scripts

Posted (edited)
2 hours ago, wakillon said:

Well, i have re-downloaded AirCapRec and , selecting "Primary" or "Region", videos with 60 FPS and UltraFast  are shorter than recording time,

1 Min give 28 sec, It looks like a film in fast motion (27s967ms.H.264.3840x2160.AAC)

VLC displays the remaining time at the bottom right and

after playing 28 sec, it display  -00:01 and after image is frozen and remaining time is strangely displayed

from --00:01 to --00:32 second by second and then stop playing ☹️

Hmm, I think you used “High 4:2:0” (which is now the default setting), which converts the RGB colors to YUV colors when recording in 4K resolution. This uses too much CPU which drops a lot of frames. Was the FPS most time below 60 FPS when you look at the GUI which shows the current FPS / destination FPS.

There should be a difference if you record in "High 4:4:4" at 4K @ 60 FPS. Can you test it please?

How is “High 4:2:0” in 4K @ 30 FPS? I updated several times the Zip archive and in of the version I didn't use performance compiler setting. If the Exe is less than 410.000 bytes than you have the default compiled version.

Merci.

 

Edit: I tested “High 4:2:0” at 60 FPS in full HD and recorded 30 seconds. No problems and properly played in VLC, MPC-BE, Windows Media Player Legacy.

 

Unfortunately, no other users are currently participating in the testing. 😞

 

Edit2: seems not to change to "High 4:4:4" when selected.

Edit3: High 4:2:0 was hard coded -> fixed now.

Edit4: new version uploaded -> frames will be duplicated when CPU is too slow.

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Posted (edited)

Hi UEZ 😉

4 tests with AirCapRec v0.7.6 beta build 2026-05-17

 

1) Settings : UltraFast + 60 FPS + High 4:4:4 + 192k

Result, fps varies from 55 to 67 during recording

2 Min recording, Mp4 327 Mo (1mn59s.H.264.3840x2160.AAC) Ok

Log :

Quote


=== AirCapRec session started 05-18-2026 09:39:00 ===
    Log file: D:\Bureau\AirCapRec v0.7.6 beta build 2026-05-17\AirCapRec_debug.log
[2011437] HighlightClicks=1  Origin=(0,0)  MMCSS=1
[2011437] Audio requested: sys=1 mic=0 bitrate=192000
[2011437] Audio_Init OK
[2011437] SR_Init OK: Capture_20260518_093900.mp4  60fps  CRF=24  preset=ultrafast  tune=zerolatency  audio=1
[2011437] SR_Start OK
[2011437] Recording-Thread started
[2011437] MMCSS AvSetMmThreadCharacteristicsW('Capture') = OK
[2011468] Opening MP4: Capture_20260518_093900.mp4  (3840x2160 @ 60fps)
[2011468] MP4Min_Open OK
[2016515] Ring stats: produced=96 dropped=55 consumed=95 filled=1 encFrames=300 repeated=43 duped=162
[2021562] Ring stats: produced=174 dropped=96 consumed=171 filled=3 encFrames=600 repeated=84 duped=345
[2026562] Ring stats: produced=236 dropped=185 consumed=233 filled=3 encFrames=902 repeated=116 duped=553
[2031562] Ring stats: produced=334 dropped=236 consumed=334 filled=0 encFrames=1202 repeated=159 duped=709
[2036609] Ring stats: produced=397 dropped=302 consumed=394 filled=3 encFrames=1502 repeated=221 duped=887
[2041671] Ring stats: produced=451 dropped=358 consumed=449 filled=2 encFrames=1805 repeated=311 duped=1045
[2046734] Ring stats: produced=512 dropped=403 consumed=509 filled=3 encFrames=2109 repeated=392 duped=1208
[2051750] Ring stats: produced=593 dropped=471 consumed=591 filled=2 encFrames=2413 repeated=413 duped=1409
[2056796] Ring stats: produced=671 dropped=503 consumed=668 filled=3 encFrames=2714 repeated=522 duped=1524
[2061875] Ring stats: produced=734 dropped=611 consumed=731 filled=3 encFrames=3017 repeated=557 duped=1729
[2066921] Ring stats: produced=806 dropped=725 consumed=803 filled=3 encFrames=3322 repeated=557 duped=1962
[2071968] Ring stats: produced=872 dropped=822 consumed=869 filled=3 encFrames=3624 repeated=557 duped=2198
[2077046] Ring stats: produced=933 dropped=926 consumed=930 filled=3 encFrames=3928 repeated=562 duped=2436
[2082078] Ring stats: produced=1046 dropped=983 consumed=1043 filled=3 encFrames=4233 repeated=582 duped=2608
[2087109] Ring stats: produced=1160 dropped=1062 consumed=1157 filled=3 encFrames=4535 repeated=585 duped=2793
[2092171] Ring stats: produced=1268 dropped=1146 consumed=1265 filled=3 encFrames=4837 repeated=586 duped=2986
[2097250] Ring stats: produced=1358 dropped=1239 consumed=1355 filled=3 encFrames=5140 repeated=587 duped=3198
[2102250] Ring stats: produced=1445 dropped=1316 consumed=1442 filled=3 encFrames=5443 repeated=595 duped=3406
[2107250] Ring stats: produced=1564 dropped=1338 consumed=1561 filled=3 encFrames=5743 repeated=639 duped=3543
[2112281] Ring stats: produced=1664 dropped=1369 consumed=1661 filled=3 encFrames=6045 repeated=678 duped=3706
[2117281] Ring stats: produced=1754 dropped=1432 consumed=1751 filled=3 encFrames=6339 repeated=706 duped=3882
[2122343] Ring stats: produced=1818 dropped=1528 consumed=1815 filled=3 encFrames=6646 repeated=706 duped=4125
[2127359] Ring stats: produced=1879 dropped=1615 consumed=1878 filled=1 encFrames=6950 repeated=748 duped=4324
[2131468] SR_Stop called - video frames=7196 audio frames=5617
[2131468] Final ring stats: produced=1947 dropped=1615 consumed=1946 filled=1
[2131500] Recording-Thread done: total frames=7197 repeated=851 realDuration=120.0012656000001s
 

 


2) Settings : UltraFast + 30 FPS + High 4:4:4 + 192k

result, fps varies from 28 to 33 during recording
2 Min recording, Mp4 508 Mo (1mn59s.H.264.3840x2160.AAC) Ok

Log :

Quote


=== AirCapRec session started 05-18-2026 10:01:01 ===
    Log file: D:\Bureau\AirCapRec v0.7.6 beta build 2026-05-17\AirCapRec_debug.log
[3331890] HighlightClicks=1  Origin=(0,0)  MMCSS=1
[3331890] Audio requested: sys=1 mic=0 bitrate=192000
[3331890] Audio_Init OK
[3331890] SR_Init OK: Capture_20260518_100100.mp4  30fps  CRF=24  preset=ultrafast  tune=zerolatency  audio=1
[3331890] SR_Start OK
[3331890] Recording-Thread started
[3331890] MMCSS AvSetMmThreadCharacteristicsW('Capture') = OK
[3331906] Opening MP4: Capture_20260518_100100.mp4  (3840x2160 @ 30fps)
[3331906] MP4Min_Open OK
[3336906] Ring stats: produced=105 dropped=22 consumed=103 filled=2 encFrames=149 repeated=37 duped=9
[3341937] Ring stats: produced=227 dropped=58 consumed=224 filled=3 encFrames=300 repeated=57 duped=19
[3346937] Ring stats: produced=344 dropped=102 consumed=342 filled=2 encFrames=450 repeated=79 duped=29
[3351953] Ring stats: produced=470 dropped=148 consumed=467 filled=3 encFrames=600 repeated=93 duped=40
[3356968] Ring stats: produced=576 dropped=164 consumed=573 filled=3 encFrames=751 repeated=124 duped=54
[3362000] Ring stats: produced=702 dropped=204 consumed=699 filled=3 encFrames=902 repeated=141 duped=62
[3367015] Ring stats: produced=838 dropped=265 consumed=835 filled=3 encFrames=1052 repeated=141 duped=76
[3372046] Ring stats: produced=967 dropped=296 consumed=964 filled=3 encFrames=1203 repeated=155 duped=84
[3377078] Ring stats: produced=1099 dropped=335 consumed=1099 filled=0 encFrames=1354 repeated=159 duped=96
[3382078] Ring stats: produced=1213 dropped=346 consumed=1211 filled=2 encFrames=1504 repeated=190 duped=103
[3387109] Ring stats: produced=1316 dropped=353 consumed=1314 filled=2 encFrames=1655 repeated=232 duped=109
[3392109] Ring stats: produced=1413 dropped=354 consumed=1413 filled=0 encFrames=1805 repeated=271 duped=121
[3397109] Ring stats: produced=1537 dropped=375 consumed=1534 filled=3 encFrames=1955 repeated=294 duped=127
[3402140] Ring stats: produced=1662 dropped=431 consumed=1659 filled=3 encFrames=2106 repeated=307 duped=140
[3407171] Ring stats: produced=1793 dropped=486 consumed=1791 filled=2 encFrames=2257 repeated=311 duped=155
[3412171] Ring stats: produced=1928 dropped=546 consumed=1925 filled=3 encFrames=2407 repeated=312 duped=170
[3417171] Ring stats: produced=2064 dropped=605 consumed=2061 filled=3 encFrames=2557 repeated=312 duped=184
[3422171] Ring stats: produced=2201 dropped=662 consumed=2199 filled=2 encFrames=2707 repeated=314 duped=194
[3427203] Ring stats: produced=2336 dropped=721 consumed=2334 filled=2 encFrames=2858 repeated=314 duped=210
[3432203] Ring stats: produced=2474 dropped=773 consumed=2471 filled=3 encFrames=3008 repeated=315 duped=222
[3437234] Ring stats: produced=2609 dropped=830 consumed=2608 filled=1 encFrames=3159 repeated=316 duped=235
[3442234] Ring stats: produced=2692 dropped=830 consumed=2692 filled=0 encFrames=3309 repeated=375 duped=242
[3447250] Ring stats: produced=2771 dropped=830 consumed=2770 filled=1 encFrames=3459 repeated=433 duped=256
[3451468] SR_Stop called - video frames=3586 audio frames=5598
[3451468] Final ring stats: produced=2837 dropped=830 consumed=2837 filled=0
[3451531] Recording-Thread done: total frames=3587 repeated=484 realDuration=119.6264612999999s
 

 


3) Settings : UltraFast + 60 FPS + High 4:2:0 + 192k

Result, fps varies from 56 to 64 during recording

2 Min recording, Mp4 174 Mo (2mn400ms.H.264.3840x2160.AAC) Ok

Log :

Quote


=== AirCapRec session started 05-18-2026 09:39:00 ===
    Log file: D:\Bureau\AirCapRec v0.7.6 beta build 2026-05-17\AirCapRec_debug.log
[2011437] HighlightClicks=1  Origin=(0,0)  MMCSS=1
[2011437] Audio requested: sys=1 mic=0 bitrate=192000
[2011437] Audio_Init OK
[2011437] SR_Init OK: Capture_20260518_093900.mp4  60fps  CRF=24  preset=ultrafast  tune=zerolatency  audio=1
[2011437] SR_Start OK
[2011437] Recording-Thread started
[2011437] MMCSS AvSetMmThreadCharacteristicsW('Capture') = OK
[2011468] Opening MP4: Capture_20260518_093900.mp4  (3840x2160 @ 60fps)
[2011468] MP4Min_Open OK
[2016515] Ring stats: produced=96 dropped=55 consumed=95 filled=1 encFrames=300 repeated=43 duped=162
[2021562] Ring stats: produced=174 dropped=96 consumed=171 filled=3 encFrames=600 repeated=84 duped=345
[2026562] Ring stats: produced=236 dropped=185 consumed=233 filled=3 encFrames=902 repeated=116 duped=553
[2031562] Ring stats: produced=334 dropped=236 consumed=334 filled=0 encFrames=1202 repeated=159 duped=709
[2036609] Ring stats: produced=397 dropped=302 consumed=394 filled=3 encFrames=1502 repeated=221 duped=887
[2041671] Ring stats: produced=451 dropped=358 consumed=449 filled=2 encFrames=1805 repeated=311 duped=1045
[2046734] Ring stats: produced=512 dropped=403 consumed=509 filled=3 encFrames=2109 repeated=392 duped=1208
[2051750] Ring stats: produced=593 dropped=471 consumed=591 filled=2 encFrames=2413 repeated=413 duped=1409
[2056796] Ring stats: produced=671 dropped=503 consumed=668 filled=3 encFrames=2714 repeated=522 duped=1524
[2061875] Ring stats: produced=734 dropped=611 consumed=731 filled=3 encFrames=3017 repeated=557 duped=1729
[2066921] Ring stats: produced=806 dropped=725 consumed=803 filled=3 encFrames=3322 repeated=557 duped=1962
[2071968] Ring stats: produced=872 dropped=822 consumed=869 filled=3 encFrames=3624 repeated=557 duped=2198
[2077046] Ring stats: produced=933 dropped=926 consumed=930 filled=3 encFrames=3928 repeated=562 duped=2436
[2082078] Ring stats: produced=1046 dropped=983 consumed=1043 filled=3 encFrames=4233 repeated=582 duped=2608
[2087109] Ring stats: produced=1160 dropped=1062 consumed=1157 filled=3 encFrames=4535 repeated=585 duped=2793
[2092171] Ring stats: produced=1268 dropped=1146 consumed=1265 filled=3 encFrames=4837 repeated=586 duped=2986
[2097250] Ring stats: produced=1358 dropped=1239 consumed=1355 filled=3 encFrames=5140 repeated=587 duped=3198
[2102250] Ring stats: produced=1445 dropped=1316 consumed=1442 filled=3 encFrames=5443 repeated=595 duped=3406
[2107250] Ring stats: produced=1564 dropped=1338 consumed=1561 filled=3 encFrames=5743 repeated=639 duped=3543
[2112281] Ring stats: produced=1664 dropped=1369 consumed=1661 filled=3 encFrames=6045 repeated=678 duped=3706
[2117281] Ring stats: produced=1754 dropped=1432 consumed=1751 filled=3 encFrames=6339 repeated=706 duped=3882
[2122343] Ring stats: produced=1818 dropped=1528 consumed=1815 filled=3 encFrames=6646 repeated=706 duped=4125
[2127359] Ring stats: produced=1879 dropped=1615 consumed=1878 filled=1 encFrames=6950 repeated=748 duped=4324
[2131468] SR_Stop called - video frames=7196 audio frames=5617
[2131468] Final ring stats: produced=1947 dropped=1615 consumed=1946 filled=1
[2131500] Recording-Thread done: total frames=7197 repeated=851 realDuration=120.0012656000001s

=== AirCapRec session started 05-18-2026 09:50:01 ===
    Log file: D:\Bureau\AirCapRec v0.7.6 beta build 2026-05-17\AirCapRec_debug.log
[2671656] HighlightClicks=1  Origin=(0,0)  MMCSS=1
[2671656] Audio requested: sys=1 mic=0 bitrate=192000
[2671656] Audio_Init OK
[2671656] SR_Init OK: Capture_20260518_095000.mp4  60fps  CRF=24  preset=ultrafast  tune=zerolatency  audio=1
[2671656] SR_Start OK
[2671656] Recording-Thread started
[2671656] MMCSS AvSetMmThreadCharacteristicsW('Capture') = OK
[2671671] Opening MP4: Capture_20260518_095000.mp4  (3840x2160 @ 60fps)
[2671671] MP4Min_Open OK
[2676703] Ring stats: produced=73 dropped=76 consumed=70 filled=3 encFrames=299 repeated=6 duped=223
[2681765] Ring stats: produced=138 dropped=144 consumed=135 filled=3 encFrames=603 repeated=14 duped=454
[2686796] Ring stats: produced=214 dropped=229 consumed=211 filled=3 encFrames=906 repeated=14 duped=681
[2691843] Ring stats: produced=295 dropped=302 consumed=292 filled=3 encFrames=1209 repeated=16 duped=901
[2696859] Ring stats: produced=371 dropped=402 consumed=370 filled=1 encFrames=1510 repeated=16 duped=1124
[2701875] Ring stats: produced=454 dropped=484 consumed=452 filled=2 encFrames=1810 repeated=18 duped=1340
[2706921] Ring stats: produced=533 dropped=584 consumed=530 filled=3 encFrames=2113 repeated=19 duped=1564
[2711921] Ring stats: produced=616 dropped=665 consumed=613 filled=3 encFrames=2413 repeated=19 duped=1781
[2716984] Ring stats: produced=689 dropped=746 consumed=686 filled=3 encFrames=2716 repeated=31 duped=1999
[2722031] Ring stats: produced=770 dropped=857 consumed=767 filled=3 encFrames=3019 repeated=31 duped=2221
[2727062] Ring stats: produced=853 dropped=997 consumed=850 filled=3 encFrames=3321 repeated=31 duped=2440
[2732078] Ring stats: produced=926 dropped=1123 consumed=923 filled=3 encFrames=3622 repeated=31 duped=2668
[2737140] Ring stats: produced=1005 dropped=1273 consumed=1002 filled=3 encFrames=3926 repeated=31 duped=2893
[2742140] Ring stats: produced=1083 dropped=1403 consumed=1080 filled=3 encFrames=4226 repeated=31 duped=3115
[2747140] Ring stats: produced=1159 dropped=1513 consumed=1156 filled=3 encFrames=4525 repeated=32 duped=3337
[2752171] Ring stats: produced=1223 dropped=1574 consumed=1223 filled=0 encFrames=4829 repeated=47 duped=3559
[2757218] Ring stats: produced=1290 dropped=1641 consumed=1288 filled=2 encFrames=5131 repeated=69 duped=3774
[2762234] Ring stats: produced=1368 dropped=1741 consumed=1365 filled=3 encFrames=5431 repeated=71 duped=3995
[2767234] Ring stats: produced=1450 dropped=1826 consumed=1447 filled=3 encFrames=5732 repeated=71 duped=4214
[2772265] Ring stats: produced=1533 dropped=1890 consumed=1530 filled=3 encFrames=6034 repeated=74 duped=4430
[2777328] Ring stats: produced=1624 dropped=1935 consumed=1621 filled=3 encFrames=6337 repeated=76 duped=4640
[2782375] Ring stats: produced=1709 dropped=2027 consumed=1706 filled=3 encFrames=6640 repeated=77 duped=4857
[2787437] Ring stats: produced=1794 dropped=2138 consumed=1791 filled=3 encFrames=6944 repeated=77 duped=5076
[2792062] SR_Stop called - video frames=7220 audio frames=5638
[2792062] Final ring stats: produced=1869 dropped=2194 consumed=1867 filled=2
[2792125] Recording-Thread done: total frames=7224 repeated=83 realDuration=120.4549415000001s
 


4) Settings : UltraFast + 30 FPS + High 4:2:0 + 192k

result, fps varies from 27 to 33 during recording

2 Min recording, Mp4 132 Mo (1mn59s.H.264.3840x2160.AAC) Ok
Log

Quote


=== AirCapRec session started 05-18-2026 10:08:00 ===
    Log file: D:\Bureau\AirCapRec v0.7.6 beta build 2026-05-17\AirCapRec_debug.log
[3751406] HighlightClicks=1  Origin=(0,0)  MMCSS=1
[3751406] Audio requested: sys=1 mic=0 bitrate=192000
[3751406] Audio_Init OK
[3751406] SR_Init OK: Capture_20260518_100800.mp4  30fps  CRF=24  preset=ultrafast  tune=zerolatency  audio=1
[3751406] SR_Start OK
[3751406] Recording-Thread started
[3751406] MMCSS AvSetMmThreadCharacteristicsW('Capture') = OK
[3751421] Opening MP4: Capture_20260518_100800.mp4  (3840x2160 @ 30fps)
[3751421] MP4Min_Open OK
[3756437] Ring stats: produced=77 dropped=94 consumed=74 filled=3 encFrames=149 repeated=1 duped=74
[3761500] Ring stats: produced=153 dropped=226 consumed=150 filled=3 encFrames=301 repeated=1 duped=150
[3766562] Ring stats: produced=229 dropped=331 consumed=226 filled=3 encFrames=453 repeated=1 duped=226
[3771562] Ring stats: produced=304 dropped=453 consumed=301 filled=3 encFrames=603 repeated=1 duped=301
[3776562] Ring stats: produced=379 dropped=604 consumed=376 filled=3 encFrames=753 repeated=1 duped=376
[3781562] Ring stats: produced=454 dropped=746 consumed=451 filled=3 encFrames=903 repeated=1 duped=451
[3786625] Ring stats: produced=530 dropped=854 consumed=527 filled=3 encFrames=1055 repeated=1 duped=527
[3791625] Ring stats: produced=605 dropped=957 consumed=602 filled=3 encFrames=1205 repeated=1 duped=602
[3796656] Ring stats: produced=679 dropped=1035 consumed=677 filled=2 encFrames=1356 repeated=1 duped=678
[3801734] Ring stats: produced=756 dropped=1148 consumed=753 filled=3 encFrames=1508 repeated=1 duped=754
[3806796] Ring stats: produced=832 dropped=1242 consumed=829 filled=3 encFrames=1660 repeated=1 duped=830
[3811875] Ring stats: produced=908 dropped=1278 consumed=905 filled=3 encFrames=1812 repeated=1 duped=906
[3816921] Ring stats: produced=984 dropped=1331 consumed=981 filled=3 encFrames=1964 repeated=1 duped=982
[3822000] Ring stats: produced=1060 dropped=1389 consumed=1057 filled=3 encFrames=2116 repeated=1 duped=1058
[3827062] Ring stats: produced=1136 dropped=1480 consumed=1133 filled=3 encFrames=2268 repeated=1 duped=1134
[3832125] Ring stats: produced=1211 dropped=1507 consumed=1208 filled=3 encFrames=2420 repeated=2 duped=1210
[3837125] Ring stats: produced=1286 dropped=1555 consumed=1283 filled=3 encFrames=2570 repeated=2 duped=1285
[3842125] Ring stats: produced=1361 dropped=1687 consumed=1358 filled=3 encFrames=2720 repeated=2 duped=1360
[3847203] Ring stats: produced=1437 dropped=1779 consumed=1434 filled=3 encFrames=2872 repeated=2 duped=1436
[3852250] Ring stats: produced=1513 dropped=1887 consumed=1510 filled=3 encFrames=3024 repeated=2 duped=1512
[3857250] Ring stats: produced=1587 dropped=1955 consumed=1584 filled=3 encFrames=3174 repeated=3 duped=1587
[3862250] Ring stats: produced=1662 dropped=2074 consumed=1659 filled=3 encFrames=3324 repeated=3 duped=1662
[3867328] Ring stats: produced=1736 dropped=2150 consumed=1735 filled=1 encFrames=3476 repeated=3 duped=1738
[3871046] SR_Stop called - video frames=3588 audio frames=5598
[3871046] Final ring stats: produced=1791 dropped=2167 consumed=1788 filled=3
[3871078] Recording-Thread done: total frames=3588 repeated=6 realDuration=119.6572989000001s
 

In all cases playing duration is equal to recording duration and no more problems with VLC

A save of settings on exit could be cool
The only thing strange is that mp4 file with setting (UltraFast + 30 FPS + High 4:4:4) is bigger than mp4 file with setting (UltraFast + 60 FPS + High 4:4:4)

Edited by wakillon

AutoIt 3.3.18.0 X86 - SciTE 4.4.6.0WIN 11 24H2 X64 - Other Examples Scripts

Posted

Thanks for the complete set of logs! Here's the full picture across all four configurations:

All recordings have the correct duration — no more drift, the file matches real time in every case.

4K @ 30 fps with High 4:4:4 is the best setting for your system — lowest drop rate (23%) and almost no duplicated frames (7%). This gives you the cleanest capture.

Interestingly, switching to High 4:2:0 doesn't help — it actually increases drops and dupes. That's because 4:2:0 forces an extra color conversion step (BGRA→YUV) inside x264 which costs additional CPU time, while 4:4:4 takes the raw pixel data directly with no conversion overhead.

4K @ 60 fps stays limited to ~30 real frames per second regardless of profile — this is a WGC API throughput ceiling on your hardware, not something AirCapRec can work around.

4 hours ago, wakillon said:

A save of settings on exit could be cool
The only thing strange is that mp4 file with setting (UltraFast + 30 FPS + High 4:4:4) is bigger than mp4 file with setting (UltraFast + 60 FPS + High 4:4:4)

Good catch — it's counterintuitive but makes sense once you look at the logs:

At 60 fps, about 60% of your frames are duplicates (WGC only delivers ~30 real frames per second). x264 is very efficient at encoding duplicate frames — a P-frame that says "nothing changed" costs almost zero bytes. So 60 fps = lots of near-free frames.

At 30 fps, nearly every frame is a unique capture with real pixel changes. Each frame needs significantly more bits to encode. So 30 fps = fewer frames but each one is expensive.

Result: 30 fps × high bits per frame > 60 fps × many near-zero-cost duplicates.

This is actually a sign that things work correctly!

Regarding saving settings on exit — good idea, it's on the list for a future version.

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...