Получение ошибки ObjectDisposedException: невозможно получить доступ к закрытому потоку при шифровании видеопотока - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь создать веб-интерфейс для шифрования видеопотока на лету.

Я читаю поток с IP-камеры, хочу зашифровать его (например, System.Security.Cryptography.Rijndael)и верните зашифрованный поток.

У меня будет другое приложение, чтобы расшифровать поток и показать его пользователю (суть в том, чтобы зашифровать IP-камеру для отправки защищенного потока через Интернет).

У меня есть две части кода:

В моем EncryptionService:

public Task<Stream> Encode(webcamUrl, Stream output){
[...Rijndael creation...]
     using (var client = new HttpClient()) 
     using (StreamReader originVideo = new StreamReader(await                
     client.GetStreamAsync(webcamUrl))) 
     { 
         var originalVideoBuffer = new char[4096]; 
         await originVideo.ReadAsync(originalVideoBuffer, 0, 4096); 

         using (CryptoStream csEncrypt = new CryptoStream(output, encryptor, CryptoStreamMode.Write)) 
         using (StreamWriter swEncrypt = new StreamWriter(csEncrypt)) 
             await swEncrypt.WriteAsync(originalVideoBuffer); 
    }
}

В моем контроллере:

public async Task<FileStreamResult> GetEncoded()
    {
        using (var ms = new MemoryStream())
        {
            await _encoderService.GetEncodedVideoStream("https://webcam_ip/", ms);
            return new FileStreamResult(ms, "text/plain");
        }  
    }

Проблема, я получу ошибку "ObjectDisposedException: Невозможно получить доступ к закрытому потоку. ".

У вас есть идеи, как это исправить?А может, есть другой способ, более простой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...