Jump to content

Unable to play media


Go to solution Solved by Luke,

Recommended Posts

Posted (edited)

Hey,

Had unfortunate event that the SSD of my Linux server crashed and everything was lost. Of course I did not have backups ( yeah I know :( ) so I needed to re-setup everything from scratch. I'm running Debian bullseye with docker to host emby server on my Intel NUC.

I think I have everything correctly done, but still I'm unable to play media. I'm getting: Playback Error: No compatible streams are currently available.

What do you think I missed with my setup? Weird part is that even though the folders are scanned correctly and all the movies are shown in the UI, the log says something about folder not found?

This is my docker compose: HomeLab/docker-compose.yml at main · Depechie/HomeLab (github.com)

hardware_detection-63777101912.txt ffmpeg-transcode-455a9e5b-8aa6-40d8-aea8-ae1bd826b396_1.txt

Edited by Glenn
Posted (edited)

Also the Emby server log show this...

2022-01-07 08:28:50.436 Error Server: Error processing request
	*** Error Report ***
	Version: 4.6.7.0
	Command line: /system/EmbyServer.dll -programdata /config -ffdetect /bin/ffdetect -ffmpeg /bin/ffmpeg -ffprobe /bin/ffprobe -restartexitcode 3
	Operating system: Linux version 5.10.0-10-amd64 (debian-kernel@lists.debian.org) (gcc-10 (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #1
	Framework: .NET Core 3.1.21
	OS/Process: x64/x64
	Runtime: system/System.Private.CoreLib.dll
	Processor count: 8
	Data path: /config
	Application path: /system
	System.IO.DirectoryNotFoundException: System.IO.DirectoryNotFoundException: Could not find a part of the path '/mnt/movies01/Tropic Thunder (2008)/Tropic Thunder (2008).mkv'.
	   at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter)
	   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode)
	   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
	   at Emby.Server.Implementations.IO.ManagedFileSystem.GetFileStream(String path, FileOpenMode mode, FileAccessMode access, FileShareMode share, Int32 bufferSize, FileOpenOptions fileOpenOptions)
	   at Emby.Server.Implementations.IO.ManagedFileSystem.GetFileStream(String path, FileOpenMode mode, FileAccessMode access, FileShareMode share, FileOpenOptions fileOpenOptions)
	   at Emby.Server.Implementations.IO.IOManager.GetResponse(HttpRequestOptions options, MediaProtocol protocol)
	   at Emby.Server.Implementations.IO.IOManager.GetResponse(HttpRequestOptions options)
	   at Emby.Server.Implementations.HttpServer.HttpResultFactory.GetContent(StaticFileResultOptions options, Int64 offset, Int64 length, CancellationToken cancellationToken)
	   at Emby.Server.Implementations.HttpServer.FileWriter.SetContentResponseHeaders(Nullable`1 reportedTotalContentLength, CancellationToken cancellationToken)
	   at Emby.Server.Implementations.HttpServer.HttpResultFactory.GetStaticResult(IRequest requestContext, StaticResultOptions options)
	   at Emby.Server.MediaEncoding.Api.Progressive.BaseProgressiveStreamingService.ProcessRequest(StreamRequest request, Boolean isHeadRequest)
	   at Emby.Server.Implementations.Services.ServiceController.GetTaskResult(Task task)
	   at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost appHost, IRequest httpReq, IResponse httpRes, RestPath restPath, String responseContentType, CancellationToken cancellationToken)
	   at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IRequest httpReq, ReadOnlyMemory`1 urlString, ReadOnlyMemory`1 localPath, CancellationToken cancellationToken)
	Source: System.Private.CoreLib
	TargetSite: Void ThrowExceptionForIoErrno(ErrorInfo, System.String, Boolean, System.Func`2[Interop+ErrorInfo,Interop+ErrorInfo])

Don't understand this to be honest...

Also not sure if I read the ffmpeg transcoding log correctly, but it seems it is not using any hadware acceleration? Is my assumption correct? Is that not possible for the integrated GPU of the Intel NUC? Any pointers on that? Ow HA is only for paid subscription? ( Emby Premiere Feature Matrix : Emby )

Edited by Glenn
Posted

Can you post your docker compose, and are you using Emby version of Docker or Linuxserver's, did you also add the 

devices:
      - /dev/dri:/dev/dri #optional

To pass through the IGPU

Posted
  emby:
    image: emby/embyserver
    container_name: emby
    network_mode: host # Enable DLNA and Wake-on-Lan
    environment:
      - UID=1000 # The UID to run emby as (default: 2)
      - GID=1000 # The GID to run emby as (default 2)
      - GIDLIST=44,107 # A comma-separated list of additional GIDs to run emby as (default: 2)
    volumes:
      - /home/depechie/emby/config:/config
      - /home/depechie/emby/movies01:/data/movies01
      - /home/depechie/emby/movies02:/data/movies02
      - /home/depechie/emby/moviesarch01:/data/moviesarch01
      - /home/depechie/emby/moviesarch02:/data/moviesarch02
      - /home/depechie/emby/series01:/data/series01
      - /home/depechie/emby/series02:/data/series02
    ports:
      - 8096:8096 # HTTP port
    devices:
      - /dev/dri:/dev/dri # VAAPI/NVDEC/NVENC render nodes
    restart: unless-stopped

 

Posted

It looks like the server is being denied access to the media files.

Posted

@Luke ok, I will investigate more in that area. Maybe my mounts are not correct. But still weird it loads all movies. What is the folder Emby uses for the ffmpeg transcoding? Could it be that it has not enough rights in that folder or something? Or is that covered in the docker scenario out of the box?

Posted
1 hour ago, Glenn said:

@Luke ok, I will investigate more in that area. Maybe my mounts are not correct. But still weird it loads all movies. What is the folder Emby uses for the ffmpeg transcoding? Could it be that it has not enough rights in that folder or something? Or is that covered in the docker scenario out of the box?

That's the server's transcoding temporary files folder, but in this case, it can't even read the contents of the source media file.

Posted

I remember that originally I have mounted my shares in Linux with CIFS, but this time I'm mounting with NFS.

I did this, because my NAS only has guest access for CIFS so everything is read only, through NFS the folders are writable too.

As test, I reverted 1 folder back to CIFS and tried playing a movie from there, but it gives the same error :(

Another entry in the log of Embyserver

2022-01-07 17:53:30.695 Info App: ProcessRun 'StreamTranscode 07bf6d' Execute: /bin/ffmpeg -loglevel +timing -y -print_graphs_file "/config/logs/ffmpeg-remux-07bf6d59-d213-444c-89f7-3894c62292db_1graph.txt" -copyts -start_at_zero -f matroska,webm -c:v:0 h264 -i "/mnt/movies01/Tropic Thunder (2008)/Tropic Thunder (2008).mkv" -map 0:0 -map 0:1 -sn -c:v:0 copy -c:a:0 libmp3lame -ab:a:0 192000 -ac:a:0 2 -metadata:s:a:0 language=eng -filter:a:0 "volume=2" -disposition:a:0 default -max_delay 5000000 -avoid_negative_ts disabled -f segment -map_metadata -1 -map_chapters -1 -segment_format mpegts -segment_list "/config/transcoding-temp/3813F1.m3u8" -segment_list_type m3u8 -segment_time 3 -segment_list_entry_prefix hls/3813F1/ -segment_start_number 0 -individual_header_trailer 0 -write_header_trailer 0 -segment_write_temp 1 "/config/transcoding-temp/3813F1_%d.ts"
2022-01-07 17:53:30.706 Info App: AppendExtraLogData - Read graph file: /config/logs/ffmpeg-remux-07bf6d59-d213-444c-89f7-3894c62292db_1graph.txt
2022-01-07 17:53:30.706 Info App: AppendExtraLogData - Deserialized GraphData fileStream: {0:n} bytes Graph Count: 0
2022-01-07 17:53:30.706 Info App: AppendExtraLogData - File Deleted
2022-01-07 17:53:30.707 Info App: ProcessRun 'StreamTranscode 07bf6d' Process exited with code 1
2022-01-07 17:53:30.747 Error Server: Error processing request
	*** Error Report ***
	Version: 4.6.7.0
	Command line: /system/EmbyServer.dll -programdata /config -ffdetect /bin/ffdetect -ffmpeg /bin/ffmpeg -ffprobe /bin/ffprobe -restartexitcode 3
	Operating system: Linux version 5.10.0-10-amd64 (debian-kernel@lists.debian.org) (gcc-10 (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #1
	Framework: .NET Core 3.1.21
	OS/Process: x64/x64
	Runtime: system/System.Private.CoreLib.dll
	Processor count: 8
	Data path: /config
	Application path: /system
	System.Exception: System.Exception: Error starting ffmpeg
	   at Emby.Server.MediaEncoding.Api.BaseStreamingService.StartFfMpeg(StreamState state, String outputPath, CancellationToken cancellationToken, Boolean acquireResources)
	   at Emby.Server.MediaEncoding.Api.Hls.BaseHlsService.ProcessRequest(StreamRequest request)
	   at Emby.Server.Implementations.Services.ServiceController.GetTaskResult(Task task)
	   at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost appHost, IRequest httpReq, IResponse httpRes, RestPath restPath, String responseContentType, CancellationToken cancellationToken)
	   at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IRequest httpReq, ReadOnlyMemory`1 urlString, ReadOnlyMemory`1 localPath, CancellationToken cancellationToken)
	Source: Emby.Server.MediaEncoding
	TargetSite: Void MoveNext()

There has to be something obvious I'm missing, something I did with my previous Linux Debian install, but since I do not have a backup I have no clue what it could be 😕

Maybe something with security settings for a user?

Posted (edited)

I would check the ID's you have used

As a test you can fire up the docker using

      - UID=0 # The UID to run emby as (default: 2)
      - GID=0 # The GID to run emby as (default 2)

This will run the docker as root, if the files play then we know it's an id issue

I don't use the Emby own docker as i stick to Linuxserver.io dockers so i have no clue what this is for

Quote
      - GIDLIST=44,107 # A comma-separated list of additional GIDs to run emby as (default: 2)

 

So try without that as well.

When you set the G/UID as 1000 i presume that actually matches a known user, i.e it matches your home user on the list if you do:

cat /etc/passwd

If it plays when docker set as root, then have to play around with folder permissions

Also You could try setting up a seperate docker using Linuxserver.io image in the link below (use a diff container name), people often ask why i use their image and it's simple, i have never had any issues with any of their images (largest maintainer of images), and no offence to the emby team but they have a lot more documentation on what each parameter is for.

 

Docker Hub Linuxserver.io Emby Image and Documentation

 

Take a screengrab of your main mount folder as well so we can see which user group owns the top level folder and subsequent sub folders

Edited by CassTG
  • Solution
Posted
7 hours ago, Glenn said:

I remember that originally I have mounted my shares in Linux with CIFS, but this time I'm mounting with NFS.

I did this, because my NAS only has guest access for CIFS so everything is read only, through NFS the folders are writable too.

As test, I reverted 1 folder back to CIFS and tried playing a movie from there, but it gives the same error :(

Another entry in the log of Embyserver

2022-01-07 17:53:30.695 Info App: ProcessRun 'StreamTranscode 07bf6d' Execute: /bin/ffmpeg -loglevel +timing -y -print_graphs_file "/config/logs/ffmpeg-remux-07bf6d59-d213-444c-89f7-3894c62292db_1graph.txt" -copyts -start_at_zero -f matroska,webm -c:v:0 h264 -i "/mnt/movies01/Tropic Thunder (2008)/Tropic Thunder (2008).mkv" -map 0:0 -map 0:1 -sn -c:v:0 copy -c:a:0 libmp3lame -ab:a:0 192000 -ac:a:0 2 -metadata:s:a:0 language=eng -filter:a:0 "volume=2" -disposition:a:0 default -max_delay 5000000 -avoid_negative_ts disabled -f segment -map_metadata -1 -map_chapters -1 -segment_format mpegts -segment_list "/config/transcoding-temp/3813F1.m3u8" -segment_list_type m3u8 -segment_time 3 -segment_list_entry_prefix hls/3813F1/ -segment_start_number 0 -individual_header_trailer 0 -write_header_trailer 0 -segment_write_temp 1 "/config/transcoding-temp/3813F1_%d.ts"
2022-01-07 17:53:30.706 Info App: AppendExtraLogData - Read graph file: /config/logs/ffmpeg-remux-07bf6d59-d213-444c-89f7-3894c62292db_1graph.txt
2022-01-07 17:53:30.706 Info App: AppendExtraLogData - Deserialized GraphData fileStream: {0:n} bytes Graph Count: 0
2022-01-07 17:53:30.706 Info App: AppendExtraLogData - File Deleted
2022-01-07 17:53:30.707 Info App: ProcessRun 'StreamTranscode 07bf6d' Process exited with code 1
2022-01-07 17:53:30.747 Error Server: Error processing request
	*** Error Report ***
	Version: 4.6.7.0
	Command line: /system/EmbyServer.dll -programdata /config -ffdetect /bin/ffdetect -ffmpeg /bin/ffmpeg -ffprobe /bin/ffprobe -restartexitcode 3
	Operating system: Linux version 5.10.0-10-amd64 (debian-kernel@lists.debian.org) (gcc-10 (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #1
	Framework: .NET Core 3.1.21
	OS/Process: x64/x64
	Runtime: system/System.Private.CoreLib.dll
	Processor count: 8
	Data path: /config
	Application path: /system
	System.Exception: System.Exception: Error starting ffmpeg
	   at Emby.Server.MediaEncoding.Api.BaseStreamingService.StartFfMpeg(StreamState state, String outputPath, CancellationToken cancellationToken, Boolean acquireResources)
	   at Emby.Server.MediaEncoding.Api.Hls.BaseHlsService.ProcessRequest(StreamRequest request)
	   at Emby.Server.Implementations.Services.ServiceController.GetTaskResult(Task task)
	   at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost appHost, IRequest httpReq, IResponse httpRes, RestPath restPath, String responseContentType, CancellationToken cancellationToken)
	   at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IRequest httpReq, ReadOnlyMemory`1 urlString, ReadOnlyMemory`1 localPath, CancellationToken cancellationToken)
	Source: Emby.Server.MediaEncoding
	TargetSite: Void MoveNext()

There has to be something obvious I'm missing, something I did with my previous Linux Debian install, but since I do not have a backup I have no clue what it could be 😕

Maybe something with security settings for a user?

That's totally differnet from the previous snippet. It's best to provide complete log files. thanks.

Posted

Ok... thx for all the help and time!!

But it was just stupid human error on my part. I'm sorry.

So I did have a copy of my old emby config and the folders where pointing to /mnt/movies01 /mnt/movies02 etc... in the library manager of Emby.

BUT I lost my docker compose and somehow I totally overlooked the fact I wrote /data/movies01 /data/movies02 etc... in the current docker. So of course Emby could not find the linux folders in it's container.

Changing my docker compose fixed it all.

  • Like 1
Posted

Thanks for the feedback.

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