2017-07-18 184 views
1

我想在单个ffmpeg进程中运行这些转换任务,但我不知道该怎么做。ffmpeg在一个进程中同时执行多个任务ID

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次转换的单个进程。那可能吗?

谢谢。

+2

ffmpeg的是命令行程序。每次调用都会产生一个进程这是没有办法的。也许更好的问题是“为什么你需要它是一个单一的过程?”。 –

回答

2

执行

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