【问题标题】:Direct show capture pin configure run time live gamer portable 2 plus直接显示捕获引脚配置运行时实时游戏玩家便携式 2 加
【发布时间】:2019-05-30 10:14:08
【问题描述】:

我正在尝试配置 Live Gamer Portable 2 Plus 的输出引脚以降低帧速率。通过 GraphStudioNext,我可以通过捕获引脚访问配置并更改帧速率。

但是,当我通过 API 在捕获引脚上尝试 IAMStreamConfig 时,它只允许我选择默认设置,而不能使用我可以通过 GraphStudioNext 执行的相同帧速率。

我应该使用不同的接口来获取在 GraphStudioNext 中看到的输出引脚流配置吗?

以下是发送标准格式的默认 Delphi 例程,我对此进行了修改,因此我更改了帧速率并保留了所有其他参数并且它工作正常。

      if (Format.Width = MediaHeader.bmiHeader.biWidth) and
        (Format.Height = MediaHeader.bmiHeader.biHeight) and
        (Format.AvgTimePerFrame = MediaHeader.AvgTimePerFrame) and
        (Format.BitsPerPixel = MediaHeader.bmiHeader.biBitCount) then
      begin
        MediaHeader.AvgTimePerFrame := NewRate;
        CheckNull(AMStreamConfig, 'IAMStreamConfig');
        CheckError(AMStreamConfig.SetFormat(MediaType));
        Exit;
      end;

【问题讨论】:

    标签: delphi video video-capture directshow


    【解决方案1】:

    这有点复杂,因为某些相机可能在一定范围内灵活地支持速率,而其他相机可能具有固定的支持速率集。一般来说,您应该能够构建具有所需帧速率的媒体类型,并且设备会在请求的数量内捕获尽可能多的内容(或者有些人会忽略您的设置)。

    但是,规范行为是使用IAMStreamConfig 枚举格式,以便您拥有MinFrameIntervalMaxFrameInterval 感兴趣格式的范围。然后(可选)也使用IAMVideoControl::GetFrameRateList 检索支持/建议的速率集,即您在 GraphEdit/GraphStudio 中看到的速率。

    然后您可以更新媒体类型,并通过IAMStreamConfig::SetFormat 指示相机使用具有特定帧速率的媒体类型。

    【讨论】:

    • 感谢您的快速回答。我尝试使用 iamstreamconfig::setformat 将速率更改为从 graphstudio 中可选择的一个。然而,它总是只选择 10 个公布的利率之一。但是接下来通过图形工作室,我可以将速率设置为我输入的值。默认为 1920x1080 mjpg 60fps 24bpp,如果我通过可行的图形工作室尝试 30 fps,但通过 directshow 代码却不行。设置格式是否采用不同的参数类型?
    • 当您从 GraphStudioNext 中选择格式时,您可以在连接的 pin 上查看有效的媒体类型。在您的代码中,您应该构建相同的媒体类型,然后IAMStreamConfig::SetFormat 和 pin 连接应该建立一个具有该格式的 pin 连接。
    • 我已经添加了原始代码来设置可用的格式,我已经修改了它以不检查帧速率,我真的应该从头开始填充 FORMAT_Videoinfo,还是这些命令需要 FORMAT_VideoInfo2 结构?
    • 您可以在AMStreamConfig.SetFormat调用之前修改数据。确保在连接引脚之前也这样做。
    • 当前代码设置连接后的格式。建立连接后,我还可以对 graphstidionext 进行更改。我在设置格式之前进行了更改,但过滤器只是转到最接近的标准默认值。当我在翻新时做同样的事情时,它只会改变路线。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多