Jump to content

Emby Theater for Linux


xnappo

Recommended Posts

Hi, I have a Rock64 arm64 board that I would like to run Emby theater on.

It has hardware accelerated graphics and libs.. Ie mpv,-ffmpeg, _libgl etc using a yocto linux build.

 

However, this acceleration is only for wayland ...

Is there any support for running electron under wayland?

 

Cheers B.

Edited by ebike
  • Like 1
Link to comment
Share on other sites

Hi, I have a Rock64 arm64 board that I would like to run Emby theater on.

It has hardware accelerated graphics and libs.. Ie mpv,-ffmpeg, _libgl etc using a yocto linux build.

 

However, this acceleration is only for wayland ...

Is there any support for running electron under wayland?

 

Cheers B.

 

Not quite sure: https://github.com/electron/electron/issues/9056

Link to comment
Share on other sites

Thanks ... maybe soon.

 

By the way, is there a bitbake receipe available to build ET on Yocto Linux? If not I will give it a go  ...

I would like to create my own "distro" with Yocto, loaded with just enough software to run Emby with hardware accelerated bits as an appliance ... for hardware the Rock64 looks ideal.

 

PS: ET on Linux is WAY better/slicker than the Android client  ..... great work.

Edited by ebike
Link to comment
Share on other sites

  • 1 month later...
CorpusColossus

Really looking forward to Emby Theater for Linux maturing!

 

I tried this out on Linux Mint, but I get a Playback Error when trying to watch movies. The message says "No compatible streams are currently available. Please try again later or contact your system administrator for details." This happens when trying to play from the Theater directly, or when casting to it.

 

Not sure if it matters, but I am running Emby Theater for Linux on the same machine that is running the Emby server. Maybe it doesn't like that? I don't have another installation of Linux Mint running right now, but will try that later.

Link to comment
Share on other sites

  • 2 weeks later...
haraldov

The message says "No compatible streams are currently available

@CorpusColossus, which version of mpv are you using? Check mpv version like this mpv -v

If you are using mpv 0.27 I have found out the --vo=rpi video option are misssing when compiling mpv with the mpv build script.

 

You can check available video output drivers like this:

pi@raspberrypi:~ $ mpv --vo=help
Available video outputs:
  rpi            : Raspberry Pi (MMAL)
  opengl         : Extended OpenGL Renderer
  vdpau          : VDPAU with X11
  xv             : X11/Xv
  vaapi          : VA API with X11
  x11            : X11 (slow, old crap)
  null           : Null video output
  image          : Write video frames to image files
  tct            : true-color terminals
  caca           : libcaca
  drm            : Direct Rendering Manager

You can downgrade to mpv 0.26 like this:

# Source: https://github.com/mpv-player/mpv-build/issues/94
./use-ffmpeg-custom release/3.3
./use-mpv-custom v0.25.0
./update
./build 

 

Edited by haraldov
Link to comment
Share on other sites

CorpusColossus

@@haraldov I am on Linux Mint 18.2 and am using the the version of mpv available for that distro (which is 0.14.0).

 

I found time to install the same distro on a separate machine from the one hosting the Emby server and noticed an error message in the terminal when trying to watch a movie:

fs access result for path: Error: ENOENT: no such file or directory, access '/path/to/movie.mkv'

This path exists on the host machine but is not a valid path on the client machine. Any ideas?

Link to comment
Share on other sites

haraldov

@@CorpusColossus, as Luke said will this error message do not prevent mpv playback.

Emby Theater will first try to play direct over the network with nfs. Look here for more information: https://github.com/MediaBrowser/Wiki/wiki/Optional%20Network%20Paths.

You get this error message when Emby Theater is telling you the optional network path is not available.

After that it will try to stream and maybe transcode the recording with the help of Emby server.

 

Try to narrow down your playback problem by playing the recording with mpv on your pc first. You are using a old version of mpv. Maybe it needs to be upgraded?

