问题标签 [screen-grab]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xcode - 导出 Opengl ES 视频
XCode 能够从 iPad 捕获 Opengl ES 帧,这很棒!我想扩展此功能并捕获我的应用程序的整个 Opengl ES 电影。有办法吗?如果无法使用 XCode,我怎么能不费力气地对我的代码进行重大更改?非常感谢!
php - 在给定图像内容的 PHP 中显示图像
我正在使用 GrabzIt PHP 库,它返回网页的屏幕截图。
库返回要保存为文件的图像内容,例如:
我想在页面中显示此图像而不保存图像(使用服务器空间)。可能吗?
linux - 如何在 Linux 中创建 Alt+Tab 友好的全屏程序(如游戏)?
我想创建一个应用程序,我在窗口上绘制,无论是窗口还是全屏,我抓住鼠标但不拦截任何WM 键盘快捷键,如 Alt+Tab,并且每当用户输入/离开时我也需要得到通知重点。
Google Chrome、Firefox 或 gnome-terminal 等常见应用程序可以很好地处理这个问题(使用 F11 全屏,但仍然有 Alt+Tab),但它们不会抓住鼠标。
SDL 对这个用例的处理很差是出了名的:SDL_WM_GrabInput 抓取鼠标但也拦截 WM 快捷方式;并且 SDL_FULLSCREEN 本身似乎有某种自动抓取(不要问我为什么)。
一个解决方案可能是自己为 Alt+Tab 编写代码,但这很糟糕(并且对其他 WM 快捷方式没有帮助,例如更改到另一个工作区)。
另一种解决方案是不调用 SDL_WM_GrabInput,而是假装抓取:只需隐藏鼠标指针(使用 SDL_ShowCursor)并在用户移动时将其移回中心。这是丑陋的,但在实践中有效 - 当然除了 SDL_FULLSCREEN,因为它会自动抓取(与理智的实现不同)。支持全屏的 SDL 解决方案就是这样,但这仍然不是我想要的。我不想让黑客启用和禁用抓取,我想抓住鼠标而不是抓住键盘。
所以我对 SDL 很生气,想看看替代品。我想使用 SDL,但这不是必需的。
这个问题似乎在指出,SDL 实际上所做的是使用 XGrabKeyboard。通过阅读手册页,我并不清楚您是否可以在不抓住键盘的情况下抓住鼠标(我自己从未使用过 Xlib)。
我知道如何使用 GTK(即 Alt+Tab 友好的 gnome-terminal 品种)制作“假全屏”。我想这样做,再加上鼠标隐藏并将其移回中心(“假抓取”)可以做到这一点,但这感觉就像太多的胶带。必须有更简单的方法。(此外,我不想将 GTK 添加为依赖项;但我也不确定进行原始 Xlib 调用是否是个好主意)。
对此有什么好的解决方案?
我需要一个 Linux/X11 解决方案,但它最好是跨平台的 - 我知道这可以在 Windows 上顺利解决,所以也许有一个库可以做到这一点。(另外,我用 OpenGL 渲染,但这无关紧要)
PS:也许我对这个问题的理解很差,我没有问正确的问题,所以请随时指出我没有考虑过的方法。
html - How to Grab an Icon Image
I was browsing different websites for some images that I'd like to use for links. One, for example, is a Twitter image.
Normally you can hover over an image and press "control + click" to save as.
But on this particular website, the images are icons and don't allow me to grab them.
Here is a screen of select element which the image I want highlighted, and the html and css that goes with it.
How would I grab this icon? The icons are on this website: https://uchaguzi.co.ke/
live-streaming - 使用 libav-tools 进行实时屏幕抓取和流式传输
对于我的学校项目,我必须实时将屏幕抓取从 1 个站(即服务器)流式传输到另一个(即客户端),两者都运行 linux(ubuntu)。我正在使用 libav-tools(avconv 作为服务器端的编码器,avplay 作为客户端的播放器)
avconv 使用 x11grab 格式从屏幕抓取。
我的问题是:avconv 需要几秒钟来输出编码的视频。这个等待对于 RT 来说太长了。
我尝试过流式传输到 localhost 以避免网络影响速度,但似乎 avconv 仍然要为漫长的等待负责。此外,流式传输视频文件似乎要快得多,几乎是立即的。
该项目是用 C++ 实现的,并在一个 fork 中执行 avconv。
关于缩短程序的任何建议?
windows - ffmpeg record screen and save video file to disk as .mpg
I want to record the screen of my pc (using gdigrab on my windows machine) and store the saved video file on my disk as an mp4 or mpg file .I have found an example piece of code that grabs the screen and shows it in an SDL window here :http://xwk.iteye.com/blog/2125720 (The code is on the bottom of the page and has an english version) and the ffmpeg muxing example https://ffmpeg.org/doxygen/trunk/muxing_8c-source.html seems to be able to help encode audio and video into a desired output video file.
I have tried to combine these two by having a format context for grabbing the screen (AVFormatContext *pFormatCtx; in my code ) and a separate format context to write the desired video file (AVFormatContext *outFormatContextEncoded;).Within the loop to read packets from the input stream( screen grab stream) I directly encode write packets to the output file as shown in my code.I have kept the SDL code so I can see what I am recording.Below is my code with my modified write_video_frame() function .
The code builds OK but the output video can't be played by vlc. When I run the command
I get this output
Am I doing something wrong here? I am new to ffmpeg and any guidance on this is highly appreciated.Thank you for your time.
html - HTML 图像未加载?
我无法加载 html img <img src="tour1.tiff">
。控制台没有错误。当我尝试加载另一个 img 时,它会加载,但这个“tour.tiff”没有。我怀疑这是因为我从 Mac 的 Grab 应用程序中获取了图像。我选择了屏幕的一部分“抓取”并将其保存为 tour1.tiff 。
为什么这张图片没有加载,我如何让它加载?如果我需要更清楚,请在评论中说明。
ffmpeg - ffmper with vlc - 屏幕抓取太重,导致文件跳跃,帧丢失
我正在使用“vlc/ffmpeg”包来抓取屏幕并将其转换为 H.264 文件。
当主机负载很重时,就会出现问题。我需要保持正确的时间戳并使用 5 fps(相对较低的帧速率)。然而,有时生成的文件会向前跳跃几秒钟,显然是由于帧丢失。我可以处理掉帧,没关系,但我需要复制丢失的帧以保持正确的时序。
我的配置文件:
vlc.exe screen:// -I dummy --verbose=2 --one-instance :screen-fps=5 :screen-caching=10000 :sout=#transcode{venc=x264{preset=ultrafast,tune=zerolatency} ,vcodec=h264,fps=5,vb=3000,width=1024,height=576,acodec=none}:file{dst="C:\tmp\output.mp4"}
我应该添加/配置什么来保留正确的时间戳和剪辑持续时间?
非常感谢您的帮助。
android-studio - 适用于机器人的 FastLane Screengrab
我正在尝试将 fastlane screengrab 集成到 android 应用程序中,并且在执行命令时遇到了以下问题。屏幕截图。
windows - 在 Windows 10 中抓取某些窗口
我尝试抓取 Windows 10 上的特定窗口。我阅读了 MSDN 的一些文章以熟悉 API。我的目标是抓住一些特定的窗口,即使它们上面有一些窗口(相当于 OS X CGWindowList API
)。因此,如果有 2 个窗口:A
和B
,并且 windowsB
部分重叠 window A
,我希望能够捕获窗口A
内容,而不捕获B
部分覆盖窗口的窗口。
根据这个链接,有5种不同的截屏方式,如果我理解正确的话,它们中的大多数只能截取屏幕上的某些区域,即它们不区分窗口。唯一允许抓取特定窗口的 API 是“旧备用,GDI”。
我尝试使用GetWindowDC()
函数获取 Windows 的设备上下文,创建兼容的位图,然后使用位块传输 ( BitBlt()
)。但是,它似乎并不总是按预期工作。
我注意到 Windows 10 上的几个问题(未在其他操作系统上测试):
- 窗口的标题栏通常不会被捕获。我试图打开记事本并捕获窗口,但它没有被完全捕获,部分滚动条和标题栏没有被捕获。我试图捕获记事本的子窗口,但它没有按预期工作,而且一些子窗口的坐标似乎是错误的(
msctls_statusbar32msctls_statusbar32
记事本的子窗口的宽度是实际宽度的 3 倍)窗户)。 - 有些应用程序根本没有被捕获。例如,像“照片”、“计算”、“设置”这样的应用程序不会用这种方法捕获,当我尝试捕获它们时,我会得到一个黑色位图。应该有一个允许捕获此类窗口的 API,例如 TeamViewer 能够捕获这些窗口。似乎所有此类窗口都是按
ApplicationFrameHost.exe
进程呈现的。
有谁知道如何解决这些问题?