新闻字幕模拟电视流- c#

本文关键字:电视 字幕 模拟 新闻 | 更新日期: 2023-09-27 17:49:44

我想用c#在模拟电视流上放一个新闻选框,我可以用DirectShow流模拟电视,但我不知道如何将它与旋转文本混合,我应该创建一个过滤器吗?或者我必须使用DirectShow以外的其他技术?

新闻字幕模拟电视流- c#

DirectShow是做到这一点的最简单的方法,但它确实有一点学习曲线,特别是来自c#。维基百科页面提供了DirectShow的基本概述。

DirectShow工具在最新的Windows SDK中可用。使用c++进行DirectShow编程更直接,但您可以通过COM互操作或DirectShow.net(我还没有尝试过)相当容易地使用DirectShow。如果使用COM互操作,下面的文章是有帮助的:

http://blogs.msdn.com/b/ericgu/archive/2004/09/20/232027.aspx

如果动画表现足够流畅,你可以使用VMR叠加过滤器。参见以下文章

http://www.codeproject.com/KB/audio-video/VideoPicture.aspx
http://www.codeproject.com/KB/audio-video/Ticker.aspx
http://msdn.microsoft.com/en-us/library/dd407344 (v = vs.85) . aspx

或者,你需要编写自己的过滤器,在每个帧上呈现文本,调整其位置与视频帧的时间戳同步。如果您只需要在自己的应用程序中执行此操作,那么下面的方法可能是最简单的

http://www.sichbo.ca/Free_Code/100_C_Sharp_directshow_filters

微软官方推荐DirectShow过滤器应该在c++中创建,因为性能原因,但覆盖滚动文本应该在c#中是OK的,因为瓶颈将是用于覆盖文本的api,如果你仔细编程。

实际上,您不必编写过滤器来在视频上绘制一些文本。只要制作一个未压缩视频通过采样采集器(标准DirectShow过滤器之一)的图形,为采样采集器设置一个回调,你就可以在回调中修改视频数据。在c#中使用DirectShow非常容易。. NET,但由于编组而不是最佳的。您可以首先在GraphEditPlus中构建这样的图形,然后它将向您展示如何使用c#或c++构建此图形并使用示例抓取器的源代码。