我有一个ASP.NET应用程序,其中包含以下设置:
HttpResponseMessage
函数,该函数使用PushStreamContent
函数(受此blog post启发)连接WebM流。此功能将视频文件的块推送到网站。我正在努力弄清楚如何实施第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格式并将其存储在video.Read
中来替换buffer
函数,这样它们就可以像现场一样被推送到网站流。有没有直接的方法来做到这一点?如果某些帧被丢弃,那就没问题了。
如果有一种完全不同的方法更好,那么我当然也愿意接受建议。
答案 0 :(得分:3)
根据您在服务器上可以执行的操作(在部署Web应用程序之外),您可以考虑将缓冲区写入管道,然后使用在后台运行的ffmpeg
从中创建流比如-f rawvideo -pixel_format rgb24 -video_size 656x492
作为输入参数。
答案 1 :(得分:1)
WebM Project提供DirectShow过滤器,用于播放和编码WebM
我们提供DirectShow过滤器,用于在Windows上播放和使用WebM。在系统上安装过滤器后,使用DirectShow框架的应用程序(如Windows Media Player等)将能够播放并对WebM媒体进行编码
还有FFmpegInterop Microsoft倡议使用FFmpeg多媒体框架。