c++ - 桌面/屏幕视频采集/录像库 "pc not mobile "[c++/Qt]

标签 c++ qt

所以我一直在寻找类似这样的东西,要么是库,要么是一种方法,但它要么适用于手机,要么不适用于菜鸟 :D

基本上我想捕获全屏视频,用户可以在其中以多种格式停止/开始/保存视频。

我想过捕获屏幕“图像”并将它们组合起来,但我认为这会占用大量 CPU 资源,而且我认为有更好的方法。

最佳答案

我不认为有一种 Qt 方法可以完美地做到这一点。您可以使用 QPixmap::grabWindow 从窗口获取像素图或截屏,如 this重复并将它们组合成视频。但这些都不是最佳选择,我怀疑它能否通过拍摄流畅的视频取悦您。

您需要使用特定于平台的功能和库。在 Linux 上你最好直接使用 OpenGL 或 X 共享的东西。在 Windows 上最好使用 Directx,而 Mac 最好使用 OpenGL。

SimpleScreenRecorder是一个基于 Linux 的屏幕录像机,用 Qt 编写。它是如此好用且易于使用的工具。它使您能够记录整个或部分屏幕以及音频。它是多线程的,非常流畅,支持许多视频编解码器。

SimpleScreenRecorder 在 GPL 下获得许可。您可以下载源代码并查看它。

关于c++ - 桌面/屏幕视频采集/录像库 "pc not mobile "[c++/Qt],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23728286/

相关文章:

QtCreator : Issues not displayed in Issue panel any more

c++ - 将 while(1) 循环中的文本插入到 QT 中的文本编辑器

c++ - QtConcurrent::run() 不接受 __stdcall/WINAPI 函数

c++ - 用独立于用户的等效项替换 time() 和 localtime()

c++ - cpp(15) : error C2182: 'input' : illegal use of type 'void'

c++ - 填充字符串数组或 char* 数组的问题

qt - 关于QGraphicsItem的 'itemChange()'的一个问题

c++ - map<T,T>::iterator 作为参数类型

c++ - 带符号的十六进制数字的格式化输出

c++ - 使用列中的组合框编辑 QTableView