我们目前正在开发一个直播应用程序,其中包括:
用 C# 编写的客户端,它将从网络摄像头捕获帧,并且必须将它们编码到视频块中(更多信息即将发布)
我们用 Node.js 编写的流服务器,它基本上只需要从上述客户端接收视频块并将它们发送到使用 Socket.io 作为底层传输协议的 webapp
将使用 VIDEO 标签 + MediaSource API 来执行视频播放的 web 应用程序。
由于 MediaSource API 支持的视频格式和这些视频格式(MPEG-DASH、WebM、OGG+Theora)的 C# 编码器 API 所施加的限制,我们想到了这个解决方案:
C# 客户端将使用 Theora 作为视频编解码器在 OGG 视频中编码 1 或 2 秒的视频。一旦块准备好被发送到流服务器,流服务器将把它发送到 webapp。webapp 将从网络读取这个视频块(实际上是一个 1-2 秒的独立视频),就好像它正在从文件和块中读取一样,webapp 会像单个流一样再现它们。
不幸的是,我和我团队中的其他人都没有任何视频编码/流媒体的经验,所以我的问题是:有没有人知道一个好的 C# 库,它可以从从网络摄像头捕获的帧序列中生成 OGG 封装的视频,所以它可以毫无问题地从 MediaSource API 读取吗?
任何其他解决方案,只要它使用视频标签、webapp 上的 MediaSource API 和客户端上的 C#,都可以接受。