Server linux媒体播放器(最适合ARM体系结构),具有基于web的前端,可在服务器而不是客户端上播放媒体

Server linux媒体播放器(最适合ARM体系结构),具有基于web的前端,可在服务器而不是客户端上播放媒体,server,media-player,web-frontend,web-controls,media-library,Server,Media Player,Web Frontend,Web Controls,Media Library,我正在为我的下一个DIY智能家居项目寻找一个理想的开源应用程序,前端是基于网络的,在服务器上而不是在客户端上播放媒体。理想情况下,该应用程序应该是独立于平台的,例如基于java的web应用程序,因为我的服务器可能是基于ARM的,也可能是基于Intel的SBC,使用linux作为操作系统。存储可以是任何东西,比如FS或DB,这无关紧要 我的用例:当我打开http://my.media.local'并选择媒体文件,例如要播放的音频文件,然后,媒体文件将在服务器上播放,而不是在我的手机上或在我的手机浏

我正在为我的下一个DIY智能家居项目寻找一个理想的开源应用程序,前端是基于网络的,在服务器上而不是在客户端上播放媒体。理想情况下,该应用程序应该是独立于平台的,例如基于java的web应用程序,因为我的服务器可能是基于ARM的,也可能是基于Intel的SBC,使用linux作为操作系统。存储可以是任何东西,比如FS或DB,这无关紧要

我的用例:当我打开http://my.media.local'并选择媒体文件,例如要播放的音频文件,然后,媒体文件将在服务器上播放,而不是在我的手机上或在我的手机浏览器中播放,以便声音/视频/图片从我的服务器的音频/显示输出而不是从我的手机的音频/显示输出出来。很明显,它还具有其他基本功能,如音量控制和均衡器等


市场上有这样的东西吗?我找到了一些媒体库,但不确定它们是如何工作的。欢迎任何建议。

一个潜在的解决方案是VLC()。VLC有一个可选的基于web的前端,可以在服务器上控制媒体播放器。这是非常基本的,但播放音频文件。如果您知道其他解决方案,请留下另一个答案

如何启用VLC WEB前端:

  • 从菜单中打开“首选项”
  • 在左下角,单击“全部显示”。这将显示所有VLC配置
  • 从列表中选择“接口”/“主接口”
  • 勾选“网络”
  • 从列表中选择“接口”/“主接口”/“Lua”
  • 在“Lua HTTP”下添加密码。您将在没有用户名的情况下使用此密码-是的,我没有找到设置用户名的方法,但密码是必需的-以访问web前端
  • 重新启动VLC
  • 从LAN中的设备打开浏览器
  • 输入'http://your_IP:8080'到您的浏览器。比如说,
  • 输入您在步骤6中设置的密码,但将用户名留空
  • 我已经用:

    • 服务器:树莓皮3
    • OS:RaspbianGNU/Linux10(buster)
    • VLC:3.0.11 Vetinari
      • 使用作为GUI应用程序运行的VLC(/usr/bin/VLC)
      • 使用作为后台进程运行的VLC(/usr/bin/cvlc/)
    • 声音:嗯,我的屏幕上有某种扬声器。音频是通过我的RPI的HDMI输出的
    • 成功控制VLC的客户端
      • 我的笔记本电脑
      • 我的智能手机
    一些优点:

    • 免费、开源
    • 配置和启动很容易
    • 前端可用于台式机和移动设备
    一些缺点:

    • 均衡器尚未得到支持
    • 前端是非常基本的
    • 无法通过手机正确控制音量:无法滑动滑块,但将音量设置为单击滑块的位置
    • 电话:单击文件夹时无法播放文件夹中的所有媒体文件。它只是第一次播放,所以必须编写一些shell脚本来为每个文件夹生成播放列表文件
    • 在VLC中未找到将默认端口从8080更改为80或将SSL更改为443的配置
    进一步的定制指南:

    • web前端的文件存储在
      /usr/share/vlc/lua/http
      文件夹中。它使用html、json、xml、js、jquery和类似的东西,因此,如果您了解这些技术和语言的基础知识,您应该能够为自己定制它
    • web前端上有一个按钮,显示主文件夹中的所有文件。您可以使用它导航到任何地方,这会引起安全问题。嗯,离开你的媒体文件也不太好
    • 您可以在这里设置默认文件夹:
      /usr/share/vlc/lua/http/js/controllers.js
    • 在这里,您可以禁用导航以转到默认文件夹的父文件夹(我知道,我知道,但它可以工作,而且以这种方式更方便用户,只需很少的努力:):
      /usr/share/vlc/lua/http/js/common.js
    #197: dir = dir == undefined ? 'file:///path/to/my/default/folder' : dir;
    
     #79:     if( type == "dir" && name == '..' ) {
     #80:         icon = "Back-48.png";
     #81:         if (dir == "file:///path/to/my/default/folder/..")
     #82:             dir = "file:///path/to/my/default/folder";
     #83:     }
     #84:     else ...