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

C# 如何保持DirectShow过滤器图形在视频窗口上运行调整大小、最小化、设备丢失、重置?,c#,wpf,winforms,directshow.net,h.265,C#,Wpf,Winforms,Directshow.net,H.265,我们的应用程序使用C/WinForms/VMR9/DirectShowLib-2005播放本地视频文件,或者使用第三方DirectShow过滤器通过udp接收和呈现实时视频流。视频流使用H.265编码并发送1080p文件 我还有一个DirectShow过滤器,它可以将实时视频源录制到本地文件中 当我在视频播放或实时视频提要播放期间调整窗体大小时,我丢失了一台设备,需要重置它。我正在释放所有资源,但是设备重置仍然失败,除非我也破坏了图形。但它是用来接收我的现场视频并录制的 所以,问题是我想通过调整

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

我还有一个DirectShow过滤器,它可以将实时视频源录制到本地文件中

当我在视频播放或实时视频提要播放期间调整窗体大小时,我丢失了一台设备,需要重置它。我正在释放所有资源,但是设备重置仍然失败,除非我也破坏了图形。但它是用来接收我的现场视频并录制的

所以,问题是我想通过调整大小、移动到另一个监视器、设备丢失或重置来保持视频馈送记录不中断。我有什么选择来实现这一点?我们可以考虑将代码转换为WPF/WF,购买市售或使用免费插件来完成这项工作,等等。这里需要一个建议。 关于同一主题的第二个问题,如果可以的话。当实况转播被录制到本地文件,并且我们在视频窗口中回放该实况转播时,我们还显示一个时间线滑块控件,表示从实况转播开始到实况转播激活时向前移动的当前时刻的时间。我需要让用户能够及时选择任何之前的时刻,并立即播放录制的视频的这一部分,而实时提要仍然录制到同一个文件中。在查看了部分录制的视频后,我需要知道如何让用户继续观看直播

我不确定我们应该使用哪种技术来实现这一点。我将感谢任何帮助


非常感谢。

录制过滤图对意外的状态转换非常敏感,假设录制立即进行,不会暂停和继续,包括由于需要重置视频硬件或更改格式而导致的录制

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

另见: