[Support] Linuxserver.io - Emby


Recommended Posts

linuxserver_medium.thumb.png.b407cab2e164ef4adc7e4edd3c045566.png

 

Application Name: Emby

Application Site: https://emby.media/

Docker Hub: https://hub.docker.com/r/linuxserver/emby/

Github: https://github.com/linuxserver/docker-emby

 

Please post any questions/issues relating to this docker you have in this thread.

 

If you are not using Unraid (and you should be!) then please do not post here, instead head to linuxserver.io to see how to get support.

  • Like 1
Link to comment

We've made it easier to get Nvidia & iGPU hardware trancoding working with this container.  This post will detail what you need to do to use either of these in your container. (Emby Premiere Required)

 

Nvidia

1.  Install the Unraid Nvidia Plugin, download the version of Unraid required containing the Nvidia drivers and reboot

2.  Add the Emby container and add --runtime=nvidia to extra parameters (switch on advanced template view) and copy your GPU UUID to the pre-existing NVIDIA_VISIBLE_DEVICES parameter.  There is no need to utilise the NVIDIA_DRIVER_CAPABILITIES parameter any more.  This is handled by our container.

 

Intel GPU

1.  Edit your go file and add modprobe i915 to it, save and reboot.

2.  Add the Emby container and add --device=/dev/dri to extra parameters (switch on advanced template view)  There is no need to chmod/chown the /dev/dri, this is handled by the container.

Edited by linuxserver.io
  • Like 1
Link to comment
  • 2 months later...

can anyone help with this error please?

Version: 4.2.1.0

Command line: /app/emby/EmbyServer.dll -programdata /config -ffdetect /app/emby/ffdetect -ffmpeg /app/emby/ffmpeg -ffprobe /app/emby/ffprobe
Operating system: Unix 4.19.56.0
64-Bit OS: True
64-Bit Process: True
User Interactive: True
Runtime: file:///app/emby/System.Private.CoreLib.dll
Processor count: 2
Program data path: /config
Application directory: /app/emby
System.Net.HttpListenerException: System.Net.HttpListenerException (13): Permission denied
at SocketHttpListener.Net.HttpEndPointManager.GetEPListener(ILogger logger, String host, Int32 port, HttpListener listener, Boolean secure)
at SocketHttpListener.Net.HttpEndPointManager.AddPrefixInternal(ILogger logger, String p, HttpListener listener)
at SocketHttpListener.Net.HttpEndPointManager.AddListener(ILogger logger, HttpListener listener)
at SocketHttpListener.Net.HttpListener.Start()
at Emby.Server.Implementations.ApplicationHost.StartServer()
Source: SocketHttpListener
TargetSite: SocketHttpListener.Net.HttpEndPointListener GetEPListener(MediaBrowser.Model.Logging.ILogger, System.String, Int32, SocketHttpListener.Net.HttpListener, Boolean)

Info HttpServer: Adding HttpListener prefix http://+:8096/
Info HttpServer: Adding HttpListener prefix https://+:8920/
Info SqliteItemRepository: Default journal_mode for /config/data/library.db is wal
Error Main: Error in appHost.Init

*** Error Report ***

Version: 4.2.1.0

Command line: /app/emby/EmbyServer.dll -programdata /config -ffdetect /app/emby/ffdetect -ffmpeg /app/emby/ffmpeg -ffprobe /app/emby/ffprobe
Operating system: Unix 4.19.56.0
64-Bit OS: True
64-Bit Process: True
User Interactive: True
Runtime: file:///app/emby/System.Private.CoreLib.dll
Processor count: 2
Program data path: /config
Application directory: /app/emby
SQLitePCL.pretty.SQLiteException: Corrupt: database disk image is malformed
SQLitePCL.pretty.SQLiteException: Exception of type 'SQLitePCL.pretty.SQLiteException' was thrown.
at SQLitePCL.pretty.SQLiteException.CheckOk(sqlite3 db, Int32 rc)
at SQLitePCL.pretty.StatementImpl.MoveNext()
at SQLitePCL.pretty.DatabaseConnection.ExecuteAll(IDatabaseConnection This, String sql)
at Emby.Server.Implementations.Data.SqliteItemRepository.Initialize(SqliteUserDataRepository userDataRepo, IUserManager userManager)
at Emby.Server.Implementations.ApplicationHost.InitDatabases()
at Emby.Server.Implementations.ApplicationHost.Init()
at EmbyServer.HostedService.StartAsync(CancellationToken cancellationToken)
Source: SQLitePCL.pretty
TargetSite: Void CheckOk(SQLitePCL.sqlite3, Int32)

