c ++从多个视频文件创建1个视频

时间:2013-09-23 11:05:44

标签: c++ video merge stream television

我需要写一个类似电视的节目。

我需要创建1个视频表格

e.g。 4个视频文件(假设第一个视频应位于左上角,第二个位于流的右上角,等等。)

此外,我还需要在视频中添加一些滚动文字,依此类推......

所以,问题是,

如果有任何 libs 可以帮助我吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

不确定库,你也没有提到视频输入文件的格式(我猜它们是像H.264这样的压缩格式,因为如果它们是原始的,只是一个子集),但是我需要在Windows上执行此操作,我会执行以下操作:

1)从输入文件(使用FFMPEG或VFW)读取和解码帧,然后将编码数据放入更大的位图中,得到4个屏幕的大小

2)从现在起它是一个原始位图应用文本或任何需要使用例如DrawTexthttp://msdn.microsoft.com/en-us/library/windows/desktop/dd162498(v=vs.85).aspx),为了简化WinAPI的使用,您可以使用一些GDI包装器库。

我想这里的一个主要缺陷是正确地同步来自不同文件的帧的呈现时间,因为它们都可以具有不同的fps和时间间隔,所以你不能只是逐帧阅读但是你需要保持在应用您需要的转换时,跟踪应该在每个步骤中呈现文件的帧。

答案 1 :(得分:0)

你的问题遗漏了许多细节。你写跨平台程序吗?或者它应该只在Windows或* nix上运行?您对可能的图书馆还有无限的预算吗?或者您在寻找开源库吗?所以......

从常识来看,您可以使用跨平台的FFMPEG库。如果您可以使用Windows平台而不是使用Avisynth,它提供了非常强大的脚本机制,允许您将多个视频合并为一个,您可以添加自己的过滤器来添加水印或其他类型的效果