~$ mpv "/srv/nfsv4/movies/Repo\ Men\ \(2010\)/Repo\ Men\ \(2010\).mkv" 

If this work check if you have installed node-mpv.

Follow me guide to set up mpv and Emby Theater for Linux here:

https://emby.media/community/index.php?/topic/42868-emby-theater-for-linux/?p=455189

https://emby.media/community/index.php?/topic/42868-emby-theater-for-linux/?p=442130

Edited by haraldov
Link to comment
Share on other sites

haraldov

1. npm from debian is to old, after apt-get install npm you need to update npm npm install -g npm

2. for eletron you need to run command: /usr/local/bin/npm install -g electron --unsafe-perm=true --allow-root

@@adam.niescierowicz, I have experienced the same installation trouble when installing emby theater as you have.

I have updated my installation notes for raspberry with your feedbacks https://emby.media/community/index.php?/topic/42868-emby-theater-for-linux/?p=455189.

Should work for debian and ubuntu too.

Edited by haraldov
Link to comment
Share on other sites

CorpusColossus

@@haraldov `mpv` looks like it is working correctly. I've traced the issue back to something being wrong with my `nodejs` and `npm` installations. After trying to correct the issue, I seem to have found myself in dependency hell. Need to research my way out of this one...

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 npm : Depends: nodejs but it is not going to be installed
       Depends: node-abbrev (>= 1.0.4) but it is not going to be installed
       Depends: node-ansi (>= 0.3.0-2) but it is not going to be installed
       Depends: node-ansi-color-table but it is not going to be installed
       Depends: node-archy but it is not going to be installed
       Depends: node-block-stream but it is not going to be installed
       Depends: node-fstream (>= 0.1.22) but it is not going to be installed
       Depends: node-fstream-ignore but it is not going to be installed
       Depends: node-github-url-from-git but it is not going to be installed
       Depends: node-glob (>= 3.1.21) but it is not going to be installed
       Depends: node-graceful-fs (>= 2.0.0) but it is not going to be installed
       Depends: node-inherits but it is not going to be installed
       Depends: node-ini (>= 1.1.0) but it is not going to be installed
       Depends: node-lockfile but it is not going to be installed
       Depends: node-lru-cache (>= 2.3.0) but it is not going to be installed
       Depends: node-minimatch (>= 0.2.11) but it is not going to be installed
       Depends: node-mkdirp (>= 0.3.3) but it is not going to be installed
       Depends: node-gyp (>= 0.10.9) but it is not going to be installed
       Depends: node-nopt (>= 3.0.1) but it is not going to be installed
       Depends: node-npmlog but it is not going to be installed
       Depends: node-once but it is not going to be installed
       Depends: node-osenv but it is not going to be installed
       Depends: node-read but it is not going to be installed
       Depends: node-read-package-json (>= 1.1.0) but it is not going to be installed
       Depends: node-request (>= 2.25.0) but it is not going to be installed
       Depends: node-retry but it is not going to be installed
       Depends: node-rimraf (>= 2.2.2) but it is not going to be installed
       Depends: node-semver (>= 2.1.0) but it is not going to be installed
       Depends: node-sha but it is not going to be installed
       Depends: node-slide but it is not going to be installed
       Depends: node-tar (>= 0.1.18) but it is not going to be installed
       Depends: node-underscore but it is not going to be installed
       Depends: node-which but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Link to comment
Share on other sites

haraldov

@@CorpusColossus

Have you tried to upgrade node.js and npm before you try to install the missing package?

Look here for howto do this:https://emby.media/community/index.php?/topic/42868-emby-theater-for-linux/?p=455189

Try to reset the npm cache: Troubleshooting npm - Source https://docs.npmjs.com/

npm cache clean

If this  do not help I do not know. Reinstalling?

Edited by haraldov
Link to comment
Share on other sites

morpheus1

