Jump to content

Emby Theater for Linux


xnappo

Recommended Posts

denz

It is installed if I run mpv manually it runs but it looks like it is using software decoding but in theater all I get is the errors

 

 

59186a8bec4a9_desktop1_005.jpg

Edited by denz
Link to comment
Share on other sites

haraldov

@@denz It looks like you are using a old version of mpv because you get these error about different version of libav than the shared library it is linked against. This mpv version do not have support for rpi hardware acceleration with mmal. Maybe this old version also gives the Java script error too.   

 

5918c55c5f9a1_mpv021.png

 

You can compile the newest mpv release https://github.com/mpv-player/mpv/releases/tag/v0.25.0 if you follow my previous post here: https://emby.media/community/index.php?/topic/42868-emby-theater-for-linux/?p=442130

Link to comment
Share on other sites

denz

The one installed is the default I will recompile the new one and see does it get rid of the error at least now with your help the app starts full screen.

Link to comment
Share on other sites

denz

I installed mpv v 25 and unfortunately the same error. Playing mpv from command line works perfectly but unfortunately not from theater

 

591ae0575e1d6_Selection_008.jpg

Link to comment
Share on other sites

haraldov

@@denz I get nearly the same Java script error if I rename mpv to mpv-org and and try to play a recording from ET. Maybe ET do not find mpv in the search path?

pi@raspiVDR:~ $ whereis mpv
mpv: /usr/bin/mpv /etc/mpv /usr/share/man/man1/mpv.1.gz

591c014ed2189_rename_mpv.png

  • Like 1
Link to comment
Share on other sites

denz

Thanks for that I did last night have a bit of search of that error and it is that it cannot find it not sure how it is possible when it is there unless node.js uses some different path. I tried to download the linux version because that one it managed to play something but it wasn't reliable but for comparison it would at least narrow down the cause. 

Edited by denz
Link to comment
Share on other sites

denz

It is the same path as your one it is just not starting it when I type top | grep mpv there is nothing when it is used through theater. 

 

Giving up on this I will stick with the other pi theater as that one works. 

Link to comment
Share on other sites

  • 2 weeks later...
haraldov

I also can not expand the ET window to fullscreen on my Intel Eebox 1501B box and with my RPI3 with raspbian Jessie.

 

I found out a way to expand the ET window to fullscreen. ET for electron uses the library electron-window-state for store and restore the windows position and size https://www.npmjs.com/package/electron-window-state.

I have shifted between maximized window (full screen) to normal window and electron-window-state write a windowstate.json file with this information. And every time I start up ET now I get normal window but I want full screen (maximized window).

The workaround is to edit the windowstate.json. I found out others users have reported the same think https://emby.media/community/index.php?/topic/35111-emby-theater-not-starting-in-full-screen/.

I have tried to delete the windowstate.json with the content state: Normal, but ET start up with normal window not fullscreen. When I close ET I have a new windowstate.json which contains state: Normal

nano /home/emby/.config/Electron/windowstate.json

# Start up ET as a normal window on the Desktop
{"x":320,"y":192,"width":1280,"height":720,"state":"Normal"}

# You only need to edit "state":"Normal" to "state":"Fullscreen"
# Exampel: Start up ET full screen on the Desktop
{"x":0,"y":25,"width":1920,"height":1055,"state":"Fullscreen"}
Edited by haraldov
Link to comment
Share on other sites

@@haraldov why not just go fullscreen and then close the app? it will remember the fullscreen state and then you don't need to modify the file. let us know if this helps. thanks !

Link to comment
Share on other sites

haraldov

 

why not just go fullscreen and then close the app? it will remember the fullscreen state and then you don't need to modify the file

 

Thanks for the advice.

When I press the maximize button in normal windows mode the ET window moves from the middel of the screen to the upper left side of the desktop, but the ET window is not maximized yet. When I Exit ET and start it up again I have fullscreen.

 

592be445c456b_Skjermbilde.png

Link to comment
Share on other sites

haraldov

 

@@denz writes: It is installed if I run mpv manually it runs but it looks like it is using software decoding but in theater all I get is the errors

 

When using mpv to play recorded content in ET on rpi3 it is not using the RPI hardware video decoding. ET is ignoring the configuring file /home/pi/.config/mpv/mpv.config, where I have placed the video option for rpi. 

# Use rpi video output by default.
vo=opengl

Feature request:

Place this video option in ET --> Settings --> Video Setting --> Hardware acceleration mode

