Archive 2021 年 12 月 12 日

.net core 调用 winrt 运用时的关键

这两日想写一个简单的视频合成的小工具,如果不是为了分发使用,直接脚本ffmepg或直接用python便能完成了,然而现在遇到这样需要,所以考虑直接用.net+winform的形式快速完成。 看到win rt里的视频编辑颇为简单,于是打算直接用win ui3写个小工具,结果发现这东西,跟ump不清不楚的关系,由于是自用,部署起来超级麻烦,而最简单的方法是发布到微软应用商店,然后再下载,这是在开什么玩笑。 于是改了个方法,采用.net core6,创建了一个winform的应用,由于视频合成需要使用overlay layer,而对于绿幕之类的要进行自动透明,因此必然要用到Chroma Key技术让通道透明,这一块是需要自己完成的。 通过winrt 的media可以在CompositeFrame里直接使用directx,相当于可以直接使用gpu合成,根据使用大数据算法的经验来说,这样的效率肯定会高很多。 结果提示必须要使用win2d这个库,一引用了这个库后,立即惨不忍睹,因为.net core5.0以上的运行时根本不支持这个,于是又去翻了下微软的文夹,发现说得不明不白的。 关键是在引用win2d后,提示一大堆引用的接口找不到,很显然这些接口是需要有一个地方进行定义的,完全不熟悉这方面,着实麻烦。 msdn上给出来的解决方案描述上很容易让人产生偏颇,例如文档上是这样写的: .NET Core 是 .NET 平台的重点,.NET 5 是最新主要版本。 它是一个开源的跨平台运行时,可用于构建设备、云和 IoT 应用程序。 以前版本的 .NET Framework 和 .NET Core…

Read More