问题描述
我正在为我的下一个DIY智能家居项目寻找理想的开源应用程序,该前端基于Web,并且可以在服务器而不是客户端上播放媒体。理想情况下,该应用程序应独立于平台,例如基于Java的Web应用程序,因为我的服务器将是基于ARM或基于Intel的SBC(以linux为操作系统)。存储可以是任何东西,例如FS或DB,都没关系。
我的用例:当我从手机的浏览器中打开“ http://my.media.local”并选择一个媒体文件(例如要播放的音频文件)时,该媒体文件将在服务器上而不是在服务器上播放在我的手机或手机的浏览器中,这样声音/视频/图片就会从服务器的音频/显示输出中出来,而不是从电话的音频/显示输出中出来。显然它将带有其他基本功能,例如音量控制和均衡器等。
市场上有这样的东西吗?我发现了一些媒体库,但不确定它们如何工作。任何建议都将受到欢迎。
解决方法
潜在的解决方案是VLC(https://www.videolan.org/)。 VLC具有一个可选的基于Web的前端,可以在服务器上运行该前端,可以控制媒体播放器。它是非常基本的,但是会播放音频文件。如果您知道其他解决方案,请留下另一个答案。
如何启用VLC WEB前端:
- 从菜单中打开“首选项”
- 点击左下角的“显示全部”。这将显示所有VLC配置
- 从列表中选择“接口” /“主界面”
- 勾选“网络”
- 从列表中选择“接口” /“主界面” /“ Lua”
- 在“ Lua HTTP”下添加密码。您将使用不带用户名的此密码-是的,我没有找到设置用户名的方法,但是密码是强制性的-可以访问Web前端。
- 重新启动VLC
- 从局域网中的设备打开浏览器
- 在浏览器中输入“ http:// 您的IP :8080”。例如,http://192.168.1.2:8080
- 输入您在第6步中设置的密码,但将用户名留空
我已经通过以下方式对其进行了测试:
- 服务器:Raspberry PI 3
- 操作系统:Raspbian GNU / Linux 10(失败者)
- VLC:3.0.11 Vetinari
- 与作为GUI应用程序(/ usr / bin / vlc)运行的VLC一起使用
- 将VLC作为后台进程(/ usr / bin / cvlc /)运行
- 声音:嗯,我的屏幕上有某种扬声器。音频是通过我的RPI的HDMI发出的
- 成功控制VLC的客户端
- 我的笔记本电脑
- 我的智能手机
某些专业人士:
- 免费,开源
- 配置和启动很容易
- 前端可用于台式机和移动设备
一些缺点:
- 尚不支持均衡器
- 前端非常基础
- 无法通过电话正确控制音量:无法滑动滑块,但将音量设置为您在滑块上单击的位置
- 电话:单击文件夹后,无法播放该文件夹中的所有媒体文件。它只是第一个播放,因此必须编写一些Shell脚本才能为每个文件夹生成播放列表文件
- 未在VLC中找到用于将SSL的默认端口从8080更改为80或443的配置。
进一步的自定义指南:
- 用于Web前端的文件存储在
/usr/share/vlc/lua/http
文件夹中。它使用html,json,xml,js,jquery之类的东西,因此,只要您了解这些技术和语言的基础,就应该能够自定义它。 - Web前端上有一个按钮,可向您显示主文件夹中的所有文件。您可以使用它导航到任何地方,这会引起安全问题。好吧,离开媒体文件也不太好。
- 您可以在此处设置默认文件夹:
/usr/share/vlc/lua/http/js/controllers.js
#197: dir = dir == undefined ? 'file:///path/to/my/default/folder' : dir;
- 您可以在此处禁用导航到默认文件夹的父目录(我知道,我知道,但是它可以正常工作,并且以这种方式对用户更友好,而无需付出很多努力:)):{{1}
/usr/share/vlc/lua/http/js/common.js