如何列出相机可用的视频分辨率

2024-01-25

如果我的电脑上连接了多个摄像头...我想知道特定摄像头的最佳可用分辨率...

例如,有些相机是高清或全高清(1,280×720像素(720p)或1920x1080像素(1080i/1080p)),或者最常见的是网络相机......

我想至少知道相机正常工作的最佳视频模式...(相机工作的模式)

我的工作是使用 C# 进行 WPF(我使用的是 Directshow)

提前致谢


这是我写的代码,它非常适合我

public static List<Point> GetAllAvailableResolution(DsDevice vidDev)
{
    try
    {
        int hr;
        int max = 0;
        int bitCount = 0;
        IBaseFilter sourceFilter = null;
        var m_FilterGraph2 = new FilterGraph() as IFilterGraph2;
        hr = m_FilterGraph2.AddSourceFilterForMoniker(vidDev.Mon, null, vidDev.Name, out sourceFilter);
        var pRaw2 = DsFindPin.ByCategory(sourceFilter, PinCategory.Capture, 0);
        var AvailableResolutions = new List<Point>();
        VideoInfoHeader v = new VideoInfoHeader();
        IEnumMediaTypes mediaTypeEnum;
        hr = pRaw2.EnumMediaTypes(out mediaTypeEnum);
        AMMediaType[] mediaTypes = new AMMediaType[1];
        IntPtr fetched = IntPtr.Zero;
        hr = mediaTypeEnum.Next(1, mediaTypes, fetched);

        while (fetched != null && mediaTypes[0] != null)
        {
            Marshal.PtrToStructure(mediaTypes[0].formatPtr, v);
            if (v.BmiHeader.Size != 0 && v.BmiHeader.BitCount != 0)
            {
                if (v.BmiHeader.BitCount > bitCount)
                {
                    AvailableResolutions.Clear();
                    max = 0;
                    bitCount = v.BmiHeader.BitCount;
                }
                AvailableResolutions.Add(new Point(v.BmiHeader.Width, v.BmiHeader.Height));
                if (v.BmiHeader.Width > max || v.BmiHeader.Height > max)
                    max = (Math.Max(v.BmiHeader.Width, v.BmiHeader.Height));
            }
            hr = mediaTypeEnum.Next(1, mediaTypes, fetched);
        }
        return AvailableResolutions;
    }

    catch (Exception ex)
    {
        Log(ex);
        return new List<Point>();
    }
}

(例如,可以将其添加到 WPF-MediaKit 中的 VideoCaptureElement 中)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何列出相机可用的视频分辨率 的相关文章

