如何在Linux中复用多个视频流(Gnome)

时间:2013-01-14 07:11:34

标签: linux opengl video-streaming gnome

我有很多计算机(客户端)分布在房子周围,并通过有线局域网连接。我的目标是从所有这些计算机收集视频流并将其显示在单个(服务器)大屏幕上。客户端可以流式传输其桌面,视频文件或文本(作为图像)或其他任何内容。

此时,我在客户端上准备低分辨率可视数据,并使用OpenGL在服务器上单独显示它们。现在我想创建一个动态网格并在同一窗口中显示多个流。动态,因为在任何给定时间只有部分客户端会流式传输。我想根据活动客户端的数量使这些网格改变其结构。客户端和服务器都运行Linux和Gnome。我目前倾向于使用 OpenGL 并为每个客户端使用单独的线程。我不知道这是不是一个好主意,因为每个流可能有不同的更新率

您认为最简单的方法是什么,例如在不牺牲灵活性的情况下减少编码,以实现此功能?哪种技术最适合这项任务?我对图形编程知之甚少。

2 个答案:

答案 0 :(得分:2)

您可以绘制一组矩形 - 每个视频一个。每个视频框架都是其矩形的纹理。您可以使用不同的速率独立更改纹理。

答案 1 :(得分:1)

如果您的每台计算机都有专用的现代GPU,您可以在称为parallel rendering.的过程中利用它。这意味着每个GPU都负责渲染最终帧的一部分。您的一台PC成为作曲家其余的都是“奴隶”。每个奴隶都会渲染它的部分并将结果提取给组合最终帧的作曲家。这样一个系统的设置并不容易,但你获得了相当大的性能提升+可扩展性。

看一下Equalizer框架。在这种情况下,它可以减少开发工作量。