在一个进程id中同时ffmpeg多个任务

时间:2017-07-18 18:51:16

标签: c# ffmpeg

我想在单个ffmpeg进程中运行这些转换任务,但我不知道是怎么做的。

ffmpeg -i video1.mkv output1.mp4
ffmpeg -i video2.mkv output2.mp4
ffmpeg -i video3.mkv output3.mp4

我曾尝试使用字符“&”像这样分开任务,

string parameters = "-i video1.mkv output1.mp4 & -i video2.mkv output2.mp4 & -i video3.mkv output3.mp4";

var processInfo = new ProcessStartInfo();
processInfo.FileName = "ffmpeg.exe";
processInfo.Arguments = parameters;
processInfo.CreateNoWindow = true;
processInfo.UseShellExecute = false;

using (var process = new Process())
{
   process.StartInfo = processInfo;
   process.Start();
   process.WaitForExit();
}

它不起作用。而&& | ;等其他分隔符也不起作用。

我在cmd.exe上试过这段代码:

ffmpeg -i video1.mkv output1.mp4 & ffmpeg -i video2.mkv output2.mp4 & ffmpeg -i video3.mkv output3.mp4

它产生3个进程ID,我不想这样做。我想要一次可以执行3次转换的单个进程。这可能吗?

感谢。

1 个答案:

答案 0 :(得分:2)

执行

ffmpeg -i video1.mkv -i video2.mkv -i video3.mkv -map 0 output1.mp4 -map 1 output2.mp4 -map 2 output3.mp4