将文本添加到视频并保存输出

时间:2009-06-17 00:02:22

标签: c# vb.net video

我要做的是拍摄一个“输入”视频文件(我可以将其设为最简单的文件类型),然后通过我的代码将文本添加到视频文件中。

因此,例如,它将采用'Sample1.mpg'并输出'Sample2.mpg'。它不会显示视频(我发​​现了一些关于在视频播放时覆盖文本的教程;但实际上没有修改视频文件。

基本上,我希望能够说,'从第1秒到第200步,用这个字体在'0,0位置'画出'嗨妈妈'并将其保存在输出的视频中。无论何时运行输出的视频,任何播放器,你最终都会看到文字;因为它是视频文件的一部分。

我听过像'DirectShow'这样的说法。但我真的很欢迎任何更具体的内容。

3 个答案:

答案 0 :(得分:2)

您可以使用名为avisynth的极其强大的脚本语言

链接: http://avisynth.org/

它适用于您可以播放的 ANY 文件,它使用directshow。

只需安装它,它基本上安装了一个VFW编解码器,但非常简单。 打开记事本并输入

DirectShowSource("C:\dir\filename.extension")
Subtitle("Put Your text here")

将其另存为“任何名称。 avs

这是 。现在可以使用任何具有avi功能的应用程序打开它(如果需要,您甚至可以将其命名为avi!)并重新编码视频或进行处理。非常容易和自动化。它也适用于图片。

有关Subtitle()功能的完整参考,请访问: http://avisynth.org/mediawiki/Subtitle

当然,如果掌握它,avisynth可以创造奇迹,比如在录制的每一帧上打印系统日期(对安全摄像头很有用),甚至是复杂的处理,如顶线降噪,锐化和许多其他任务,通过外部的pugins。

外部Pugin参考: http://avisynth.org/mediawiki/External_plugins

易于下载的插件: http://avisynth.org/warpenterprises/

这很简单。 2行代码,你有一个可打开的,可搜索的,可处理的,可转换的完全兼容和小于1 KB的AVI(当你在应用程序上打开AVS时,字幕会即时添加)

答案 1 :(得分:2)

我建议阅读更多内容:

Options for predictable frame capture in .NET application

然后使用

Graphics g = Graphics.FromImage(bitmap);

要将帧放入.NET,然后使用它来查看:

GraphicsPath path = new GraphicsPath();
path.AddString("Yadda", font.FontFamily, (int)font.Style, font.Size, rect, format);

然后使用

g.FillPath(..path..)

将图形添加到框架中。

如何将其重新插入MPG ???我想你会回到使用顶部链接中引用的代码/项目。

在我看来,只是提取BMP帧的情况,使用.NET绘图添加内容,然后重新插入。看看如何在.NET中制作CAPTCHA可能会有所帮助。

祝你好运!!

答案 2 :(得分:1)

查看Adobe Premier API。我不确定是否有.NET库或者你是否需要互操作。