Mergemultiplevideosourcesintoone我正在寻找一种有效的方法来执行以下操作:对于多个源视频(长度大致相同),我需要生成一个输出视频由在其自己的区域中运行的所有原始源组成(就像一堆不同大小的PIP)。所以最终结果是所有原件并排运行,每个都在自己的区域/盒子中。源和输出需要是flv,我使用的平台是Windows(Windows764位开发,部署到WindowsServer2008)。我看过avisynth,但不幸的是它无法处理我试过的flv和非插件以及flv分离器。我当前的流程以下列方式使用ffmpeg:使用ffmpeg为每个视频每秒生成25个png,并根据需要调整原始视频的大小。使用System.Drawing命名空间将每组帧组合成一个新图像,从静态背景开始,然后将每个帧加载到Image中并绘制到背景Graphics对象-这为我提供了组合帧。使用ffmpeg将生成的图像合并到视频中。所有这些都是IO密集型的(这是我目前的处理瓶颈),我觉得必须有一种更有效的方法来实现我的目标。我在视频处理方面没有太多经验,也不知道有哪些选择。谁能建议一种更有效的方法来处理这些问题?在ffmpeg中执行所有操作。你可以用videofilter做很多事情。例如,要并排加入两个视频:ffmpeg-iinput0.avi-vf"movie=input1.avi[in1];[in]pad=640*2:352[in0];[in0][in1]overlay=640:0[out]"out.avi@Oded:这基本上就是这个命令的作用。您可以删除padfilter并更改overlayfilter的参数以将第二个视频移动到您喜欢的任何位置。ffmpeg-ibig.avi-vf"movie=small.avi[small];[in][small]overlay=10:10[out]"out.avi我提供的链接描述了过滤器语法。您可以将多个过滤器链接在一起。以上是C#学习教程:多个视频源合并为一个共享内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——ffmpeg——ibig.avi-vf"movie=small0.a??vi[small0];[in][small0]overlay=10:10[tmp];movie=small1.avi[small1];[tmp][small1]overlay=30:10[out]》out.avi本文来源于网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
