Я работаю над написанием программы для пакетного конвертирования видеофайлов с использованием HandbrakeCLI в качестве конвертера. У меня есть большая часть из них, и я фактически работаю над передачей файла Handbrake сейчас. Я создаю новый процесс с расположением HandbrakeCLI и передаю аргументы. Я также делаю так, чтобы он выполнялся в одной оболочке. Он вращается, а затем начинает переходить к конвертации и получает до трех кадров или около того и убивает себя. Я использую Visual Studio 12 в Windows 8 64 бит. Вот мой код:Самопроизвольное убийство
static void EncodeVideos()
{
var continueConverting = true;
while (continueConverting)
{
var converted = 0;
if (settings.Optimize == true)
{
videos = videos.OrderBy(x => x.InputSize).ToList();
}
foreach (var v in videos)
{
if (!v.AlreadyConverted())
{
v.CreateOutputPath();
var input = String.Format("-i \"{0}\" ", v.InputPath);
var output = String.Format("-o \"{0}\" ", v.OutputPath);
var preset = String.Format("-Z {0}", settings.Preset);
var convertString = String.Format(" {0} {1} {2}", input, output, preset);
//Converting is not working correctly yet.
var p = new Process();
p.StartInfo = new ProcessStartInfo(settings.HandBrakeLocation, convertString)
{
UseShellExecute = false,
};
p.Start();
p.WaitForExit();
converted++;
}
}
if (settings.Loop == true)
{
if (converted == 0)
{
continueConverting = false;
}
}
else
{
continueConverting = false;
}
}
}
Если вы хотите больше контекста для кода, я положил все это на GitHub, и вы можете найти его на Github.
Edit: Исправлен код
Это не похоже на проблему - сначала посмотрите на цикл, вы дойдете до этого момента только при успешном преобразовании всех видеороликов. – Bond
Это в моем цикле while после итерации по всем видео. Этот параметр предназначен, если пользователь хочет запустить преобразования, а затем в конце увидеть, есть ли новые файлы в каталоге, и если установлено значение true, они будут перебирать их. В противном случае файлы просто запускаются один раз, и программа завершается. – Rumel
Вы правы, хотя я забыл, что второй продолжит преобразование вне if, если установлено значение true. Я должен это исправить. – Rumel