0

我需要制作一个视频服务器客户端,其中服务器以块的形式发送视频数据,客户端必须接收并显示它们。与我做过的任何项目不同,我的脑海中没有它的主要结构,因为我找不到用于显示视频的 api 或模块,这些视频可以分成几块。所有要显示的文件都是 matroska .mkv。我一直在搜索,但我能找到的只有 kivy,它确实提供视频显示,但它需要整个视频,而 gstreamer 也有同样的缺点。谁能给我一个我可以依赖的模块来显示视频?

提前致谢

4

2 回答 2

2

除非您出于学习目的自己制作,否则如果可能的话,在现有工作的基础上构建会容易得多,因为视频流和播放很复杂。

对于在“块”中流式传输文件,您可以简单地将其作为静态资源从支持字节范围请求的 HTTP 服务器提供 - 这允许客户端请求一个字节范围而不是整个视频文件,因此它可以下载它块按块。

将它与浏览器中的常规 HTML5 视频标签一起使用将适用于大多数视频格式 - 视频标签背后的浏览器智能已经知道检查服务器是否支持字节范围请求以及是否使用它们。

如果您想要更复杂的视频流,例如使用自适应比特率根据网络条件请求不同的比特率块,那么您可能需要查看特殊用途的流媒体服务器,例如 Streamer 或 VideoLan:

在客户端,开源 dash.js 参考应用程序将为您提供一个很好的示例,使用 HTML5 媒体源扩展来允许客户端请求块,然后将它们重新构建到视频中播放(这使用 MPEG DASH 作为流协议,正在成为行业标准)。

如果您确实想走 DASH 路线,那么下面的链接中有一篇很好的博客文章,其中介绍了使用开源 MP4Box 工具准备 mkv 文件以这种方式流式传输的步骤:

于 2017-03-03T10:29:21.413 回答
0

您实际上可以在小部件中播放视频时打开文件并继续以字节为单位附加数据

于 2020-10-29T10:12:43.443 回答