我现在正在尝试开发一个应用程序几个月,它是一个MPEG-TS Demux / Mux重新流媒体。因此,它包含一个基本上具有用于MPEG-TS的捕获过滤器的程序,该MPEG-TS被解复用并且视频通过无限T形滤波器,该T形管的一个输出返回到另一个MPEG-TS多路复用器,以启用它的重新流,另一个输出由于监视原因而转到VMR9。来自该输入MPEG-TS的音频流进入音频混合器硬件。音频混合器输出返回到滤波器图形,并设置为MPEG-TS多路复用器的第二个输入。最后,这个MPEG-TS多路复用器被重新流式传输。
该程序是使用GraphStudioNext作为测试环境制作的。然后,它使用Visual Studio 2015在C#+ WPF中编码。主要问题是虽然这个C#程序有时运行良好,但有时却没有。
我的意思是:我的程序有一个简单的“初始化”按钮。当用户单击该按钮时,代码基本上创建此过滤器图形,包括上述过滤器,然后运行图形。该程序运行良好,重新流程工作,VMR9监控窗口也工作,直接运行8小时的测试。但是,在其他一些时候,当我点击这个“初始化”按钮时,VMR9刚刚被打破,在播放时口吃,并且重新流传输器输出似乎包含错误的流(因为其他MPEG-TS客户端接收到这个-stream,并能够监控它)。然后,我不确定问题是什么。因为,程序有时初始化和运行得非常好,但有时候它只是从开始运行,完全坏了。
您对我如何更好地调试程序中的这种不一致性有任何想法吗? (现在我正试图找到在运行时创建的过滤器图之间的差异,使用SaveGraphFile函数,虽然我没有发现.grf文件之间存在太大差异)
谢谢卢卡斯。