我有以下设置的ASP.NET应用程序:转换原始帧到WEBM实况流
- ,在分辨率656x492
- 这些帧在我的C#处理捕获的原始RGB帧的摄像机代码(有一些简单的图像处理 )
- 原始图像被存储在一个字节阵列(以及包裹在一个位图容器)
- MISSING MAGIC:转换原始图像缓冲区的WebM流
- 另一方面,我有一个函数
HttpResponseMessage
函数,它将一个WebM流与PushStreamContent
函数(受此blog post的启发)联系起来。该功能将视频文件的块推送到网站。 - 播放视频的网站。
我正在努力弄清楚如何实施第4点。现在我只能播放视频文件。但我想将原始缓冲区编码到WebM容器中并将其流式传输到我的网站。的point5代码的中央部分如下所示:
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
功能,所以他们可以作为直播推送到网站。有没有一个简单的方法来做到这一点?如果有些帧丢失,那很好。
如果有一个完全不同的方法更好,那么我当然也会提出建议。
你需要流式直播或记录然后流式传输文件吗? – aergistal
@aergistal:我必须直播。我已经能够记录然后流式传输文件。 – Lucas
如果您使用管道解决方案,请确保您使用单个连续过程进行编码。否则,您将导致输出流中的不连续性,因为每个新衍生进程都会重置时间戳(值接近于零)。 – aergistal