随机推荐

  • 将 XAMPP 文件夹移至新计算机,现在在尝试启动 MySQL 时收到“(XAMPPErrorDomain error 1.)”

    我最近不得不在 MacBook 上从头开始重新安装 Lion 我保存了 XAMPP 文件夹并将其移至新安装中的应用程序文件夹中 我可以启动 Apache 但不能启动 MySQL 我收到此错误 The operation couldn t b
  • 将 JSON 数据映射到 jqGrid

    下面的代码创建一个 javascript 对象 将其转换为 JSON 并尝试将其加载到 jqGrid 中 我一直在关注维基示例 我觉得我已经非常精确地遵循了他们的指导 但仍然没有运气 谁能看到这里缺少的链接是什么 jQuery docume
  • 在 IOS 中自定义 AirDrop 警报描述

    我有以下代码可以发送URL通过AirDrop NSString selfUrlScheme NSBundle mainBundle infoDictionary valueForKey CFBundleURLTypes objectAtIn
  • 使用 scapy 作为 MITM 即时更改数据包

    假设我设法处于客户端和服务器之间的通信中间 假设我打开一个热点并导致客户端仅通过我的机器连接到服务器 如何更改客户端发送和接收的数据包而不中断我自己与其他服务的通信 必须有一种方法可以通过我的脚本路由客户端发送和即将接收 在将它们转发给他之
  • Silverlight HTML Bridge 打印 window.print() 空白页

    我正在使用 HTML 桥 window print 打印 20 30 之间的范围 客户说正在打印空白页 我们只能在他们的机器上重现它 这是 xaml 中的代码 它将所有页面合并到一页中并打印它 这段代码可以工作并为我打印所有页面 我们只在
  • 对于跟踪和避免循环中的错误,您有哪些技巧?

    我刚刚发现 再次 一个实时浪费错误 如下 for int i 0 i lt length i Lots of code for int j 0 i lt length j Lots of code 您是否注意到前面的内部 i 应该是 j 我
  • TSQL md5 哈希与 C# .NET md5 不同

    我生成了一个 md5 哈希值 如下所示 DECLARE varchar varchar 400 SET varchar SELECT CONVERT VARCHAR 2000 HASHBYTES MD5 varchar 2 哪个输出 785
  • 目前不会命中断点,源代码与原始代码不同(即使在清理/重建之后)

    NET 4 控制台应用程序 该项目设置为 调试 模式 所设置的断点位于主 启动项目中 我在解决方案和项目级别上右键单击 gt 清理 然后右键单击 gt 重建 按照中的说明进行操作这个问题 https stackoverflow com qu
  • 在 Node.js 中请求相同模块时 require() 如何工作

    当 Node js 中多次需要一个模块时 它会返回相同的对象 因为require 缓存之前的调用 假设我有一个主记录器模块 可以注册子记录器模块 这些实际上是通过主记录器模块进行记录的log 功能 但这里不相关 我在主记录器模块中有类似的内
  • 如何从 android.support.v7.widget.Toolbar 中删除顶部和底部填充?

    我正在尝试放置一个SlidingTabLayout https github com google iosched blob master android src main java com google samples apps iosc
  • 如何在方法调用时将数组解包为不同的参数

    我想知道是否可以在接受 vargs 的方法调用上将对象数组解压到单独的对象中 这个问题类似于this one https stackoverflow com questions 6062618 java unpacking argument
  • 如果是超链接,则转到外部网站

    我在每一行的 gridview 中都有一个指向 aspx 页面的 视图 链接 根据资源类型 1 文件 或 2 超链接 它应该下载文件或转到提到的超链接
  • Angularjs HTML5 视频开放

    我正在加载 html5 mp4 视频 我想在视频结束时从角度范围触发功能 我尝试了下面的简单代码 但 onending 事件无法在角度范围内找到该函数 HTML
  • EJB3事务回滚

    我在 EJB3 无状态会话 bean 中使用 CMT 我还创建了自己的异常 并带有注释 ApplicationException rollback true 当我想回滚事务时 是否必须使用 context setRollbackOnly 我
  • 使用 seq2seq API 的 Tensorflow 序列到序列模型(版本 1.1 及更高版本)

    我在用着TensorFlow v 1 1 我想实施一个序列到序列使用 tf contrib seq2seq API 的模型 然而 我很难理解如何使用提供的所有函数 BasicDecoder Dynamic decode Helper Tra
  • 删除重复的重复字符

    我的存储过程中有一个字符串 例如 sam bob or 从上面的字符串中我必须从中删除多个逗号 它必须看起来像 sam bob 或者仅当 then 我必须仅使用 Sql Server 函数 我使用 Sql Server 2008 和 Net
  • ADODB SQL 语法 - 使用 Excel 工作表访问表内连接

    我有一个项目 用户需要填写 Excel 文件 然后将数据导出到 Access 数据库 Excel文件中收集的数据需要分3步导出 1 导出数据集1条记录 2 查询新导入记录的主键 自动编号 Access 3 导出数据设置 2 记录 其中包括填
  • 尾部斜杠给出内部服务器错误

    我希望我的所有页面都能正常工作 无论用户是否在末尾添加了尾部斜杠 以下行有效 RewriteRule index page 0 9 cmstut index php page 1 QSA L 但以下行会导致内部服务器错误 这是最后一行 该行
  • 对于 TBitmap,FMX 中是否有相当于 FloodFill 的功能?

    我正在从 VCL 转换为 FMX 在VCL中 TBitmap的TCanvas中有一个名为FloodFill的函数 它允许TBitmap的画布充满特定的颜色 直到在位图的画布上达到另一种特定的颜色 FMX 中有与此功能等效的函数吗 根据 RR
  • 如何列出相机可用的视频分辨率

    如果我的电脑上连接了多个摄像头 我想知道特定摄像头的最佳可用分辨率 例如 有些相机是高清或全高清 1 280 720像素 720p 或1920x1080像素 1080i 1080p 或者最常见的是网络相机 我想至少知道相机正常工作的最佳视频