void Initialise()
        {
            shellRunner = new ShellCmdRunner();
            shellRunner.ProcessFinished += new EventHandler<GenericEventArgs<processfinishedEventArgs>>(shellRunner_ProcessFinished);
            shellRunner.FileName = Path.Combine(PathToTools, "ffmpeg.exe");
            String workingFolderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "RemotePotato");
            workingFolderPath = workingFolderPath+"\\static\\";
            if (!Directory.Exists(workingFolderPath)) Directory.CreateDirectory(workingFolderPath);
            shellRunner.BatchFile = Path.Combine(workingFolderPath, "ffmpeg" + DateTime.Now.ToString().Replace(" ", "").Replace(":", "") + ".bat");
            shellRunner.DurationBeforeMediaIsReopened = EncodingParameters.DurationBeforeMediaIsReopened;
            shellRunner.StandardErrorReceivedLine += new EventHandler<GenericEventArgs<string>>(shellRunner_StandardErrorReceivedLine);
            shellRunner.StandardOutputReceived += new EventHandler<GenericEventArgs<byte[]>>(shellRunner_StandardOutputReceived);

            // Incoming data from ffmpeg STDOUt - mangements
            InitTempWriter();

            // Set up objects
            cmdArguments = new CommandArguments();
            segmentArguments = new CommandArguments();

            // Arguments
            ConstructArguments();
            shellRunner.Arguments = cmdArguments.ToString();

            SendDebugMessage("Initialized to run: " + shellRunner.BatchFile + " " + shellRunner.Arguments);
            shellRunner.CreateBatchFile(shellRunner.BatchFile, EncodingParameters.DurationBeforeMediaIsReopened);
        }