创建视频流服务器的正确方法

问题描述 投票:0回答:1

我正在使用 Django 框架,我需要创建一个视频流服务器,这是一个用户录制视频并通过服务器将其广播给数千个其他用户的情况。某一时刻可能同时有多个广播,这些广播将位于不同的 URL 上。我不确定 Django 是否适合此类工作,因此我倾向于 Python 编程语言中的套接字库,因为它可以使用 UDP 协议,并且我可以异步实现所有内容并连接到项目Django-ORM。另一个选择是 Fast API,它是异步的,但如果我没记错的话,它仅适用于 TCP,这不是流式传输的最佳选择。我只有几天的时间来实施该项目,并且需要尽快开始,不幸的是,我没有时间进行实验。

有人可以告诉我我的方向是否正确吗?或者我应该使用其他工具吗?

python django video-streaming
1个回答
0
投票

我只有几天的时间来实施该项目,并且需要尽快开始,不幸的是,我没有时间进行实验。

请原谅我的直言不讳,但需要指出的是,您没有时间在几天内构建这样的东西。坦率地说,根据你的问题,你应该花几个月的时间来研究这一切是如何运作的。

您还需要更好地定义您的范围。目前尚不清楚您的延迟要求、客户端兼容性、预算,我们是现场交谈还是预先录制的?

您应该与能够满足您需求的现有全方位服务提供商集成,例如 Vimeo。

与此同时,我会回应您的一些评论。

我正在使用 Django 框架

不相关。无论您用于 Web 应用程序的内容如何,都不会影响您用于流媒体的内容。

这是一个用户录制视频,我们通过服务器将其广播给数千个其他用户

直播?还是实际上预先录制的?如果是预先录制的,您可以仅使用常规 HTTP 文件/blob CDN。如果它是实时的,如果您使用 HLS 或 DASH 等分段流媒体方法,您仍然可以使用这些 CDN,但这些方法会增加延迟。

所以我倾向于Python编程语言中的套接字库

您真的想重新发明摄取协议吗?我不推荐它。完全没有必要。

因为它可以使用 UDP 协议,我可以异步实现所有内容并连接到项目 Django-ORM

你的 ORM 与它有什么关系?真的没什么。

另一个选择是 Fast API,它是异步的,但如果我没记错的话,它只能与 TCP 配合使用,这不是流媒体的最佳选择。

这是无稽之谈。无论谁告诉你这都是出于好意,但这不是一个非此即彼的情况。

您正在将源流式传输到数千个...这意味着源没有实时反馈循环,这意味着这不是一个低延迟应用程序,这意味着您有机会优化质量...并且你应该。因此,如果你丢失了一个数据包,你需要进行处理。如果应用程序层处理它,您可以使用 UDP 来做到这一点(请参阅 SRT),但除此之外,用于流式传输的 TCP 没有任何问题。别再做假设了。

有人可以告诉我我的方向是否正确吗?

您的时间表决定了该项目的规模和范围。如果您有成功的希望,您必须外包此基础设施部分,并专注于构建产品。

© www.soinside.com 2019 - 2024. All rights reserved.