【问题标题】:How do I get each frame from the camera when it is recording video in a Windows Phone 8 app?在 Windows Phone 8 应用程序中录制视频时,如何从相机获取每一帧?
【发布时间】:2014-05-30 17:22:35
【问题描述】:

我正在开发一个远程呈现应用程序,该应用程序使用 Windows Phone 8 设备将图像传回台式机/平板电脑。我发现了几个示例,这些示例展示了如何录制视频,甚至将其保存到文件中,但没有一个示例展示了如何在流式传输时从相机中获取每一帧。我看到了一个示例,它使用 FileSink 对象将视频保存到存储中,但在生成每一帧时没有类似的东西。每当生成新的位图/帧时,我也看不到在相机对象中触发的事件。有这样一个拍照事件,但是拍照很慢,不能用于流式视频。

在视频录制模式下,如何获取相机生成的每一帧?我当然需要这个,这样我就可以通过台式机/平板电脑的套接字链接发送每一帧。

【问题讨论】:

标签: video windows-phone-8 camera


【解决方案1】:

如果您使用的是 PhotoCaptureDevice 或 PhotoCamera,您可以使用它

camera.GetPreviewBufferArgb(previewBuffer);

  camera.GetPreviewBufferArgb32(previewBuffer);

其中previewBuffer 是帧的像素阵列。您可以分配给WriteableBitmap.Pixels

或通过套接字传递原始数组并将其分配给桌面上的图像。

【讨论】:

  • 我正在使用这些对象,所以我可以试试你的技术。有什么方法可以在新框架可用时得到通知,这样我就不必轮询了?使用“拍照”技术,我可以分配一个事件处理程序,以便在相机拍照时得到通知。在录制视频模式下,每一帧都有类似的事件吗?这样我就可以在每次出现帧时使用你的技术。
  • 对于PhotoCaptureDevice 对象PreviewFrameAvailable 事件可用。即使没有这个,你也不需要投票。初始化后随时获取,帧将可供您使用。
  • 感谢您提供的信息。
猜你喜欢
  • 2013-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多