gpt4 book ai didi

c# - 将原始帧转换为 webm 实时流

转载 作者:行者123 更新时间:2023-11-30 20:41:41 26 4
gpt4 key购买 nike

我有一个具有以下设置的 ASP.NET 应用程序:

  1. 以 656x492 分辨率捕获原始 RGB 帧的相机
  2. 这些帧是在我的 C# 代码中处理的(带有一些简单的图像加工)
  3. 原始图像存储在字节数组中(以及包装在位图容器中)
  4. 缺少魔法:将原始图像缓冲区转换为 WebM 流
  5. 在另一端,我有一个 HttpResponseMessage 函数,它使用 PushStreamContent 函数连接 WebM 流(受此 blog post 启发)。此函数将视频文件的 block 推送到网站。
  6. 播放视频的网站。

我正在努力弄清楚如何实现第 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 函数,这样它们就可以作为直播流被推送到网站。有没有直接的方法来做到这一点?如果丢掉一些帧也没关系。

如果有更好的完全不同的方法,那么我当然也欢迎提出建议。

最佳答案

根据您可以在服务器上执行的操作(部署 Web 应用程序之外),您可以考虑将缓冲区写入管道,然后使用在后台运行的 ffmpeg 创建流它使用类似 -f rawvideo -pixel_format rgb24 -video_size 656x492 作为输入参数。

关于c# - 将原始帧转换为 webm 实时流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32140086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com