C# 使用OGG视频块的实时视频流

C# 使用OGG视频块的实时视频流,c#,encoding,video-streaming,html5-video,ogg,C#,Encoding,Video Streaming,Html5 Video,Ogg,我们目前正在开发一个实时流应用程序,其中包括: 一个用C#编写的客户端,将从网络摄像头捕获帧,并将其编码为视频块(更多信息将在后面提供) 我们在Node.js中编写的流服务器,基本上只需从上述客户端接收视频块,并将它们发送到使用Socket.io作为底层传输协议的webapp 将使用视频标签+MediaSource API执行视频播放的webapp 由于MediaSource API支持的视频格式和这些视频格式的C#编码器API(MPEG-DASH、WebM、OGG+Theora)的限制,我

我们目前正在开发一个实时流应用程序,其中包括:

  • 一个用C#编写的客户端,将从网络摄像头捕获帧,并将其编码为视频块(更多信息将在后面提供)

  • 我们在Node.js中编写的流服务器,基本上只需从上述客户端接收视频块,并将它们发送到使用Socket.io作为底层传输协议的webapp

  • 将使用视频标签+MediaSource API执行视频播放的webapp

由于MediaSource API支持的视频格式和这些视频格式的C#编码器API(MPEG-DASH、WebM、OGG+Theora)的限制,我们想到了这个解决方案:

C#客户端将使用Theora作为视频编解码器,在OGG视频中编码1或2秒的视频。一旦区块准备好,它将被发送到流服务器,流服务器将把它发送到webapp。 webapp将从网络中读取此视频块(实际上是一个1-2秒的独立视频),就像它从文件中读取一样,并且一块接一块地读取视频块。webapp将复制这些视频块,就像它是单个流一样

不幸的是,我和我的团队中的其他人都没有任何视频编码/流媒体方面的经验,所以我的问题是:有谁知道一个好的C#库,它可以从网络摄像头捕获的帧序列生成OGG封装的视频,这样就可以从MediaSource API中读取而不会遇到任何问题


任何其他解决方案,只要它使用视频标签、webapp上的MediaSource API和客户端上的C#,都是可以接受的。

我不相信有很多流行的OGG编码库。但是,最好创建自己的。我想从这里开始:

我在使用Gstreamer方面运气不错,但考虑到您的语言和编码要求,我不确定它是否能正常工作。还是值得一看