我正在尝试使用webapi即时加密视频流。
我从IP网络摄像头读取了一个流,我想对其进行加密(例如,使用System.Security.Cryptography.Rijndael
)并返回加密的流。
我将拥有另一个应用程序来解密该流并将其显示给用户(重点是对IP网络摄像头进行加密以通过Internet发送安全的流)。
我有这两个代码部分:
在我的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");
}
}
问题,il出现错误“ ObjectDisposedException:无法访问关闭的Stream。”。
您是否知道如何解决?或者,也许还有另一种方法,更简单?