我一直在尝试开发一个C#应用程序很长一段时间,它打算在服务器上运行。它从数据库中获取信息并使用它制作视频。我一直在为那个porpuse(Aforge)使用库。但现在看起来我必须使用FFMPEG将5 mp4合二为一。我的问题是:
我是否必须从下载中“执行”exe文件才能使其正常工作?或者我可以像其他库一样使用dll(比如Aforge)?
FFMPEG对我来说非常复杂。我一直在尝试使用Splicer。我很乐意使用非常漂亮和干净的example。但我不能让Splicer工作。我正在使用VS 13.我的Splicer如何工作?将dll添加到“调试文件夹”然后只添加引用?如果是这样的dll?
到目前为止,这是我的代码。它没有显示任何错误,但它没有做任何事情(我将引用和splicer.dll添加到我的项目中)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Splicer;
using Splicer.Renderer;
using Splicer.Timeline;
namespace MergeVideos
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string firstVideoFilePath = @"C:\file1.avi";
string secondVideoFilePath = @"C:\file2.avi";
string outputVideoPath = @"C:\output.avi";
using (ITimeline timeline = new DefaultTimeline())
{
IGroup group = timeline.AddVideoGroup(32, 720, 576);
var firstVideoClip = group.AddTrack().AddVideo(firstVideoFilePath);
var secondVideoClip = group.AddTrack().AddVideo(secondVideoFilePath, firstVideoClip.Duration);
using (AviFileRenderer renderer = new AviFileRenderer(timeline, outputVideoPath))
{
renderer.Render();
}
}
}
}
}
提前致谢!
答案 0 :(得分:0)
所以我一直在研究这个问题,我想就我的问题发表一个答案,这个答案并不是很受欢迎。
您不必执行exe或添加任何dll引用来获取ffmpeg,您只需通过命令行执行unziped exe,如下所示:
var p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/k ffmpeg -f concat -i mylist.txt -c copy output";
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.Start();