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

问题描述 投票:0回答:1

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

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

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

所以,问题是我想保持视频源的录制,不会因调整大小、移动到另一台显示器、设备丢失或重置而中断。为了实现这一目标,我有哪些选择?我们可以考虑将代码转换为 WPF/WF、购买商用或使用免费插件来完成这项工作等。在这里需要建议。

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

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

非常感谢。

c# wpf winforms directshow.net h.265
1个回答
0
投票

录制过滤器图对意外的状态转换很敏感,并且假设录制“立即”进行,没有暂停和继续,包括由于需要重置视频硬件或更改格式而引起的录制。

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

另请参阅:

© www.soinside.com 2019 - 2024. All rights reserved.