如何从MediaCapture的GetAvailableMediaStreamProperties(MediaStreamType.Photo)中选择正确的IMediaEncodingProperties?

时间:2015-04-10 09:13:10

标签: windows-8 camera windows-runtime

我用过

IReadOnlyList<IMediaEncodingProperties> supportedResolutions = _mediaCapture.VideoDeviceController.GetAvailableMediaStreamProperties(MediaStreamType.Photo)

获得解决方案。

所以我得到了40个IMediaEncodingProperties。 在前18个IMediaEncodingProperties中,子类型为“YUY2”,接下来的22个子类型为“MJPG”。

我们将获得4个相同分辨率的IMediaEncodingProperties,例如 640×480

首先 IMediaEncodingProperties

    -       supportedResolutions[0] {Windows.Media.MediaProperties.VideoEncodingProperties} Windows.Media.MediaProperties.IMediaEncodingProperties {Windows.Media.MediaProperties.VideoEncodingProperties}
    -       [Windows.Media.MediaProperties.VideoEncodingProperties] {Windows.Media.MediaProperties.VideoEncodingProperties} Windows.Media.MediaProperties.VideoEncodingProperties
            Bitrate 147456000   uint
    -       FrameRate   {Windows.Media.MediaProperties.MediaRatio}  Windows.Media.MediaProperties.MediaRatio
            Denominator 1   uint
            Numerator   30  uint
            Height  480 uint
    +       PixelAspectRatio    {Windows.Media.MediaProperties.MediaRatio}  Windows.Media.MediaProperties.MediaRatio
            ProfileId   0   int
    +       Properties  {Windows.Media.MediaProperties.MediaPropertySet}    Windows.Media.MediaProperties.MediaPropertySet
            Subtype "YUY2"  string
            Type    "Video" string
            Width   640 uint
    +       Properties  {Windows.Media.MediaProperties.MediaPropertySet}    Windows.Media.MediaProperties.MediaPropertySet
            Subtype "YUY2"  string
            Type    "Video" string

第二个 IMediaEncodingProperties

-       supportedResolutions[1] {Windows.Media.MediaProperties.VideoEncodingProperties} Windows.Media.MediaProperties.IMediaEncodingProperties {Windows.Media.MediaProperties.VideoEncodingProperties}
-       [Windows.Media.MediaProperties.VideoEncodingProperties] {Windows.Media.MediaProperties.VideoEncodingProperties} Windows.Media.MediaProperties.VideoEncodingProperties
        Bitrate 147456000   uint
-       FrameRate   {Windows.Media.MediaProperties.MediaRatio}  Windows.Media.MediaProperties.MediaRatio
        Denominator 1   uint
        Numerator   15  uint
        Height  480 uint
+       PixelAspectRatio    {Windows.Media.MediaProperties.MediaRatio}  Windows.Media.MediaProperties.MediaRatio
        ProfileId   0   int
+       Properties  {Windows.Media.MediaProperties.MediaPropertySet}    Windows.Media.MediaProperties.MediaPropertySet
        Subtype "YUY2"  string
        Type    "Video" string
        Width   640 uint
+       Properties  {Windows.Media.MediaProperties.MediaPropertySet}    Windows.Media.MediaProperties.MediaPropertySet
        Subtype "YUY2"  string
        Type    "Video" string

19 IMediaEncodingProperties

-       supportedResolutions[18]    {Windows.Media.MediaProperties.VideoEncodingProperties} Windows.Media.MediaProperties.IMediaEncodingProperties {Windows.Media.MediaProperties.VideoEncodingProperties}
-       [Windows.Media.MediaProperties.VideoEncodingProperties] {Windows.Media.MediaProperties.VideoEncodingProperties} Windows.Media.MediaProperties.VideoEncodingProperties
        Bitrate 221184000   uint
-       FrameRate   {Windows.Media.MediaProperties.MediaRatio}  Windows.Media.MediaProperties.MediaRatio
        Denominator 1   uint
        Numerator   30  uint
        Height  480 uint
-       PixelAspectRatio    {Windows.Media.MediaProperties.MediaRatio}  Windows.Media.MediaProperties.MediaRatio
        Denominator 1   uint
        Numerator   1   uint
        ProfileId   0   int
+       Properties  {Windows.Media.MediaProperties.MediaPropertySet}    Windows.Media.MediaProperties.MediaPropertySet
        Subtype "MJPG"  string
        Type    "Video" string
        Width   640 uint
+       Properties  {Windows.Media.MediaProperties.MediaPropertySet}    Windows.Media.MediaProperties.MediaPropertySet
        Subtype "MJPG"  string
        Type    "Video" string

20 IMediaEncodingProperties

-       supportedResolutions[19]    {Windows.Media.MediaProperties.VideoEncodingProperties} Windows.Media.MediaProperties.IMediaEncodingProperties {Windows.Media.MediaProperties.VideoEncodingProperties}
-       [Windows.Media.MediaProperties.VideoEncodingProperties] {Windows.Media.MediaProperties.VideoEncodingProperties} Windows.Media.MediaProperties.VideoEncodingProperties
        Bitrate 221184000   uint
-       FrameRate   {Windows.Media.MediaProperties.MediaRatio}  Windows.Media.MediaProperties.MediaRatio
        Denominator 1   uint
        Numerator   15  uint
        Height  480 uint
+       PixelAspectRatio    {Windows.Media.MediaProperties.MediaRatio}  Windows.Media.MediaProperties.MediaRatio
        ProfileId   0   int
+       Properties  {Windows.Media.MediaProperties.MediaPropertySet}    Windows.Media.MediaProperties.MediaPropertySet
        Subtype "MJPG"  string
        Type    "Video" string
        Width   640 uint
+       Properties  {Windows.Media.MediaProperties.MediaPropertySet}    Windows.Media.MediaProperties.MediaPropertySet
        Subtype "MJPG"  string
        Type    "Video" string

这些IMediaEncodingProperties之间有什么区别。我该怎么用来拍摄静态照片?

1 个答案:

答案 0 :(得分:1)

这四者之间的唯一区别是他们的分子和比特率。我不确定这些属性中的任何一个是否与Photo相关,因为我只将它们与视频相关联,但为了安全起见或许抓住具有最大比特率和最大分子/分母比率的那个。