我们已经为酒吧、餐厅或商店等公共场所部署了多个使用Buzzk 数字标牌软件 的安装。它是一个具有一定成熟度的软件,基于HTML 5,需要相对较轻的客户端,因为您只需要具有3D 加速功能的Web 浏览器。
传统上,我们一直使用Odroid或Raspberry Pi 2作为 Buzzks 的主机。它们既经济又可靠,并且使用某些开源工具可以非常轻松地在信息亭模式下进行配置……Matchbox、Unclutter 或 Chromium 是此类安装中一些非常常见的示例。但几周前,我们面临着将我们的数字标牌系统集成到另一个有点老式的数字标牌系统中的挑战,该系统 已经 加拿大手机号码列表 部署在相当大的安装中。大约有十几个屏幕,其相应的“轻型”设备由服务器控制......具有专有系统,使用HTML中相当苏联的界面进行设置,并在 PHP 上运行所有这些(我们多么喜欢 PHP!)。
将视频流添加到 Buzzk
问题在于,这是一个专有安装,具有一定程度的限制性许可证,不允许您将简单的 URL 配置为要使用的内容。该系统支持图像、视频、swf 文件...无限数量的选项,这些选项本来就相当复杂,但相关版本没有 URL 字段来调用我们的小型 Buzzk 客户端...尽管它们在Linux上运行和网络浏览器,配置相当复杂,当然,我们无法以任何或多或少健康的方式访问设备。
简而言之:我们有一个“marronaco”。我们必须向客户展示 Buzzk 的一个密封系统,客户不想放弃这个系统。有些复杂。尽管如此,我们突然看到了曙光:这些客户端能够通过 http 播放视频流。任务是直接使用浏览器的输出创建实时视频流:
最初的想法是在我们的服务器上构建一个真正的 X 服务器,并从那里捕获随后通过视频服务器向系统的“真实”客户端显示的流。但这对我们来说似乎过于“手动”:服务器需要特定的显卡,我们必须强制图形分辨率......这似乎是不能容忍错误的东西,对于我们的目的来说太“真实” 。
然后我们记住XvFb。 XvFb 是普通 X11 服务器的 XFree86 实现的一部分,其特殊性是它使用内存来执行所有图形操作。它不需要任何特定的硬件,并且 100% 可参数化。换句话说,它就像一个幽灵X服务器。它广泛用于与 Selenium 或类似工具执行集成测试。
它的执行很简单:
瞧!我们已经让buzzk 在我们的小服务器上以幽灵模式运行。
如果您想尝试一下,您肯定会在您最喜爱的 Linux 发行版的打包系统中找到它。
视频流
与(几乎)总是一样,当我们必须使用视频主题时,我们使用ffmpeg ...在这种情况下,我们必须启动 ffserver。
我们需要生成的流(f.mpg)具有足够的质量(我们没有带宽问题),并且在这种情况下我们不需要声音...
经过多次测试,我们验证此配置满足最低质量要求超出可接受范围: