diff --git a/FFMpegCore/FFMpeg/FFMpegArgumentProcessor.cs b/FFMpegCore/FFMpeg/FFMpegArgumentProcessor.cs index 2f350ce..8191223 100644 --- a/FFMpegCore/FFMpeg/FFMpegArgumentProcessor.cs +++ b/FFMpegCore/FFMpeg/FFMpegArgumentProcessor.cs @@ -166,12 +166,28 @@ public class FFMpegArgumentProcessor void OnCancelEvent(object sender, int timeout) { - instance.SendInput("q"); + ExecuteIgnoringFinishedProcessExceptions(() => instance.SendInput("q")); if (!cancellationTokenSource.Token.WaitHandle.WaitOne(timeout, true)) { cancellationTokenSource.Cancel(); - instance.Kill(); + ExecuteIgnoringFinishedProcessExceptions(() => instance.Kill()); + } + + static void ExecuteIgnoringFinishedProcessExceptions(Action action) + { + try + { + action(); + } + catch (Instances.Exceptions.InstanceProcessAlreadyExitedException) + { + //ignore + } + catch (ObjectDisposedException) + { + //ignore + } } }