我有一个ASP.NET应用程序,其设置如下:
基本上,我想通过一种方法将我的原始帧实时编码为WebM格式并存储在“buffer”中,以便它们可以作为实时流推送到网站,并取代“video.Read”函数。有没有直接的方法来做到这一点?如果有些帧被丢弃了也没关系。
如果有更好的完全不同的方法,当然也可以提出建议。
- 一个摄像头以656x492的分辨率捕获原始RGB帧。
- 这些帧在我的C#代码中进行处理(包括一些简单的图像处理)。
- 原始图像存储在字节数组中(同时也包装在位图容器中)。
- 缺少魔法:将原始图像缓冲区转换为WebM流。
- 在另一端,我有一个函数
HttpResponseMessage
函数,它使用PushStreamContent
函数连接WebM流(灵感来自于这篇博客文章)。该函数将视频文件的块推送到网站上。 - 一个播放视频的网站。
我正在努力弄清楚如何实现第4点。目前,我只能流式传输视频文件。但我想将我的原始缓冲区编码为WebM容器并将其流式传输到我的网站。 第5点的核心代码如下:
while (length > 0 && bytesRead > 0)
{
bytesRead = video.Read(buffer, 0, Math.Min(length, buffer.Length));
await outputStream.WriteAsync(buffer, 0, bytesRead);
length -= bytesRead;
}
基本上,我想通过一种方法将我的原始帧实时编码为WebM格式并存储在“buffer”中,以便它们可以作为实时流推送到网站,并取代“video.Read”函数。有没有直接的方法来做到这一点?如果有些帧被丢弃了也没关系。
如果有更好的完全不同的方法,当然也可以提出建议。