使用UWP c# (mediaccapture)捕获网络摄像头并保存到azure blob存储 &g



我有UWP c#应用程序,它应该从网络摄像头记录视频。

一旦用户点击"开始记录",我应该捕获视频并保存到azure blob存储。因此,我使用mediaCapture来捕捉网络摄像头。

此时,我可以使用以下代码保存到本地存储
// Create storage file for the capture
var videoFile = await _captureFolder.CreateFileAsync("SimpleVideo.mp4", CreationCollisionOption.GenerateUniqueName);
var encodingProfile = MediaEncodingProfile.CreateMp4(VideoEncodingQuality.Auto);
// Calculate rotation angle, taking mirroring into account if necessary
var rotationAngle = CameraRotationHelper.ConvertSimpleOrientationToClockwiseDegrees(_rotationHelper.GetCameraCaptureOrientation());
encodingProfile.Video.Properties.Add(RotationKey, PropertyValue.CreateInt32(rotationAngle));
Debug.WriteLine("Starting recording to " + videoFile.Path);
await _mediaCapture.StartRecordToStorageFileAsync(encodingProfile, videoFile);
_isRecording = true;
Debug.WriteLine("Started recording!");

然而,我的目标是开始使用Azure. storage . blobs直接上传到Azure blob,而不需要在本地机器上保存。

有什么建议吗?

Blob Storage允许您以块上传文件[将文件分割成较小的大小],一旦完成,您可以按特定顺序提交这些块:

尝试使用这些方法,

  1. Put Block:Upload a chunk.

  2. PutBlockList:提交一个块在一个特定的顺序列表

使用这些方法,例如,您可以在内存中创建一个存储视频的缓冲区,每次缓冲区达到一定大小时调用PutBlock。然后,一旦记录完成,您就可以调用PutBlockList来提交所有块。因此,您的blob将包含完整的记录,而无需先将其保存到本地磁盘。

如何使用这些方法请参考本文档,所以线程

最新更新