Member 13948830 Ответов: 1

Ffmpeg не создает файл, проходящий через него .Чистая как когда в CMD


Я работаю над небольшим проектом, который должен использовать ffmpeg, чтобы вытащить какое-то видео из основного видео. Я вызвал следующее в командной строке и получил свое 8 секундное видео с правильным именем в папке:

ffmpeg -ss 00:47:25 -t 8 -i C:\\Personal\\TestData\\MainVideo.mp4 -vcodec copy -acodec copy C:\\Personal\\TestData\\Portion1.mp4


Однако, когда я пытаюсь запустить это из процесса.Команда "Пуск" открывает то, что выглядит как командная строка, но не сохраняет файл.

var processn = Process.Start("CMD.exe", "/C ffmpeg -ss 00:47:25 -t 8 -i C:\\Personal\\TestData\\MainVideo.mp4 -vcodec copy -acodec copy C:\\Personal\\TestData\\Portion1.mp4");
                          processn.WaitForExit(50000);


У меня кончились идеи.
Спасибо

Что я уже пробовал:

Я предоставил полный доступ всем, кто находится в этой папке.
Я уже пробовал звонить в ffmpeg.exe непосредственно и просто передайте параметр без успеха.

var processStartInfo = new ProcessStartInfo(@"C:\FFmpeg\bin\ffmpeg.exe");
                        processStartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                        processStartInfo.Arguments = $"/C -ss 00:47:25 -t 8 -i C:\\Personal\\TestData\\MainVideo1.mp4 -vcodec copy -acodec copy C:\\Personal\\TestData\\Portion1.mp4";
                        processStartInfo.UseShellExecute = false;
                        processStartInfo.CreateNoWindow = true;

                        var processn = Process.Start(processStartInfo);
                        processn.EnableRaisingEvents = true;
                        processn.WaitForExit();

1 Ответов

Рейтинг:
2

Member 13948830

Вот что я сделал, чтобы наконец заставить его работать

var processStartInfo = new ProcessStartInfo(@"C:\FFmpeg\bin\ffmpeg.exe");
processStartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
processStartInfo.Arguments = $@"-ss {startTime} -t 8 -i C:\Personal\TestData\MainVideo.mp4 -vcodec copy -acodec copy C:\Personal\TestData\Portion{counter}.mp4";
processStartInfo.UseShellExecute = false;
processStartInfo.CreateNoWindow = true;
var processn = Process.Start(processStartInfo);


Dave Kreskowiak

Если вы запустите процесс CMD с a /K вместо /C, командная строка останется открытой, позволяя увидеть любые ошибки, отображаемые в остальной части командной строки.