gpt4 book ai didi

c++ - 设置 ITEMWriter 写入 4K 视频

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:45:48 24 4
gpt4 key购买 nike

本题是关于使用Window Media API输出4K WMV视频(虽然理论上WMV不支持输出到4K)

在 32 位和 64 位 Win10 上调用 IWMWriter->BeginWriting() 后(在两个系统上 BeginWriting() 返回 S_OK),程序占用大约 450MB 内存。

之后我开始使用 IWMWriter->AllocateSample() 分配样本缓冲区并使用 IWMWriter->WriteSample() 将其写入接收器。

在 64 位 Win10 上,转换可以正常完成,但在 32 位 Win10 上,WriteSample() 在写入几帧后失败并出现“内存不足”错误。

我在 2 个系统上看到的唯一区别是:在调用 BeginWriting() 之前,64Win10 占用 110 MB 内存,因此在调用 BeginWriting() 之后,使用 110+450。在 32 位 Win10 上,在 BeginWriting() 之前使用 150 MB,因此之后使用 150+450。

失败转换的峰值工作集只有 761MB,任何人都知道为什么在这种情况下 WriteSample() 返回内存不足。有什么解决方法吗?

==更新:=========================================== ==

源视频同时包含视频和音频,在失败的情况下程序写入视频和音频并且写入视频失败。

如果我从文件中取出音轨使其只包含视频,则转换可以正常完成。峰值工作集为 716MB。

最佳答案

这是关于视频编码器的内存要求:在此分辨率下,应用程序不适合 32 位应用程序的标准 2 GB 地址空间。您可能想链接 /LARGEADDRESSAWARE绕过内存不足的情况。

关于c++ - 设置 ITEMWriter 写入 4K 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38889312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com