有没有办法通过 Redis 流式传输视频以实现(近)实时流式传输?

Dav*_*rks 6 video video-streaming redis python-3.x

我们有一个 Redis 服务器,所有客户端都连接到该服务器以执行各种数据传输和协调任务。我们有一个新要求,即支持视频流。我想避免运行专用服务(以及随之而来的所有附带网络和安全要求)并仅通过 Redis 进行流式传输。

Redis 似乎非常适合实时流,特别是使用Redis 流。我意识到“Redis 流”与“视频流”没有关系,但是,我们的用例很好地遵循了 Redis 流结构。我们希望连续缓冲 X 秒的视频,允许客户端随时附加到该实时流。我们不需要存储历史记录或提供静态视频内容。

  • Redis 似乎是一个很好的解决方案,我的问题是我不知道如何通过 Redis 传输适当的视频编解码器(可能是 Motion JPEG?)。
  • 我不知道如何在广播中加入流(也许在关键帧加入?)。
  • 我不知道如何在服务器(基于Python)上将流序列化为字节,并将流反序列化为客户端(浏览器)上的视频编解码器和播放器。也许它就像 opencv 或等效中的序列化/反序列化一样简单,而我只是想太多了?

这些都是我通常希望通过 API 来执行的功能,但是是否有 API 能够执行此操作?我在视频流领域缺乏经验。

Sau*_*yer 0

从较高的层面来看,我更喜欢将流媒体视为发布-订阅问题。生产者产生大量信息,消费者根据需要读取该信息。

有些解决方案可能不容易获得,我们可能需要执行以下步骤:

Publish:
1. chunk-id : content
2. chunk-id-fwd : (nextChunkId)
3. videoId : latestChunkId (Assuming your realtime usecase is for live streams, this can help users access 'go-live' button)
Run Code Online (Sandbox Code Playgroud)
Consume:
Start:
1. Get latest chunk
2. Get content from latest chunkId
3. Get nextChunkId from chunk-id-fwd
Run Code Online (Sandbox Code Playgroud)