我有两个相同长度的视频,我想用ffmpeg将它们叠加到一个视频文件中.
我怎样才能做到这一点?
我正在寻找一种有效的方法来做到以下几点:
使用几个源视频(长度大致相同),我需要生成一个输出视频,该输出视频由各自在其自己的区域中运行的所有原始源组成(就像一堆不同大小的PIP).因此,最终结果是所有原件并排运行,每个原件都在自己的区域/盒子中.
源和输出需要flv和我使用的平台是Windows(Windows 7 64位开发,部署到Windows Server 2008).
我看过avisynth但不幸的是它无法处理flv和没有我试过的插件和flv分离器.
我当前的进程以下列方式使用ffmpeg:
System.Drawing命名空间将每组帧组合成一个新图像,从静态背景开始,然后将每个帧加载到一个Image并绘制到背景Graphics对象 - 这给了我组合的帧.所有这些都是IO密集型(这是我目前的处理瓶颈),我觉得必须有一种更有效的方法来实现我的目标.我没有太多的视频处理经验,也不知道那里有什么选择.
有人能建议一种更有效的方法来处理这些吗?
c# ffmpeg video-processing processing-efficiency flash-video
我想将四个视频组合成一个网格.目前我正在使用vstack组合行,然后hstack组合两个输出,以及添加音频.
ffmpeg -ss 0 -i 1.mp4 -ss 8 -i 3.mp4 -filter_complex vstack left.mp4
ffmpeg -ss 0 -i 2.mp4 -ss 0 -i 4.mp4 -filter_complex vstack right.mp4
ffmpeg -i left.mp4 -i right.mp4 -filter_complex hstack -i audio.mp4 output.mp4
Run Code Online (Sandbox Code Playgroud)
它可以使用overlay和在一个操作中完成此操作pad.但是,文档说明使用vstack和hstack更快.这两个过滤器可以组合成一个单独的操作吗?