Edited by haraldov
Link to comment
Share on other sites

haraldov

Mpv use opengl as default video output driver on rpi from version 0.23. I use mpv 0.25.0-76-g6a00059 . Raspbian have OpenGL support but it is using a slow software renderer https://www.raspberrypi.org/blog/another-new-raspbian-release/ .

When I play ts files from the terminal with mpv --vo=opengl I get these error message 

[ffmpeg/video] h264_mmal: Did not get output frame from MMAL.
Error while decoding frame!

With top I can see the %cpu's is using over 80 % capasity so I think mpv is using software encoding not hardware encoding.  

 

When I play the ts file in ET with the setting Hardware acceleration mode: None it plays but the video playback is not fast enought. When I choose Auto in Hardware acceleration mode the same slow video playback happen so it looks like ET is not using opengl .

 

You can enable hardware experimental OpenGL driver for the desktop which uses the GPU to provide hardware acceleration http://www.raspberryconnect.com/gamessoftware/item/314-trying_out_opengl_on_raspberry_pi_3

I tried both GL (Full KMS) Desktop Drivers and GL (Fake KMS) Desktop Driver enabled, but only  GL (Fake KMS) Desktop Driver are function best with the desktop. When I play the ts file with mpv --vo=opengl mpv crash and gives a error about * failed to add service - already in use?

 

vo-rpi.log

swopengl.log

hwopengl1.log

Link to comment
Share on other sites

@@haraldov, so I guess we're not actually sure yet that we need a setting for --vo=opengl?

 

what if i add more hardware acceleration options, so that you can force it instead of choosing auto?

Link to comment
Share on other sites

haraldov

I have done little more research now:

 

When I play the ts file with mpv --vo=opengl mpv crash and gives a error about * failed to add service - already in use?

 

This error message is because I use the experimental GL (Full KMS) Desktop Drivers. I have tried with different version of mpv, upgrade and downgrade the raspbian kernel and firmware and give the gpu more memory as suggested in some forums, but I always get this error message. So I believe the GL Desktop drivers are not ready yet for production.

 

When I play ts files from the terminal with mpv --vo=opengl 

 

I copied one ts files to the Raspbian desktop and played the file with mpv 0.25.0-94-gc443aa6. Rasbian are now using the legacy orginal non-GL desktop driver

pi@raspberrypi:~/Desktop $ mpv --vo=opengl "Dagsrevyen 2017-04-17.ts"

Mpv plays the ts file without problem using hardware decoding, but I only get normal video window in the center. I must use the --fullscreen switch for fullscreen.

 

When I start up ET and try to play the same recording nothing happen only a circle which turns around in the middel waiting.

I have tried with both with Auto and None in Hardware acceleration mode, but nothing changes.

From terminal output it looks like ET do not stream the recording. I checked with the Emby server Version 3.2.17.0 and from the logs Emby server do not transcode the recording before it stream the file. I think ET try to play the ts file direct from the filesystem, but I have not setup Emby server to do that. 

fs access result for path: Error: ENOENT: no such file or directory, access '/storage/emby/tvseries/Dagsrevyen/Dagsrevyen 2017-04-17.ts' 

592ea31d06161_Embytvseries.png

 

When I use "ET for Pi" the recording plays fullscreen with omxplayer and from the log I see Emby streaming the same file.

Play URL : http://192.168.9.2:8096/emby/Videos/302f6c4c6a17afe9b3a034bb16351b2b/stream.ts?Static=true&mediaSourceId=302f6c4c6a17afe9b3a034bb16351b2b&deviceId=raspberrypi&api_key=b894fabb8b264b1e8729d183d7c77e31&Tag=7102ad2da6406409e6aabfc96a4b826f 

et-for-pi.log

mpv_play_tsfile.log

et-31052017-nogpu.log

Edited by haraldov
Link to comment
Share on other sites

Jdiesel

Has ET for linux gotten to the point where anybody has considered forking LibreELEC and starting a ET embedded package? It should remove a lot of variables to make development much easier.

  • Like 1
Link to comment
Share on other sites

haraldov

You probably want to also set the --hwdec option

I believe the option --hwdec=rpi and --vo=opengl is default when you compile mpv yourself. I do not need any of this option when playing ts video file. It is autodetected.

pi@raspberrypi:~/Desktop $ mpv "Dagsrevyen 2017-04-17.ts"

