Я использую систему наблюдения и хочу записать видео с некоторых камер видеонаблюдения на мой ПК.
Я могу получить запись, используя командную строку VLC, например,
vlc rtsp://*username*:*password*@192.168.1.60:554/ch01/0 --qt-start-minimized --sout=#transcode{ab=128,channels=2,samplerate=44100,scodec=none}:file{dst=D:\CCTV\Concord\2019_05_24\2019-05-24_2111_C1.mp4,no-overwrite}
Однако я хочу останавливать и перезапускать запись каждые полчаса, чтобы я получал достаточно маленькие файлы, чтобы их можно было использовать.
Я написал для этого приложение на C #, оно просто убивает все процессы VLCи начинает новые.Он запускается планировщиком задач в полчаса.
Это работает, когда я запускаю обычные экземпляры VLC, отображаемые на панели задач.Однако я хочу, чтобы они были в пути в системном трее.Я могу сделать это, добавив эту опцию VLC,
--qt-start-minimized
, которая запускает его в фоновых процессах, если я смотрю в диспетчере задач.
Мой код делает это,
foreach(Process process in Process.GetProcesses().Where(x => x.ProcessName == "vlc"))
{
Process.GetProcessById(id).CloseMainWindow();
}
Однако VLC больше не имеет главного окна, поэтому оно не работает.
Если я это сделаю,
Process.GetProcessById(id).Kill();
Видео будет повреждено, потому что VLC не существует изящно.
Я пробовал другие методы Close, Dispose, но они не работают.
Мне кажется, мне нужно сначала развернуть эти окна перед вызовом CloseMainWindow или найти какой-то другой способзавершить их, или если в VLC есть возможность запускать новый файл каждые полчаса?