首页 文章

C#如何在视频窗口上运行DirectShow过滤器图形调整大小,最小化,设备丢失,重置?

提问于
浏览
0

我们的应用程序使用C#/ WinForms / VMR9 / DirectShowLib-2005来播放本地视频文件或使用第三方DirectShow过滤器通过udp接收(和呈现)实时视频流 . 视频流使用H.265编码并发送1080p文件 .

我也有DirectShow过滤器为我录制实时视频源到本地文件 .

当我在视频播放或实时视频输入播放期间调整表单大小时,我会丢失设备并需要重置它 . 我释放了所有资源,但设备重置仍然失败,除非我也破坏图形 . 但它用于接收我的实时视频输入并进行录制 .

所以,问题是我想通过调整大小,移动到另一台显示器,设备丢失或重置来保持视频输入不中断 . 我有什么选择来实现这一目标?我们可以考虑将代码转换为WPF / WF,购买商用或使用免费插件来完成工作等 . 在这里需要建议 .

关于同一主题的第二个问题,如果可以的话 . 当实时馈送记录到本地文件并且我们在视频窗口中播放该实时馈送时,我们还显示时间线(滑块控件),表示从直播视频馈送开始到当前时刻的时间(在实时馈送激活时向前移动) . 我需要让用户能够选择之前的任何时刻并立即播放录制视频的那部分,而实时馈送仍然记录到同一文件中 . 在查看录制视频的一部分后,我需要知道如何让用户继续观看实时视频 .

我不确定我们应该使用哪种技术来实现这一目标 . 我将不胜感激任何帮助 .

非常感谢你 .

1 回答

  • 0

    记录过滤器图形对意外状态转换很敏感,并且假设记录“立即”发生而没有暂停和延续,包括由于必须重置视频硬件或更改格式而引起的 .

    典型的方法是将记录与其他活动分离为单独的图形 . 专用记录图将接收外部产生的数据并将其记录到文件中(或流到网络) . 可以根据需要灵活地重置或重新配置在另一个图表中运行的回放和演示活动 .

    也可以看看:

相关问题