Info Main: Shutdown complete
Info Main: Application path: /app/emby/EmbyServer.dll

It ran ok for a week or so then this error happened.  i removed it and reinstalled but it's happened again after about a week

Link to comment

Hi Guys,

I am trying to setup a reverse proxy to connect to my home emby docker remotely. And I am having a few issues and maybe a lack of understanding. I couldn’t find this question or problem anywhere, that’s why I’m posting it here (not sure if it's an emby or a letsencrypt problem). Please excuse that I’m just a beginner and don’t understand everything.

Here is my situation:

I followed these tutorials from spaceinvaderone:
https://www.youtube.com/watch?v=I0lhZc25Sro
https://www.youtube.com/watch?v=AS0HydTEuA4

I have rented a domain (domain.com) at godaddy and changed the name servers to my cloudflare account. At my cloudflare  I have setup two cnames (nextcloud and emby) both with with the same target (sub.duckdns.org). This duckdns URL is connected to the duckdns docker running on my server.
(As far as I know this should work)

My router is configured to forward port 443 and port 80 to port 1443 and port 180 on my unraid machine.
The ports for the letsencrypt docker are changed respectively. When I view the log of letsencrypt it reads ‘Server ready’ at the bottom.

Then in the letsencrypt -> nginx -> poxy-confs folder  I saved the emby.subdomain.conf.sample file as emby.subdomain.conf. Where ‘server_name’ is ‘emby.*;’, because I want to access my emby through that subdomain.
This conf file has a few comments at the top:

# make sure that your dns has a cname set for emby, if emby is running in bridge mode, the below config should work as is, although,

The cname is setup, but emby is not running in bridge mode. I have setup a custom net, as shown in the spaceinvaderone video, but now I don’t know what to change in the conf file.

# the container name is expected to be "emby", if not, replace the lines "set $upstream_emby emby;" with "set $upstream_emby <containername>;"

As my container name is ‘Emby’ I changed that. But Emby is only the display name in Unraid, in the appdata folder there’s an EmbyServer folder, so to what should I change it in the conf?

# for host mode, replace the lines "proxy_pass http://$upstream_emby:8096;" with "proxy_pass http://HOSTIP:8096;" HOSTIP being the IP address of emby

What other mode than host mode is there for emby? And what is the IP address of emby? When I go to the emby settings, there are two addresses on the dashboard site. None of them work. Not In-Home nor Remote. This is probably because I didn’t setup port forwarding in my router settings. But to my understanding that’s how it’s supposed to be, as everything should be routed through letsencrypt.
I tried with different IP addresses for HOSTIP, but nothing did work and I don’t know what I’m missing. Or is it my unraid machine's ip? Because I can access emby using that.

# in emby settings, under "Advanced" change the public https port to 443, leave the local ports as is, set the "external domain" to your url,

Again I’m not sure what to put here. I communicate to letsencrypt through port 1443, so should I put that here as well? And is emby.domain.com my url or is it domain.com??

I still don’t really get how it works that two cnames point to the same ip (sub.duckdns.org), but letsencrypt is supposed to know when to connect to my nextcloud docker and when to my emby docker.

Any help regarding this will really be appreciated.
Thanks

 

SOLUTION:

Okay so I have just solved the issue and will show my steps for future people with a similar problem;

It doesn't matter if emby is running in bridge mode or not, but I think it has to be in the same network mode as letsencrypt. (Not sure if mandetory, but works for me) Also for <containername> choose the display name, not the folder's name. HOSTIP should be the local IP address (the right one from the emby docker at the unraid docker tab). Don't forward port 8096 in your router, because then you will have an additional exposed port, and then you wouldn't need letsencrypt. Inside the emby settings set public https port to 443 even if you changed the letsencrypt port like I did (letsencrypt handles my incoming port 1443 as port 443 in the internal proxynet). Don't forget your subdomain for your "external domain"! I still don't really get how exactly cnames work, but at this point I don't care anymore. It just works and I am happy about it. It's possible that my explanations aren't quite correct, because I didn't exactly know what I was doing, so please keep that in mind. In the end I think it was a cloudflare problem, because when I would try to connect firefox always showed a "not properly redirected error" and I had to disable proxy in my dns settings in cloudflare.

Edited by noran
Link to comment

Having an issue with the new UMASK_SET variable. I've set this to 000. However new images get created in my media folders with the wrong permissions. 

 

I have a user script to tidy these up but it would be good if Emby created files with the correct permissions. The files it creates seem to be using the default UMASK of 022 as created files are 644 and backdrops directories are 755. I want 666 files and 777 directories if at all possible.

Link to comment
3 hours ago, dgreig said:

Having an issue with the new UMASK_SET variable. I've set this to 000. However new images get created in my media folders with the wrong permissions. 

 

I have a user script to tidy these up but it would be good if Emby created files with the correct permissions. The files it creates seem to be using the default UMASK of 022 as created files are 644 and backdrops directories are 755. I want 666 files and 777 directories if at all possible.

Please post your docker run command.

Link to comment

As requested:

 

root@localhost:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='emby' --net='bridge' --cpuset-cpus='10,11,12,13,14,15,26,27,28,29,30,31' --log-opt max-size='10m' --log-opt max-file='3' -e TZ="Europe/London" -e HOST_OS="Unraid" -e 'UID'='99' -e 'GID'='100' -e 'GIDLIST'='100' -e 'NVIDIA_VISIBLE_DEVICES'='GPU-66d7bffd-998c-3fd7-c9eb-f71063803d75' -e 'UMASK_SET'='000' -p '8096:8096/tcp' -v '/mnt':'/mnt':'rw' -v '/mnt/user':'/unraid':'rw' -v '/tmp':'/config/transcoding-temp':'rw' -v '/mnt/cache/appdata/EmbyServer':'/config':'rw' --runtime=nvidia 'emby/embyserver:beta' 

26d948bb9ae05b57247936dc185bfc3f79713fc8acce655f5b05ae8ecc266653

The command finished successfully!

 

The script I wrote to identify these issues runs every day and picked up the following this morning:

 


Script Starting Fri, 06 Sep 2019 06:45:01 +0100

Full logs for this script are available at /tmp/user.scripts/tmpScripts/Fix File Permissions/log.txt

Fixing files not conforming to unRAID permissions standards in XXX share
/mnt/user/xxx/xxx/xxx/xxx.nfo : -rw-r--r--
/mnt/user/xxx/xxx/xxx/poster.jpg : -rw-r--r--
/mnt/user/xxx/xxx/xxx/fanart.jpg : -rw-r--r--
/mnt/user/xxx/xxx/xxx/landscape.jpg : -rw-r--r--
/mnt/user/xxx/xxx/xxx/logo.png : -rw-r--r--
Fixing directories not conforming to unRAID permissions standards in XXX share
Fixing files and directories not conforming to unRAID user:group standards in XXX share

Fixing files not conforming to unRAID permissions standards in YYY share
Fixing directories not conforming to unRAID permissions standards in YYY share
Fixing files and directories not conforming to unRAID user:group standards in YYY share

Fixed all issues where found

Edited by dgreig
Link to comment
2 hours ago, dgreig said:

As requested:

 

root@localhost:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='emby' --net='bridge' --cpuset-cpus='10,11,12,13,14,15,26,27,28,29,30,31' --log-opt max-size='10m' --log-opt max-file='3' -e TZ="Europe/London" -e HOST_OS="Unraid" -e 'UID'='99' -e 'GID'='100' -e 'GIDLIST'='100' -e 'NVIDIA_VISIBLE_DEVICES'='GPU-66d7bffd-998c-3fd7-c9eb-f71063803d75' -e 'UMASK_SET'='000' -p '8096:8096/tcp' -v '/mnt':'/mnt':'rw' -v '/mnt/user':'/unraid':'rw' -v '/tmp':'/config/transcoding-temp':'rw' -v '/mnt/cache/appdata/EmbyServer':'/config':'rw' --runtime=nvidia 'emby/embyserver:beta' 

26d948bb9ae05b57247936dc185bfc3f79713fc8acce655f5b05ae8ecc266653

The command finished successfully!

 

The script I wrote to identify these issues runs every day and picked up the following this morning:

 


Script Starting Fri, 06 Sep 2019 06:45:01 +0100

Full logs for this script are available at /tmp/user.scripts/tmpScripts/Fix File Permissions/log.txt

Fixing files not conforming to unRAID permissions standards in XXX share
/mnt/user/xxx/xxx/xxx/xxx.nfo : -rw-r--r--
/mnt/user/xxx/xxx/xxx/poster.jpg : -rw-r--r--
/mnt/user/xxx/xxx/xxx/fanart.jpg : -rw-r--r--
/mnt/user/xxx/xxx/xxx/landscape.jpg : -rw-r--r--
/mnt/user/xxx/xxx/xxx/logo.png : -rw-r--r--
Fixing directories not conforming to unRAID permissions standards in XXX share
Fixing files and directories not conforming to unRAID user:group standards in XXX share

Fixing files not conforming to unRAID permissions standards in YYY share
Fixing directories not conforming to unRAID permissions standards in YYY share
Fixing files and directories not conforming to unRAID user:group standards in YYY share

Fixed all issues where found

You are not using our container.

Link to comment

I have an issue that's driving me a little nuts.

 

I have emby as a docker container and because docker assigns it a private 172.17.x.x address clients inside my home network can't access the server when logging in using emby connect.  I can give the container it's own IP address on my network which fixes that issue but then other apps such as Sonarr and Radarr can't talk to it.  


Any ideas?

 

 

Link to comment
  • 2 months later...
  • 1 month later...
4 hours ago, casperse said:

How to split media content to a unassigned drive in the Docker config?

I can see that this Docker image uses:

image.png.654eca5fe8aad0e4fd00732043cab909.png

 

So would I keep this and just create a new path for:

metadata?

 

On the Emby Docker created by Emby I just pointed everything to the Unassigned drive in the:

image.png.91127c907d17e18b7faa0f1b57094440.png

 

 

 

I'm not sure what you are asking here. You first talk about media content, then about metadata.

 

Are you trying to use the config from the official emby container?

Link to comment
  • 2 weeks later...

I've followed the SpaceInvader tutorial for Hardware transcoding. 

I have a GTX 1060 here which is capable of hevc decoding and encoding. 

 

I can do hardware encoding and decoding of h.264 just fine. 

But when I try to play hevc content like a uhd bluray remux that is 4k hevc it uses software using my cpu.

 

It can see the gpu on emby advanced tab, it even shows it for hevc encoding and decoding both checked but it uses software for some odd reason.

 

Is there anything special I need to do to support HEVC?

Link to comment
7 hours ago, Derek_ said:

There's three versions of Emby available (this one, one from Emby themselves, and Binhex). Does anyone know the difference them?

Containers are similar to very minimal VM's. Different containers can use a different base OS, have different support for hardware transcoding, have different updating strategies, etc.

 

You will need to do some legwork yourself to figure out which container author fits your needs best.

Link to comment
7 hours ago, Derek_ said:

(this one, one from Emby themselves, and Binhex)

At the heart of it, there is no fundamental difference.  ie: Emby is emby is emby.

 

Difference lies in some subtleties. and as @jonathanm stated support regarding hardware transcoding.

 

lsio issues updates for the containers if the base OS has an update (security patch), or emby get's updated pretty much the minute that it happens.

 

binhex issues updates for the containers whenever the arch upstream repository for emby gets updated (which will lag behind the actual updates)

 

emby issues updates for the containers whenever they release a new stable version (ie: 2 months ago) or if you installed the beta version 2 days ago.  No clue about their security policies.

 

If you're going to be using the nVidia plugin, you're definitely going to want to run the lsio version, as it'll at least be tested with the nvidia hardware transcoding.  Everything else probably only supports intel GPU transcoding if you passthrough the appropriate commands and have a compatible (ie: older iGPU)

 

All else being equal and if you're not doing hardware transcoding, you're looking at either lsio or @binhex

 

ie: Long story short, you're not the first to ask this type of question (although usually it's about Plex), CA has this policy

