2012-06-20 30 views
8

我想记录屏幕(通过每秒捕获15个屏幕截图)。这部分我知道该怎么做。但我不知道如何将它写入一些流行的视频格式。我发现的最佳选择是将帧写入分离的PNG文件,并使用命令行Mencoder将其转换为多种输出格式。但也许有人有另一个想法?编程屏幕记录器 - 输出问题

要求:

  • 必须是多平台解决方案(我用免费帕斯卡尔/拉撒路)。 Windows,Linux,MacOS
  • 为什么会存在一些图书馆?
  • 可能是复杂的命令行应用程序,也为我记录屏幕,但我必须有可能编辑帧之前转换整个原始数据流行的视频格式
  • 所有材料,可以给我一些想法,赞赏。 API,图书馆,任何东西,甚至在其他语言比FPC(我会尝试重写或找到一些等效)
  • 我认为也写帧到视频RAW格式,然后使用Mencoder(他可以处理它)或其他解决方案,但可以“找不到视频RAW数据

问候

+0

[ffmpeg](http://ffmpeg.org/)是跨平台的,根据LGPL或GPL许可,最近更新。 – Argalatyr

+0

它看起来像Mencoder项目。所以我有输出编码的解决方案。但是如何为这些编码器准备输入?我正在寻找与系列PNG文件不同的东西 – Dibo

+0

[docs](http://ffmpeg.org/faq.html#How-do-I-encode-single-pictures-into-movies_003f)描述了图像编码帧到MPEG。这不会做你想要的吗? – Argalatyr

回答

4

Argalatyr已经提到的ffmpeg的任何API /文件。

有两种方法,你可以得到那个工作:

  1. 通过产卵一个新的进程。您只需准备正确的输入(例如可以是一系列jpeg图像)以及正确的命令行参数。之后,您只需调用ffmpeg.exe并等待它完成。

  2. ffmpeg利用一些dll的实际工作。你可以在你的Delphi应用程序中直接使用这些DLL。这需要更多的工作,因为它更低级,但最终它会更好地控制发生的情况以及在处理过程中向用户显示的内容。

这里有一些解决方案来看看:

+1

+1很棒的建议。 – Argalatyr

+0

谢谢大家! DLL解决方案看起来有希我检查了一下 – Dibo

+0

@Wouter:你现在可能想编辑你的答案,现在有人已经删除了我的(以前的)答案,只不过是评论。对我来说似乎不公平,但他们是休息时间。 – Argalatyr

-1

有一个Delphi组件here一些早期的讨论。这是一个非常简单的组件,有时会产生一些奇怪的电影。也许是一个开始。

+0

您是否看到OP的第一个要求? “跨平台” – Argalatyr