我们有一个QT应用程序,它将以编程方式生成的QPixmaps逐个呈现给显示器,我们希望将此输出保存到视频文件中.
我知道在过去人们建议使用ffmpeg或opencv与Qt这样做.然而,在Qt 5中,新的QtMultimedia模块似乎暴露了一些此类功能.
例如,现在可以使用QdiaRecorder在Qt 5中保存来自摄像机源的视频,如http://doc.qt.io/qt-5/qmediarecorder.html#details中所述.
有了这个新功能,有没有办法使用Qt 5来保存我们以编程方式生成的视频,或者我最好还是使用第三方库?
我刚刚升级到第三方库的新版本(Qt 5.0的QtPropertyBrowser).升级导致我的应用程序中出现了一个新错误,我设法跟踪库中的静态函数.该函数包含一个静态变量,该函数在第一次调用函数时初始化.我在初始化之后复制了该变量的内存位置,并按预期发现,在多个后续调用中,该变量保留在同一内存位置.然后在随后的函数调用中,我注意到静态变量中的内存位置和数据已经改变(导致程序中的错误).
代码看起来像这样:
class ClassA
{
//....
};
class ClassB
{
public:
ClassA* ptrMember;
};
static ClassA *theFunction()
{
static ClassB statVar = {0};
if(!statVar.ptrMember)
statVar.ptrMember = new ClassA();
return statVar.ptrMember;
}
Run Code Online (Sandbox Code Playgroud)
我发现在多次调用theFunction()存储的地址时&statVar始终保持不变,但随后在后续调用中,地址&statVar不同而且statVar.ptrMember为空.
我不认为这是可能的!有任何想法吗?