2014-11-06 48 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