Jump to content

Emby Theater for Linux


xnappo

Recommended Posts

I've added the same header slide effect from the web app so that when you scroll vertically, the header slides away so that you can see posters on the full height of the screen. Enjoy.

Link to comment
Share on other sites

I've updated the download instructions in the first post. Specifically, the git repo has changed so you'll need to install from scratch. There is a lot of new development here because we are looking at using MPV player for Windows as well. Please try it out. Thanks !

Link to comment
Share on other sites

denz

I have followed the instructions but it doesn't work there is no folder emby-theater-linux created but there is emby-theater-electron but when you go into it doesn't start with ./et.sh

Link to comment
Share on other sites

denz
Files are there but when I start it I get this error the pi and the prior linux theater work but not this version.

 

pi@raspberrypihome:~/emby-theater-electron $ ./et.sh 

App threw an error during load

Error: Path must be absolute

    at Error (native)

    at /home/pi/emby-theater-electron/main.js:638:13

    at Object.<anonymous> (/home/pi/emby-theater-electron/main.js:809:3)

    at Module._compile (module.js:556:32)

    at Object.Module._extensions..js (module.js:565:10)

    at Module.load (module.js:473:32)

    at tryModuleLoad (module.js:432:12)

    at Function.Module._load (module.js:424:3)

    at loadApplicationPackage (/usr/local/lib/node_modules/electron/dist/resources/default_app.asar/main.js:280:12)

    at Object.<anonymous> (/usr/local/lib/node_modules/electron/dist/resources/default_app.asar/main.js:322:5)

A JavaScript error occurred in the main process

Uncaught Exception:

Error: Path must be absolute

    at Error (native)

    at /home/pi/emby-theater-electron/main.js:638:13

    at Object.<anonymous> (/home/pi/emby-theater-electron/main.js:809:3)

    at Module._compile (module.js:556:32)

    at Object.Module._extensions..js (module.js:565:10)

    at Module.load (module.js:473:32)

    at tryModuleLoad (module.js:432:12)

    at Function.Module._load (module.js:424:3)

    at loadApplicationPackage (/usr/local/lib/node_modules/electron/dist/resources/default_app.asar/main.js:280:12)

    at Object.<anonymous> (/usr/local/lib/node_modules/electron/dist/resources/default_app.asar/main.js:322:5)

Edited by denz
Link to comment
Share on other sites

aptalca

Have you guys considered an embedded linux build using LibreELEC as the base?

 

LibreELEC (forked from OpenELEC) is a Just enough OS (JeOS) which was originally for Kodi, but now plex is using it to base their new Plex Media Player on. Lakka, (retroarch emulation) is also using it as their base.

 

LibreELEC is available for x86_64, arm and aarch64. 

 

I know this sounds like an ad for LibreELEC, but I'm not actually a part of their team. I do collaborate with them on certain things (docker support) and they are all great people.

  • Like 3
Link to comment
Share on other sites

Have you guys considered an embedded linux build using LibreELEC as the base?

 

LibreELEC (forked from OpenELEC) is a Just enough OS (JeOS) which was originally for Kodi, but now plex is using it to base their new Plex Media Player on. Lakka, (retroarch emulation) is also using it as their base.

 

LibreELEC is available for x86_64, arm and aarch64. 

 

I know this sounds like an ad for LibreELEC, but I'm not actually a part of their team. I do collaborate with them on certain things (docker support) and they are all great people.

 

Yes I think that would be great, and it's something we could look at next after our development with the mpv player is complete.

  • Like 3
Link to comment
Share on other sites

denz

I did another git pull and when i try et.sh the error is still the same as post #57

Link to comment
Share on other sites

frabe8378910

Hi,

 

just comment line 638 in main.js like below.

if (commandLineArguments.length > 0) {
    //    app.setPath('userData', commandLineArguments[0]);
}

I did a "console.log" for that commandLineArgument[0] and get "--disable-gpu" as the printout, which seem a bit strange to me. Anyway, works fine without the call to app.setPath.