pi@raspberrypi:~ $ mpv --list-options
--hwdec  Choices: no auto yes auto-copy vdpau vdpau-copy videotoolbox videotoolbox-copy vaapi vaapi-copy dxva2 
dxva2-copy d3d11va d3d11va-copy rpi rpi-copy mediacodec cuda cuda-copy crystalhd (default: rpi)

My problem is playing the recorded ts files in ET for electron (version 2.7.9). I have no problem playing the videofiles from ET for pi and ET for windows (mpv version. 2.7.9), so it should not be a Emby server problem (Version 3.2.19.0). ET for electron is trying to direct play the file from the filesystem, but I have not nfs or samba mounted /storage/emby/tvseries on my pi. Something has changed because older ET version did not have this problem because it was using direct stream, not direct play.

Is there anyone else who has this problem?

fs access result for path: Error: ENOENT: no such file or directory, access '/storage/emby/tvseries/Dagsrevyen/Dagsrevyen 2017-04-17.ts' 
Edited by haraldov
Link to comment
Share on other sites

I don't think that is the problem. That's just what you see in the log. It checks for direct file access, and when that fails it streams through the server.

Link to comment
Share on other sites

haraldov

With the help from @@denz I found out why the ts files do not play in ET . Node-mpv needed  some dependency package installed. When I installed the missing packages ET direct streams the ts recording.

pi@raspberrypi:~/emby-theater-electron $ npm ls
emby.theater@2.7.9 /home/pi/emby-theater-electron
├── is-linux@1.0.1
├── is-osx@1.0.2
├── is-windows@1.0.0
├── long@3.2.0
├─┬ node-mpv@1.0.3
│ ├── UNMET DEPENDENCY cuid@^1.3.8
│ ├── UNMET DEPENDENCY lodash@>= 4.0.0
│ └── UNMET DEPENDENCY promise@^7.1.1
├─┬ power-off@1.1.2
│ └── UNMET DEPENDENCY meow@^3.7.0
└─┬ sleep-mode@1.1.0
  ├── is-windows@0.1.1
  └── UNMET DEPENDENCY meow@^3.3.0

npm ERR! missing: meow@^3.7.0, required by power-off@1.1.2
npm ERR! missing: meow@^3.3.0, required by sleep-mode@1.1.0
npm ERR! missing: cuid@^1.3.8, required by node-mpv@1.0.3
npm ERR! missing: lodash@>= 4.0.0, required by node-mpv@1.0.3
npm ERR! missing: promise@^7.1.1, required by node-mpv@1.0.3
npm ERR! not ok code 0
pi@raspberrypi:~/emby-theater-electron $

pi@raspberrypi:~ $ sudo npm install cuid
pi@raspberrypi:~ $ sudo npm install promise
pi@raspberrypi:~ $ sudo npm install lodash
pi@raspberrypi:~ $ sudo npm install meow

In the ET settings under the Hardware acceleration mode I have used both Auto and Rpi with no difference. Mpv plays the video without any problem. The mpv windows is normal window, not fullscreen. You can change to fullscreen if you make a mpv.conf file with this setting.

pi@raspberrypi:~ $ nano .config/mpv/mpv.conf

#Start in fullscreen mode by default.
fs=yes

unmetdep.txt

Edited by haraldov
Link to comment
Share on other sites

haraldov

 

No HDMI CEC work has been done (I don't have a device to debug with)

 

When I use ET for pi CEC works, but with ET for electron I get error message about not finding cec-client.

pi@raspberrypi:~/emby-theater-electron $ ./et.sh 
Initializing cec-client...

{ cecExePath: 'main.js',
  cecEmitter: 
   EventEmitter {
     domain: null,
     _events: {},
     _eventsCount: 0,
     _maxListeners: undefined } }
ERROR: cec-client not installed, running without cec functionality.
 
pi@raspberrypi:~/emby-theater-electron $ whereis cec-client
cec-client: /usr/bin/cec-client /usr/share/man/man1/cec-client.1.gz
Trying to start ET like this works, but I get a Javascript error message in ET
pi@raspberrypi:~/emby-theater-electron $ /usr/local/bin/electron /home/pi/emby-theater-electron cec-client
Initializing cec-client...
 
{ cecExePath: 'cec-client',
  cecEmitter: 
   EventEmitter {
     domain: null,
     _events: {},
     _eventsCount: 0,
     _maxListeners: undefined } }
 
CEC Client successfully registered.
 

593186335c972_cec_javascript_error1.png

Edited by haraldov
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...