Хорошо, думаю, я понял, как сделать то, что мне нужно было сделать. Сначала запишите аргументы команды, которые будут работать без проблем с ffmpeg:
-rtsp_transport tcp -i rtsp: // UN:PW@IP: 554 / live -err_detect ignore_err -r 10 -f image2pipe -
Далее вы настроили процесс следующим образом:
using (var process = new Process
{
StartInfo = new ProcessStartInfo
{
RedirectStandardInput = true,
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true,
Arguments = arguments,
FileName = fFMpegExePath
},
EnableRaisingEvents = true
})
{
// code body
}
Теперь вам нужно process.Start () и затем начать слушать process.StandardOutput.BaseStream as FileStream и обрабатывает считывающий байт за байтом. Обратите внимание, что я установил низкую частоту кадров -r 10 , потому что если она вообще не установлена, поток будет зависать без видимой причины, но в этом случае я тестировал задачу более 2 часов, и она никогда не давала сбоя.
Надеюсь, это поможет вам всем, кто сталкивался с этой проблемой.