我已经创建了一个基本上加载视频文件的GUI应用程序,按顺序启动了3个进程参数(ffmpeg,x264,mp4box),并且可以根据需要中止。c#启动过程没有焦点
我试图找出一种方法来启动这些进程,而无需他们从任何打开的程序窃取焦点。不一定是原始形式本身......它可能是IE,MS WORD等......我了解ProcessWindowStyle,但是,所有选项仍然是焦点所在。我不想开始隐藏这些流程。
这是我的代码示例启动一个进程
Process ffmpegProcess = new Process();
ffmpegProcess.StartInfo.FileName = Settings.Default.ffmpeg;
ffmpegProcess.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;
string outputaud = text2 + "_audio.aac";
string AudioBitrate = this.cBAudiobitrate.GetItemText(this.cBAudiobitrate.SelectedItem);
string ffargs = "-i " + quote + SourceFile + quote + " -filter_complex " + quote + "[0:2][0:3]amerge=inputs=2,pan=stereo|c0=c0+c1|c1=c0+c1[aout]" + quote + " -map " + quote + "[aout]" + quote + " -strict experimental -acodec aac -b:a " + AudioBitrate + "k " + quote + outputaud + quote;
ffmpegProcess.StartInfo.Arguments = ffargs;
ffmpegProcess.Start();
while (!ffmpegProcess.HasExited)
{
if (this.bw404p_withaudio.CancellationPending)
{
ffmpegProcess.Kill();
e.Cancel = true;
return;
}
Thread.Sleep(1000);
}
我知道如何使用与AppWinStyle的Microsoft.VisualBasic程序参考和Shell命令,因为它有没有重点推出的选项,我只是” t似乎弄清楚如何修改我的代码以使其适用于此。
任何想法?
感谢
你为什么要创建外部进程和监视更多信息?有些视频库无法处理什么问题? – EZI
我试图自动化一个MXF视频文件并创建一个mp4的过程。我更喜欢在这个过程中使用ffmpeg/x264,因为我知道它会产生兼容的视频/音频。我想有能力看到每个过程有多远 – Derek
任何想法? 不知道为什么我有-2,我彻底搜索了这个论坛和其他人都试图找到答案,但没有人能够。 我知道有Microsoft.VisualBasic参考中的代码,我只是需要一些帮助实现它,如果它甚至可能。 谢谢! – Derek