I'm running emby-theater on Debian testing and on this latest repo I need to install some more modules by "npm: node-mpv, meow, long". Additional I have to uninstall first "is-windows and power-off" and then install them again via "npm" to fix version dependencies. A "npm list" will show you the missing or wrong versioned modules and give a clean list after the above steps. Then emby-theater-electron works fine.

 

Hope this helps.

 

BTW: I'm fighting still with fullscreen mode on my zotacID80 box (a LG TV attached via HDMI to it). Only sometimes it really switches to fullscreen (no minimize, maximize or close button on the upper left) and only then, the movie will make it's way to the TV and played fine.

If these buttons are there after the start of emby-theater, then the playback will not show up. You will here sound, but just some distortion at the border of the emby-theater main window. 

 

If this is fixed, I can get rid of Kodi as my TV player... ;-)

  • Like 1
Link to comment
Share on other sites

denz

It certainly did I had to follow your post exactly to get it to load but when it finally loaded nothing plays video or audio all I get is spinning circle. There is nothing in console to indicate that is is starting to play something it is the same as it was when emby loaded, when i look at the emby dashboard it is showing that music is playing

 

also the et.sh needs the execute bit set.

Log (1).txt

Edited by denz
Link to comment
Share on other sites

frabe8378910

It certainly did I had to follow your post exactly to get it to load but when it finally loaded nothing plays video or audio all I get is spinning circle. There is nothing in console to indicate that is is starting to play something it is the same as it was when emby loaded, when i look at the emby dashboard it is showing that music is playing

 

also the et.sh needs the execute bit set.

I did some further "digging" yesterday and found the following statement as the root cause for not playing. It will prevent the "real fullscreen" on my zotac box (you'll always have the minimize, maximize and close button on upper right corner).

Commented the line "mainWindow webContents ..." will give me a full function emby-theater. And sure, et.sh needs a "chmod 755" ... ;-)

 

 

//mainWindow.openDevTools();

mainWindow.webContents.on('dom-ready', setStartInfo);

 

BTW. The last pull seems to fix the "app.setPath('userData', commandLineArguments[0]);" error ....

  • Like 1
Link to comment
Share on other sites

Thanks, give it another shot. we are re-working quite a bit so a lot is currently being torn apart, but in the coming days it will come together very nicely. Thanks.

  • Like 1
Link to comment
Share on other sites

frabe8378910

Thanks, give it another shot. we are re-working quite a bit so a lot is currently being torn apart, but in the coming days it will come together very nicely. Thanks.

On my latest pull 2 days ago I recognized that I can move "node-mpv" and the "mpv" binary away and emby-theater-electron ist still playing my movies .... 

@Luke: Who is playing it? Did we have an intrinsic player now?

Link to comment
Share on other sites

haraldov

I want to share how to compile mpv from git running on rpi3 with the last (April 17) Raspbian jessie.  

If you do not want to compile you can download an older version of mpv with mmal support from here https://nwgat.ninja/quick-easy-compiling-mpv-for-raspberry-pi/

# On recent Raspbian jessie, you have to run RPi-update 
# to obtain /opt/vc/lib/pkgconfig Source: https://github.com/mpv-player/mpv-build/issues/84
sudo apt install rpi-update && sudo rpi-update && sudo reboot

# Add PKG_CONFIG_PATH and LIBRARY_PATH before running mpv-build 
# Source: https://github.com/mpv-player/mpv-build/issues/84, https://github.com/mpv-player/mpv-build/issues/83
# and https://github.com/mpv-player/mpv-build/issues/98
export PKG_CONFIG_PATH=/opt/vc/lib/pkgconfig
export LIBRARY_PATH=/opt/vc/lib
export LDFLAGS=-L/opt/vc/lib
export CPATH=/opt/vc/include

# Prepare Ubuntu build packages Source: https://help.ubuntu.com/community/CompilingEasyHowTo
sudo apt-get install build-essential checkinstall
sudo apt-get install cvs subversion git-core mercurial

