Всё делается в отдельном потоке.
- Код: Выделить всё
...
If (aMin Mod STEP_INTERVAL = 0) Or (bProcesses.Count = 0) Then
Begin
aRecordsCount := 0;
For i := 0 To aCameras.Count - 1 Do
Begin
aCamera := BCameraClass(aCameras[i]);
bProcesses.Add(RunProcess(aCamera));
Inc(aRecordsCount);
End;
End;
...
If (aMin Mod STEP_INTERVAL = 1) And
(bProcesses.Count = aRecordsCount * 2) Then
Begin
For i := aRecordsCount - 1 DownTo 0 Do
Begin
FpKill(TProcess(bProcesses[i]).Handle, 2);
TProcess(bProcesses[i]).Free;
bProcesses.Delete(i);
End;
End;
...
вот запуск процесса:
- Код: Выделить всё
Function BClockClass.RunProcess(Const aCamera: BCameraClass): TProcess;
Begin
Result := TProcess.Create(nil);
With Result Do
Begin
CommandLine := Format(STR_FFMPEG, [aCamera.MJPEGFull, '/path/to/file']);
Execute;
End;
С чем может быть связано?