使用OGG视频块的实时视频流
本文关键字:实时视频 OGG 视频 使用 | 更新日期: 2023-09-27 18:18:20
我们目前正在开发一个直播应用程序,涉及:
-
一个用c#编写的客户端,它将从网络摄像头捕获帧,并将它们编码到视频块中(更多信息将会出现)
-
我们用Node.js编写的流服务器,基本上只需要从上面的客户端接收视频块并使用Socket将它们发送到web应用程序。作为底层传输协议
-
一个webapp,它将使用VIDEO标签+ MediaSource API来执行视频播放
由于MediaSource API支持的视频格式和这些视频格式(MPEG-DASH, WebM, OGG+Theora)的c#编码器API所施加的限制,我们想到了这个解决方案:
c#客户端将使用Theora作为视频编解码器在OGG视频中编码1或2秒的视频。一旦数据块准备好了,它就被发送到流服务器,流服务器将把它发送到web应用程序。web应用程序将从网络中读取该视频块(实际上是1-2秒的独立视频),就像从文件中读取一样,web应用程序将一个块接一个块地复制它们,就像它是单个流一样。不幸的是,我也没有,我的团队中的其他人都没有视频编码/流媒体的任何经验,所以我的问题是:有没有人知道一个好的c#库,可以从一个网络摄像头捕获的帧序列中产生一个OGG封装的视频,这样它就可以从MediaSource API中读取而没有任何麻烦?
任何其他解决方案,只要它使用视频标签,web应用上的MediaSource API和客户端上的c#,都是可以接受的。
我不相信有很多流行的OGG编码库。不过,最好还是自己创建一个。我想从这里开始:https://www.rfc-editor.org/rfc/rfc5334
我使用Gstreamer很幸运,但我不确定它是否能满足您的语言和编码需求。不过还是值得一看。
http://gstreamer.freedesktop.org/