【发布时间】:2013-09-28 06:09:46
【问题描述】:
我需要编写一个类似于电视的程序。
我需要创建 1 个视频表单
例如4 个视频文件(假设第一个视频应该在左上角,第二个视频应该在流的右上角,等等)。
我还需要在视频中添加一些滚动文本等等...
那么问题来了,
是否有任何 libs 可以帮助我解决这个问题?
谢谢。
【问题讨论】:
标签: c++ video merge stream television
我需要编写一个类似于电视的程序。
我需要创建 1 个视频表单
例如4 个视频文件(假设第一个视频应该在左上角,第二个视频应该在流的右上角,等等)。
我还需要在视频中添加一些滚动文本等等...
那么问题来了,
是否有任何 libs 可以帮助我解决这个问题?
谢谢。
【问题讨论】:
标签: c++ video merge stream television
不确定库,你也没有提到视频输入文件的格式(我假设它们是像 H.264 这样的压缩格式,因为如果它们是原始的,那只是一个子集),但是我需要在 Windows 上做 shis,我会做以下事情:
1) 从输入文件中读取和解码帧(使用 FFMPEG 或 VFW),然后将编码数据放入更大的位图中,最终大小为 4 个屏幕
2) 因为现在它是一个原始位图,所以应用文本或任何需要的东西,例如DrawText(http://msdn.microsoft.com/en-us/library/windows/desktop/dd162498(v=vs.85).aspx),为了简化 WinAPI 的使用,您可以使用一些 GDI 包装库。
我想这里的主要缺陷之一是正确同步来自不同文件的帧的呈现时间,因为它们都可以有不同的 fps 和时间间隔,所以你不能只是逐帧阅读,但你需要保持在应用您需要的转换时,跟踪应该在每个步骤中显示哪个文件中的哪个帧。
【讨论】:
你的问题遗漏了很多细节。你写跨平台程序吗?还是应该只在 Windows 或 *nix 上工作?你对可能的图书馆也有无限的预算吗?或者您正在寻找开源库?所以...
根据常识,您可以使用跨平台的 FFMPEG 库。如果你可以使用 Windows 平台而不是Avisynth,它提供了非常强大的脚本机制,允许你将多个视频合并为一个,你可以添加自己的过滤器来添加水印或其他类型的效果
【讨论】: