设置IWMWriter来编写4K视频
Set up IWMWriter to wirte 4K video
这个问题是关于使用Window Media API输出4K WMV视频(尽管理论上WMV不支持4K输出)
在32位和64位Win10上调用IWMWriter->BeginWriting()后(在两个系统上BeginWriting()都返回S_OK),程序占用大约450MB内存。
之后,我开始使用IWMWriter->AllocateSample()来分配样本缓冲区,并使用IWMWriter->WriteSample()将其写入sink。
在64位Win10上,转换可以优雅地完成,但在32位Win10上,WriteSample()在写入几帧后失败并出现"out of memory"错误。
我在2个系统上看到的唯一区别是:在调用BeginWriting()之前,64Win10占用110 MB内存,因此在调用BeginWriting()之后,使用110+450。在32位Win10上,在BeginWriting()之前使用150mb,因此在此之后使用150+450。
转换失败的峰值工作集只有761MB,有人知道为什么在这种情况下WriteSample()返回内存不足。有什么解决办法吗?
= =更新 : =============================================
源视频同时包含视频和音频,在失败的情况下,程序写入视频和音频,而写入视频失败。
如果我把音轨从文件中取出,所以它只包含视频,那么转换可以优雅地完成。峰值工作集为716MB
这是关于视频编码器的内存要求:在这个分辨率下,应用程序不适合32位应用程序的标准2gb地址空间。您可能需要与/LARGEADDRESSAWARE链接以绕过内存不足的情况。
- 如何在c++中录制具有精确帧时间戳的视频
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何使用OpenCV-C++编写*.mp4视频?
- 开放 CV 中的动态内存分配,用于视频处理
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- OpenCV QT,显示视频的帧(不使用while循环)
- FFmpeg——使用硬件加速进行视频解码
- 在 openCV 中手动停止视频
- 强制Qt相机视频格式
- 在macOS Mojave上尝试OpenCV视频捕获时"Abort Trap: 6"
- 应用程序在打开的简历中捕获视频后没有响应
- 使用 IMFSinkWriter 编码的视频的播放速度会根据宽度而变化
- 如何在 c++ 中通过 http 发送大型视频文件?
- 在 QLabel 中显示视频
- OpenGL 调试上下文警告 -"将使用视频内存作为缓冲区异议的来源
- 这个工厂类在这个C++视频中的意义何在?
- 如何使用Qt在新窗口中显示视频帧
- Qt GUI使用Qfiledialogbox和qlabel显示视频,这是我的代码
- ARtoolkit加载从4k相机索尼捕获的视频文件
- 设置IWMWriter来编写4K视频