Can this be installed on a Pi? If, hopefully yes, can is it limited to any version.

The instructions on the first page assumes a regular PC. Or, am I wrong?

Is there's anyone here using this on a Pi would you please care to pitch in with experiences as well?

Many thanks.

Link to comment
Share on other sites

Can this be installed on a Pi? If, hopefully yes, can is it limited to any version.

The instructions on the first page assumes a regular PC. Or, am I wrong?

Is there's anyone here using this on a Pi would you please care to pitch in with experiences as well?

Many thanks.

 

Yes it can, but the install process currently can be tricky, and it will remain so until we have a simple distributable package. thanks.

Link to comment
Share on other sites

Yesterday, I have tried this out on my Intel NUC HTPC, doing some music.

 

1.

I tried to play a Mix CD to see if it gives me gapless playback, but I have seen strange behavior:

- I want to be able to control the HTPC (headless for now) remotely, so I started up the Web-app from my PC

- I started playing the CD casting to the remote client, the client put out the sound on the machine just fine

- As soon as the second song came, playback stopped, and the web-app showed the first track playing, then after a few seconds again, and again, but nothing was playing

 

 

2.

Also, I do not get direct-play, I don't know why, server says:

Reason for transcoding:
Container not supported
Audio codec not supported

 

This is a simple FLAC file (stereo), tried it with 2 so far, I'm sure they are pretty standard ones. Should not transcode I believe, not sure where I look to troubleshoot.

 

 

3.

If I try to change the destination of the cast, or try to fast-forward, I get this exception, a few dozen times:

2017-12-28 17:19:02.348 Error HttpServer: Error processing request
        *** Error Report ***
        Version: 3.2.60.0
        Command line: /usr/lib/emby-server/bin/MediaBrowser.Server.Mono.exe -programdata /var/lib/emby-server -restartpath /usr/lib/emby-server/restart.sh
        Operating system: Unix 4.4.0.104
        64-Bit OS: True
        64-Bit Process: True
        User Interactive: False
        Mono: 4.8.1 (Stable 4.8.1.0/22a39d7 Tue May  2 22:26:20 UTC 2017)
        Processor count: 4
        Program data path: /var/lib/emby-server
        Application directory: /usr/lib/emby-server/bin
        System.ArgumentException: StartTimeTicks is not allowed.
          at Emby.Server.MediaEncoding.Api.Hls.DynamicHlsService+<GetDynamicSegment>d__13.MoveNext () [0x00050] in <9660b9518eb6424a914dff2c53832dbf>:0
        --- End of stack trace from previous location where exception was thrown ---
          at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at Emby.Server.Implementations.Services.ServiceExecGeneral+<Execute>c__async0.MoveNext () [0x0015f] in <283e6d64c4f54f1fbcf3f036adb82d8e>:0
        --- End of stack trace from previous location where exception was thrown ---
          at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at Emby.Server.Implementations.Services.ServiceHandler+<ProcessRequestAsync>c__async1.MoveNext () [0x0016b] in <283e6d64c4f54f1fbcf3f036adb82d8e>:0
        --- End of stack trace from previous location where exception was thrown ---
          at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at Emby.Server.Implementations.HttpServer.HttpListenerHost+<RequestHandler>c__async0.MoveNext () [0x00756] in <283e6d64c4f54f1fbcf3f036adb82d8e>:0
        System.ArgumentException
          at Emby.Server.MediaEncoding.Api.Hls.DynamicHlsService+<GetDynamicSegment>d__13.MoveNext () [0x00050] in <9660b9518eb6424a914dff2c53832dbf>:0
        --- End of stack trace from previous location where exception was thrown ---
          at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at Emby.Server.Implementations.Services.ServiceExecGeneral+<Execute>c__async0.MoveNext () [0x0015f] in <283e6d64c4f54f1fbcf3f036adb82d8e>:0
        --- End of stack trace from previous location where exception was thrown ---
          at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at Emby.Server.Implementations.Services.ServiceHandler+<ProcessRequestAsync>c__async1.MoveNext () [0x0016b] in <283e6d64c4f54f1fbcf3f036adb82d8e>:0
        --- End of stack trace from previous location where exception was thrown ---
          at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <dbb16e0bacdc4a0f87478e401bc29b6c>:0
          at Emby.Server.Implementations.HttpServer.HttpListenerHost+<RequestHandler>c__async0.MoveNext () [0x00756] in <283e6d64c4f54f1fbcf3f036adb82d8e>:0

 

