DirectShow 修该摄像机采集分辨率时,提示错误

widlisyx 2016-09-30 11:13:39
int hr;
IntPtr intPtr = IntPtr.Zero;
try
{
// 修该分辨率
object streamConfig = null;
//int resultHr = capGraph.FindInterface(vdCap, gTemp, capFilter, gTemp, out ppvideoCap);
int resultHr = capGraph.FindInterface(PinCategory.Capture,
MediaType.Video,
capFilter,
typeof(IAMStreamConfig).GUID,
out streamConfig);
if (resultHr < 0)
Marshal.ThrowExceptionForHR(resultHr);
IAMStreamConfig videoStreamConfig = streamConfig as IAMStreamConfig;
if (videoStreamConfig == null)
{
throw new Exception("Failed to get IAMStreamConfig");
}

// 修改分辨率
AMMediaType ammtp = new AMMediaType();
videoStreamConfig.GetFormat(ammtp);
VideoInfoHeader pvihdr = new VideoInfoHeader();
Marshal.PtrToStructure(ammtp.formatPtr, pvihdr);
pvihdr.BmiHeader.Height = 720; //修改采集视频的高为720
pvihdr.BmiHeader.Width = 1080; //修改采集视频的宽为1080

int nSizeOfHeaderInfo = Marshal.SizeOf(pvihdr);
intPtr = Marshal.AllocHGlobal(nSizeOfHeaderInfo);

IntPtr newConfigHeaderInfo = IntPtr.Zero;
Marshal.StructureToPtr((object)pvihdr, intPtr, true);
ammtp.formatPtr = newConfigHeaderInfo;
videoStreamConfig.SetFormat(ammtp);

}
catch(Exception ex)
{

}
finally
{
Marshal.FreeHGlobal(intPtr);
}
...全文
670 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
百灵工作室 2016-10-09
  • 打赏
  • 举报
回复
不同的摄像头,支持的分辨率不同
rightorwrong 2016-10-09
  • 打赏
  • 举报
回复
要根据支持的分辨率进行设置

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