# Use mpv-build helper scripts to compile mpv on Raspbian. Source: https://github.com/mpv-player/mpv-build
sudo apt-get install git devscripts equivs
git clone https://github.com/mpv-player/mpv-build.git
cd mpv-build
echo --enable-mmal >> ffmpeg_options
./use-mpv-release
./update
rm -f mpv-build-deps_*_*.deb
mk-build-deps -s sudo -i
dpkg-buildpackage -uc -us -b -j4
# Install deb package:  sudo dpkg -i ../mpv_<version>_<architecture>.deb
sudo dpkg -i ../mpv_2017.04.20.4b4dee0_armhf.deb

# Mpv need 256 Mb on rpi2 and 3
echo "gpu_mem=256" >> /boot/config.txt

# Make mpv config file
mkdir -p $HOME/.config/mpv
nano $HOME/.config/mpv/mpv.conf
# And paste this text in for mpv > version 0.22.0 
# Source: https://mpv.io/manual/master/#video-output-drivers

# Use rpi video output by default.
vo=opengl
# Use rpi hardware acceleration
hwdec=rpi
Edited by haraldov
Link to comment
Share on other sites

denz

Since others don't have the issues I am having is that because I use rpi or I am not doing something right. The Linux theatre that is hit and miss so I will remove MPV and compile it using Haraldov instructions.

Link to comment
Share on other sites

On my latest pull 2 days ago I recognized that I can move "node-mpv" and the "mpv" binary away and emby-theater-electron ist still playing my movies .... 

@Luke: Who is playing it? Did we have an intrinsic player now?

 

Mpv is playing it.

  • Like 1
Link to comment
Share on other sites

denz

Still the same error and noticed that you cannot maximise if you press the maximise it just puts the window in top left corner.

Link to comment
Share on other sites

denz

I tried to build the mpv but it is not working it requires so many dependencies and when I tried to download them it can't find some of them. It is not important since the mpv I found on the internet works it just doesn't work very well with emby theater linux it is not smooth like it is not using hardware decoding. When I run the command from shell it is all smooth but only if I remove vo=opengl from mpv.conf

 

58f8944150044_Selection_0099.png

Edited by denz
Link to comment
Share on other sites

haraldov

@@denz

 

I have updated my mpv howto with the required package dependency and missing LIBRARY_PATH. Can you try to compile mpv again? It works for me.

 

When I run the command from shell it is all smooth but only if I remove vo=opengl from mpv.conf

Video output documentation for mpv version 0.24

rpi (Raspberry Pi)
Native video output on the Raspberry Pi using the MMAL API.

This is deprecated. Use --vo=opengl instead, which is the default and provides the same functionality. 
The rpi VO will be removed in mpv 0.23.0. Its functionality was folded into --vo=opengl, 
which now uses RPI hardware decoding by treating it as a hardware overlay (without applying GL filtering). 
Also to be changed in 0.23.0: the --fs flag will be reset to "no" by default (like on the other platforms).
Edited by haraldov
  • Like 1
Link to comment
Share on other sites

frabe8378910

Mpv is playing it.

Not possible, expect emby-theater-electron has a mpv player which will be install when I do a "git clone ...".

 

When playing a recorded movie with emby-theater-linux I have "/usr/bin/mpv" in the process list, I also see the socket "/tmp/node-mpv". 

After switching to emby-theater-electron there are only "electron" processes running while playing a movie and NO socket.

 

So I'm trying to figure out, which executable is playing the movie. For testing I temporary uninstalled "/usr/bin/mpv" and also "node-mpv" (npm uninstall node-mpv), but emby-theater-electron is STILL playing the movie.

And sure, I did a reboot after the uninstall, to ensure that NO "mpv" remaining in memory. ;-)

 

The reason I need to know which executable is the player, is to be able to configure stuff like video output or HW encoding.

For example "/usr/bin/mpv" reads $HOME/.config/mpv/mvp.conf, but electron (or its build-in player) does not read that.

 

Thank's a lot for enlighting me ...  :D

Edited by frabe8378910
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...