Quote

In the situations where there is already a multitude of certain applications available (ie: Plex, nzbGet, Radarr, etc) new submissions of those applications will not be accepted.  

 

  • Thanks 1
Link to comment
Just now, DarphBobo said:

Why not recommend the official version?  Wouldn't the official container be the way to go?

Because based upon support requests here in the forum and activity of the OP of the thread, you can reasonably expect no support via the official channels here in this forum regarding any unRaid specific issues.

 

The support on the whole for emby via their own forum / discord / whatnot may be amazing, but my recommendations are based upon support you can get here.  And it's purely a personal opinion...

  • Thanks 1
Link to comment
Just now, dockerPolice said:

Because based upon support requests here in the forum and activity of the OP of the thread, you can reasonably expect no support via the official channels here in this forum regarding any unRaid specific issues.

 

The support on the whole for emby via their own forum / discord / whatnot may be amazing, but my recommendations are based upon support you can get here.  And it's purely a personal opinion...

Fair enough...  To each their own.

Edited by DarphBobo
Link to comment
17 hours ago, dockerPolice said:

lsio issues updates for the containers if the base OS has an update (security patch), or emby get's updated pretty much the minute that it happens.

 

emby issues updates for the containers whenever they release a new stable version (ie: 2 months ago) or if you installed the beta version 2 days ago.  No clue about their security policies.

 

If you're going to be using the nVidia plugin, you're definitely going to want to run the lsio version, as it'll at least be tested with the nvidia hardware transcoding.  Everything else probably only supports intel GPU transcoding if you passthrough the appropriate commands and have a compatible (ie: older iGPU)

 

All else being equal and if you're not doing hardware transcoding, you're looking at either lsio or @binhex

Great answer, (i quoted the parts most relevant to me) thanks.

 

I don't mind the choice, it's just that there's no differentiating information in the information available. Rather than stopping duplicates, it'd be good if new additions were required to explain the differences.

 

I'll go with LinuxServer's i think. I've had good experience with those guys and girls :)

 

Cheers.

Link to comment
  • 3 months later...

How do i know what GPU this docker is using? I have onboard Intel, and an Nvidia GPU.

 

I ask because i basically can't skip/slide a movie. It kind of technically works, but it's unusable - it will take as long for it to skip to the point as it would just watching it. I wouldn't have thought it would do this even using the Intel GPU but thought i'd have a look. Perhaps there's some other setting i've overlooked?

 

Am i reading correctly that in order to use the Nvidia GPU i have to install the unRAID Nvidia Plugin? Will that help without also paying for Emby Premiere?

 

I've never used streaming software before, so i'm a tad confused.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.