Ffmpeg ffmpage win7屏幕记录光标不正常

Ffmpeg ffmpage win7屏幕记录光标不正常,ffmpeg,Ffmpeg,我在使用ffmpeg录制窗口7上的屏幕时遇到了一个问题 此处为快照: 所以,你们可以看到红色的大点是鼠标光标记录的。 我使用的是PPT默认铅笔,所以,实际上,光标是一个非常小的点。 但当你玩的时候,它变得如此巨大 我使用的命令: ffmpeg.exe -y -rtbufsize 500M -f gdigrab -framerate 5 -draw_mouse 1 -i desktop -f dshow -i audio=%s -af "highpass=f=200, lowpass=f=30

我在使用ffmpeg录制窗口7上的屏幕时遇到了一个问题

此处为快照:

所以,你们可以看到红色的大点是鼠标光标记录的。 我使用的是PPT默认铅笔,所以,实际上,光标是一个非常小的点。 但当你玩的时候,它变得如此巨大

我使用的命令:

ffmpeg.exe -y -rtbufsize 500M -f gdigrab -framerate 5  -draw_mouse 1 -i desktop -f dshow -i audio=%s -af "highpass=f=200, lowpass=f=3000" -c:v libx264 -r 5 -preset medium -tune zerolatency -crf 35 -pix_fmt yuv420p -c:a libvo_aacenc -ac 2 -b:a 48k  -fs 50M  -movflags +faststart
以前有人打过这个吗

谢谢

Wesley

通过编辑gdigrab.c(493)添加以下内容解决:

if (pos.x >= 0 && pos.x <= clip_rect.right - clip_rect.left &&
        pos.y >= 0 && pos.y <= clip_rect.bottom - clip_rect.top) {
    BITMAP bm;
    BOOL bRet = GetObject(info.hbmMask, sizeof(bm), &bm) == sizeof(bm);
    if(bRet) {
        int cx = bm.bmWidth;
        int cy = info.hbmColor ? bm.bmHeight : bm.bmHeight / 2;
        if(!DrawIconEx (gdigrab->dest_hdc, pos.x, pos.y, icon, cx, cy, 0, NULL, DI_NORMAL))
            CURSOR_ERROR("Couldn't draw icon");     
    }else{
        if (!DrawIcon(gdigrab->dest_hdc, pos.x, pos.y, icon))
            CURSOR_ERROR("Couldn't draw icon");
    }
}
if(pos.x>=0&&pos.x=0&&pos.y dest\u hdc、pos.x、pos.y、图标、cx、cy、0、NULL、DI\u NORMAL))
光标_错误(“无法绘制图标”);
}否则{
如果(!DrawIcon(gdigrab->dest_hdc,pos.x,pos.y,icon))
光标_错误(“无法绘制图标”);
}
}