screenRecoder
ffmpeg
This commit is contained in:
parent
6a860b632f
commit
a3f88b6fd4
@ -3,3 +3,4 @@
|
|||||||
#include "Options.h"
|
#include "Options.h"
|
||||||
#include "../functions/addWatermark.h"
|
#include "../functions/addWatermark.h"
|
||||||
#include "../functions/captureScreen.h"
|
#include "../functions/captureScreen.h"
|
||||||
|
#include "../functions/screenRecoder.h"
|
@ -133,6 +133,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="functions\addWatermark.h" />
|
<ClInclude Include="functions\addWatermark.h" />
|
||||||
<ClInclude Include="functions\captureScreen.h" />
|
<ClInclude Include="functions\captureScreen.h" />
|
||||||
|
<ClInclude Include="functions\screenRecoder.h" />
|
||||||
<ClInclude Include="Include\Include.h" />
|
<ClInclude Include="Include\Include.h" />
|
||||||
<ClInclude Include="Include\Options.h" />
|
<ClInclude Include="Include\Options.h" />
|
||||||
<ClInclude Include="Include\Overlay.h" />
|
<ClInclude Include="Include\Overlay.h" />
|
||||||
|
@ -27,5 +27,8 @@
|
|||||||
<ClInclude Include="Include\Overlay.h">
|
<ClInclude Include="Include\Overlay.h">
|
||||||
<Filter>Include</Filter>
|
<Filter>Include</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="functions\screenRecoder.h">
|
||||||
|
<Filter>functions</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
@ -1,7 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "addWatermark.h"
|
#include "addWatermark.h"
|
||||||
|
|
||||||
void captureScreen(std::string file_Name)
|
void captureScreen(std::string file_screenshot)
|
||||||
{
|
{
|
||||||
HDC hdcScreen;
|
HDC hdcScreen;
|
||||||
HDC hdcDIB;
|
HDC hdcDIB;
|
||||||
@ -28,7 +28,7 @@ void captureScreen(std::string file_Name)
|
|||||||
// Äîáàâëåíèå âàòåðìàðêè íà êîíòåêñò
|
// Äîáàâëåíèå âàòåðìàðêè íà êîíòåêñò
|
||||||
addWatermark(hdcScreen, hdcDIB, bmi);
|
addWatermark(hdcScreen, hdcDIB, bmi);
|
||||||
|
|
||||||
hFile = CreateFile(("C:\\Users\\" + (std::string)std::getenv("USERNAME") + "\\Documents\\vos.team\\" + file_Name).c_str(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
hFile = CreateFile(("C:\\Users\\" + (std::string)std::getenv("USERNAME") + "\\Documents\\vos.team\\" + file_screenshot).c_str(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||||
BITMAPFILEHEADER hdr = { };
|
BITMAPFILEHEADER hdr = { };
|
||||||
hdr.bfType = 0x4d42; // Áóêâû 'B' è 'M'
|
hdr.bfType = 0x4d42; // Áóêâû 'B' è 'M'
|
||||||
hdr.bfOffBits = sizeof(hdr) + sizeof(BITMAPINFOHEADER);
|
hdr.bfOffBits = sizeof(hdr) + sizeof(BITMAPINFOHEADER);
|
||||||
|
8
Overlay/functions/screenRecoder.h
Normal file
8
Overlay/functions/screenRecoder.h
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "addWatermark.h"
|
||||||
|
|
||||||
|
void screenRecoder(std::string file_video)
|
||||||
|
{
|
||||||
|
std::string command = "ffmpeg -f gdigrab -framerate 30 -i desktop -c:v libx264 -preset ultrafast -tune zerolatency -crf 25 -pix_fmt yuv420p " + ("C:\\Users\\" + (std::string)std::getenv("USERNAME") + "\\Documents\\vos.team\\" + file_video);
|
||||||
|
system(command.c_str());
|
||||||
|
}
|
@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
std::string file_Name = "screenshot_" + std::to_string(time(NULL)) + ".bmp";
|
std::string file_screenshot = "screenshot_" + std::to_string(time(NULL)) + ".bmp";
|
||||||
|
std::string file_video = "video_" + std::to_string(time(NULL)) + ".mp4";
|
||||||
|
|
||||||
switch (msg)
|
switch (msg)
|
||||||
{
|
{
|
||||||
case WM_HOTKEY:
|
case WM_HOTKEY:
|
||||||
@ -17,7 +19,11 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
|||||||
}
|
}
|
||||||
else if (wParam == 3)
|
else if (wParam == 3)
|
||||||
{
|
{
|
||||||
captureScreen(file_Name);
|
captureScreen(file_screenshot);
|
||||||
|
}
|
||||||
|
else if (wParam == 4)
|
||||||
|
{
|
||||||
|
screenRecoder(file_video);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WM_PAINT:
|
case WM_PAINT:
|
||||||
@ -83,6 +89,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
|
|||||||
RegisterHotKey(hwnd, 1, MOD_ALT, 0x5A);
|
RegisterHotKey(hwnd, 1, MOD_ALT, 0x5A);
|
||||||
RegisterHotKey(hwnd, 2, MOD_ALT, 0x58);
|
RegisterHotKey(hwnd, 2, MOD_ALT, 0x58);
|
||||||
RegisterHotKey(hwnd, 3, MOD_ALT, 0x50);
|
RegisterHotKey(hwnd, 3, MOD_ALT, 0x50);
|
||||||
|
RegisterHotKey(hwnd, 4, MOD_ALT, 0x56);
|
||||||
|
|
||||||
while (GetMessage(&Msg, NULL, 0, 0) > 0)
|
while (GetMessage(&Msg, NULL, 0, 0) > 0)
|
||||||
{
|
{
|
||||||
@ -100,6 +107,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
|
|||||||
UnregisterHotKey(hwnd, 1);
|
UnregisterHotKey(hwnd, 1);
|
||||||
UnregisterHotKey(hwnd, 2);
|
UnregisterHotKey(hwnd, 2);
|
||||||
UnregisterHotKey(hwnd, 3);
|
UnregisterHotKey(hwnd, 3);
|
||||||
|
UnregisterHotKey(hwnd, 4);
|
||||||
|
|
||||||
exit(0);
|
exit(0);
|
||||||
return Msg.wParam;
|
return Msg.wParam;
|
||||||
|
BIN
Overlay/video_1680232004.mp4
Normal file
BIN
Overlay/video_1680232004.mp4
Normal file
Binary file not shown.
BIN
Overlay/video_1680232580.mp4
Normal file
BIN
Overlay/video_1680232580.mp4
Normal file
Binary file not shown.
BIN
Overlay/video_1680232720.mp4
Normal file
BIN
Overlay/video_1680232720.mp4
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user