servermedia-playerweb-frontendweb-controlsmedia-library

Media player for linux (ideally for ARM architecture) with web based frontend that plays the media on the server rather than on the client


I am looking for an ideally open source application for my next DIY smart-home-project, that frontend is web-based and plays the media on the server rather than on the client. The application would ideally be platform independent, for example java based web application, as my server would be either an ARM based or an Intel based SBC with linux as an operating system. Storage can be anything, like FS or DB, does not matter.

My use case: When I open 'http://my.media.local' from my phone's browser and select a media file, for example an audio file to play, then the media file is played on the server rather than on my mobile phone or in the browser of my mobile so that the sound/video/picture comes out from my server's audio/display output rather than from my phone's audio/display output. Obviously it would come with other basic features, like volume control and equalizer et cetera.

Is there anything like this on the market? I have found a few media library but not sure how they work. Any advise would be welcomed.


Solution

  • A potential solution is VLC (https://www.videolan.org/). VLC has an optional web based frontend, where the media player can be controlled, that is running on the server. It is very basic but plays the audio file. If you know other solutions then please leave another answer.

    How to enable the VLC WEB frontend:

    1. Open 'Preferences' from the menu
    2. At the bottom-left, click 'Show All'. This will show you all VLC configuration
    3. Select 'Interface'/'Main Interface' from the list
    4. Tick the 'Web'
    5. Select 'Interface'/'Main Interface'/'Lua' from the list
    6. Add a Password under 'Lua HTTP'. You will use this password without user name - yes, I did not find a way to set user name but password is mandatory - to access the web frontend.
    7. Re-start your VLC
    8. Open a browser from a device from your LAN
    9. Enter the 'http://your_IP:8080' to your browser. For example, http://192.168.1.2:8080
    10. Enter your password that you set at step 6., but leave the user name blank

    I have tested it with:

    Some pros:

    Some cons:

    Further guidance for customisation:

    #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 ...