Then the playback gets into a loop and nothing is playing at all, is FF not supported?

 

 

Looks good though :), just I cannot use it for some reason for music.

I will stick for now to Emby for Kodi

Link to comment
Share on other sites

Thanks Luke,

 

2. and 3. are resolved indeed, I was able to FF, and now Emby Server direct-plays the FLAC.

However for 1. I still see the same:

When the playback would continue with the second track, the playback suddenly stops, and nothing plays anymore, I have to stop and start again, but the result is the same.

 

Just let me know what info you need, I will try to reboot to have a fresh go, and to troubleshoot myself a bit.

Link to comment
Share on other sites

Yes.

 

Now the HTPC is headless, as I still not have my projector, I control it via VNC as of now.

I have added my movie library, and started a movie to test it, still scanning so maybe some things are not working well, I got a lot of "waiting" signs but I was able to play one.

I was able to cast onto it and I hear the audio :), and in VNC, I sort of see stuff, although through VNC I see the video is "behind" the app, but I do not thrust VNC for video :), so it might be just fine (I still have to setup the HTPC for video, but as I do not have anything to get the picture now, I wait with this)

Link to comment
Share on other sites

Can this be installed on a Pi? If, hopefully yes, can is it limited to any version.

The instructions on the first page assumes a regular PC. Or, am I wrong?

Is there's anyone here using this on a Pi would you please care to pitch in with experiences as well?

Many thanks.

It can be installed on the pi but mpv doesn't support deinterlacing so i have gone back to kodi to use pi. There are instructions how to install on the pi just in post 68. I have posted the deinterlacing issue on mpv boards but no developer has posted is it bug or not.

Link to comment
Share on other sites

morpheus1

Yes it can, but the install process currently can be tricky, and it will remain so until we have a simple distributable package. thanks.

Sir Luke, many thanks. I will wait and hopefully there is one soon. I'd be very happy to test. So feel free to PM me when it's ready. I can acquire a dedicated Pi just for that. And I think that a push towards releasing such a package would be great for the emby project because most of the people who'd know about emby also would know about the Pi, if not own a few. This will enhance the popularity of emby, without doubt.

Link to comment
Share on other sites

morpheus1

It can be installed on the pi but mpv doesn't support deinterlacing so i have gone back to kodi to use pi. There are instructions how to install on the pi just in post 68. I have posted the deinterlacing issue on mpv boards but no developer has posted is it bug or not.

@@denz I will follow your lead and use kodi until the package Sir Luke mentioned is released. So, any tips you'd offer me. I have a Pi right here waiting for your assistance. It has nothing on it. So guide me, denz. And many thanks in advance. I got it when the light flashed that it could be used as a client as opposed to a setup box, which will limit my use. With a Pi lots of other things can be installed and used. Though I'm also eyeing a Roku, but now I'm leaning towards implementing the Pi. Anyway, denz, please lead me on. Thanks!

Link to comment
Share on other sites

The easiest way to set up the pi go to librelec.tv and go to download page and follow instructions on the page on the page it has you need a software to burn the iso to your sd card. Once the iso is installed put the sd card in the pi. Once that step is done and have kodi running let us know there may be a need to change some settings if it is not filling full screen but that is all very easy. Then you can from the main emby.media download page download Emby for kodi links.

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