2014-11-06 119 views
0

我需要在Windows Phone 8.1(没有Silverlight)从YUV/YCbCr格式相机的原始帧,我没有看到互联网上的任何例子,是否有可能使用MediaCapture或CameraPreviewImageSource (诺基亚SDK)?原始帧窗口手机8.1

感谢

回答

1

推荐的方法来处理在Windows Phone 8.1的原始视频帧是编写一个自定义MFT插件,然后通过AddEffectAsync添加到MediaCapture对象。 MFT在解码器和富含XAML的合成器之间充当DSP滤波器。

您可以选择想要在MFT中支持的色彩空间,Media Foundation将自动为您插入色彩空间转换器。请记住,电话上可用的色彩空间有限。也就是说,NV12是大多数视频设备的标准色彩空间,被认为是4:2:0的YUV色彩空间。

虽然这在理论上听起来很简单,但在实践中可能相当复杂。 MFT必须用C++/MoCom编写。编写MFT的确需要对C++和COM有相当深入的了解。我不想吓你一试,但它确实有一条学习曲线。

下面是Windows应用商店的一个示例,向您展示了如何创建MFT插件并将其添加到MediaCapture对象。不幸的是,无论出于何种原因,此示例未转换为通用应用。但是,转换应该很容易。由于这是一个非常重要的样本,我会要求我们将其作为通用应用发布。

Media capture using capture device sample

我希望这有助于

詹姆斯

+0

谢谢你的帮助詹姆斯。我早些时候看到,但我预计不会使用它。我还想知道这个例子是一个很好的例子吗?你认为我可以使用这个例子中提供的“GrayScale”代码吗?基本上,如果我没有错,相机捕获原始帧,压缩这些帧,然后用MFT,我将解压缩它们以获得那些原始帧?是不是太多使用手机的CPU? – 2014-11-06 23:48:18

+0

Hello Sebastien,“GrayScale”MFT是一个开始的好地方,应该很容易将其移植到Windows Phone Runtime应用程序。我曾与几个成功完成它的deverlopers合作。 – 2014-11-07 01:11:55

+0

当您通过“AddEffectAsync”添加MFT时,它会在编码器之前添加,因此您将获得“原始”未压缩帧。 – 2014-11-07 01:19:20