我正在寻找一种有效的方法来执行以下操作:
使用多个源视频(长度大致相同),我需要生成一个输出视频,该视频由所有原始源组成,每个源都在自己的区域中运行(比如一堆不同大小的PIP )。因此,最终结果是所有原始文件都在并排运行,每个都在自己的区域/框中。
源和输出需要flv
和我使用的平台是 Windows(在 Windows 7 64 位上开发,部署到 Windows Server 2008)。
我看过avisynth,但不幸的是它无法处理flv
,而且我尝试过的插件和flv分离器都没有工作。
我当前的进程以下列方式使用ffmpeg :
- 使用 ffmpeg 为每个视频每秒生成 25 个 png,并根据需要调整原始大小。
- 使用
System.Drawing
命名空间将每组帧组合成一个新图像,从静态背景开始,然后将每个帧加载到一个Image
并绘制到背景Graphics
对象 - 这给了我组合的帧。 - 使用 ffmpeg 将生成的图像组合成视频。
所有这些都是非常 IO 密集型的(这是我目前的处理瓶颈),我觉得必须有一种更有效的方法来实现我的目标。我在视频处理方面没有太多经验,也不知道有什么选择。
任何人都可以提出一种更有效的处理方式吗?