Jump to content

Emby fails to play any Extras, both Web and Android clients


Go to solution Solved by casskaydee,

Recommended Posts

casskaydee
Posted

Server info:

  • Version 4.8.8.0
  • Running via Docker on Raspberry Pi 5
    • (Linux raspberrypi 6.6.28+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.28-1+rpt1 (2024-04-22) aarch64 GNU/Linux)
  • contents of docker-compose:
version: "2.3"
services:
  emby:
    image: emby/embyserver_arm64v8
    container_name: embyserver
    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=1000 # A comma-separated list of additional GIDs to run emby as (default: 2)
    volumes:
      - /home/cass/.config/embyserver:/config
      - /mnt/nas/Video:/mnt/Video
    ports:
      - 8096:8096 # HTTP port
      - 8920:8920 # HTTPS port
    devices:
      - /dev/dri:/dev/dri # VAAPI/NVDEC/NVENC render nodes
    restart: on-failure

 

I have a 3-minute MKV (480i MPEG2 / AC3 Stereo) video file ripped from a DVD I own located at '/mnt/Video/Test/Test Movie.mkv' and another copy of the exact same file located at '/mnt/Video/Test/Extras/Test Extra.mkv'

Emby has detected and added these to my movie library as a title called "Test" (which it apparently identified as a 2013 movie starring Scott Marlowe)

I'm attaching a log from where I restarted the server and then did the following:

  • Attempted to watch the Title version via Web (Chrome/Windows). Worked fine.
    • Timestamp: 2024-06-16 23:43:17
  • Attempted to watch the Extras version via Web (Chrome/Windows). Error: "Playback Error No compatible streams are currently available. Please try again later or contact your system administrator for details"
    • Timestamp: 2024-06-16 23:43:45
  • Attempted to watch the Title version via Android App. Worked fine.
    • Timestamp: 2024-06-16 23:44:47
  • Attempted to watch the Extras version via Android App. Error: "Playback Error No compatible streams are currently available. Please try again later or contact your system administrator for details"
    • Timestamp: 2024-06-16 23:45:08

embylog.txt

casskaydee
Posted

This was just a test I set up to make sure it wasn't a problem with the video files themselves. This is happening consistently with the Extras of every single movie title that has them. At one point in time I was able to get one to play on Android, but then a few minutes later (and since then) none of them will on either Web or Android. I haven't tested any other clients; I don't use any other clients.

Posted

Hi, looks like the file isn't available?

2024-06-16 23:43:45.427 Error Server: Error processing request
	*** Error Report ***
	Version: 4.8.8.0
	Command line: /system/EmbyServer.dll -programdata /config -ffdetect /bin/ffdetect -ffmpeg /bin/ffmpeg -ffprobe /bin/ffprobe -restartexitcode 3
	Operating system: Linux version 6.6.28+rpt-rpi-2712 (debian-kernel@lists.debian.org) (gcc-12 (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PR
	Framework: .NET 6.0.25
	OS/Process: arm64/arm64
	Runtime: system/System.Private.CoreLib.dll
	Processor count: 4
	Data path: /config
	Application path: /system
	System.IO.FileNotFoundException: System.IO.FileNotFoundException: smb://192.168.86.214/share/Video/_MOVIES/Test/Extras/Test Extra.mkv
	   at Emby.Server.MediaEncoding.Api.Progressive.VideoService.Get(GetFile request)

In any case, you might have better luck by mounting these smb shares to a local path in the docker container, and then using that local path in Emby Server.

casskaydee
Posted

The file is definitely available. I can play it just fine on VLC either on Windows or Android. And this is true for every single file that's under an "Extras" subfolder underneath a movie folder. If it's really that the file isn't available, why would it only be these files inside of "Extras" folders, and only Emby that can't read them?

I can try the mount option I suppose. As you can see from the docker compose file I tried mapping the mounted folder in the host to '/mnt/Video' inside the container but then selecting that mounted path for the library did not seem to work.

I haven't tried creating another image that actually mounts the nas inside the container itself. If I do that, is there a way to update my existing library to point at that instead without losing all of the metadata/images/etc I've tweaked for them thus far?

  • Thanks 1
Happy2Play
Posted

It chokes here also

2024-06-16 23:43:45.950 Error ProviderManager: Error in metadata saver
	*** Error Report ***
	Version: 4.8.8.0
	Command line: /system/EmbyServer.dll -programdata /config -ffdetect /bin/ffdetect -ffmpeg /bin/ffmpeg -ffprobe /bin/ffprobe -restartexitcode 3
	Operating system: Linux version 6.6.28+rpt-rpi-2712 (debian-kernel@lists.debian.org) (gcc-12 (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PR
	Framework: .NET 6.0.25
	OS/Process: arm64/arm64
	Runtime: system/System.Private.CoreLib.dll
	Processor count: 4
	Data path: /config
	Application path: /system
	System.IO.IOException: System.IO.IOException: Create Handle Failed: Video\_MOVIES\Test\Extras. NTStatus: FILE_DOES_NOT_EXIST
	   at EzSmb.Transports.Shares.Handlers.Bases.HandlerBase..ctor(SmbType smbType, ISMBFileStore store, String path, HandleType handleType, NodeType nodeType, HandleArgs args)
	   at EzSmb.Transports.Shares.Handlers.Smb2Handler..ctor(ISMBFileStore store, String path, HandleType handleType, NodeType nodeType, HandleArgs args)
	   at EzSmb.Transports.Shares.Smb2Share.GetHandler(String path, HandleType handleType, NodeType nodeType, HandleArgs args)
	   at EzSmb.Transports.Shares.Bases.ShareBase.GetHandler(String path, HandleType handleType, NodeType nodeType)
	   at EzSmb.Transports.Shares.Bases.ShareBase.CreateFolder(Node node, String folderName)
	   at EzSmb.Node.CreateFolder(String folderName, String relatedPath)
	   at Emby.Server.Implementations.IO.SmbFileSystem.CreateDirectory(String path)
	   at Emby.Server.Implementations.IO.ManagedFileSystem.CreateDirectory(String path)
	   at NfoMetadata.Savers.BaseNfoSaver.SaveToFile(Stream stream, String path, LibraryOptions libraryOptions, CancellationToken cancellationToken)
	   at NfoMetadata.Savers.BaseNfoSaver.Save(BaseItem item, LibraryOptions libraryOptions, CancellationToken cancellationToken)
	   at Emby.Providers.Manager.ProviderManager.SaveMetadata(BaseItem item, LibraryOptions libraryOptions, ItemUpdateType updateType, IMetadataSaver[] savers, CancellationToken cancellationToken)
	Source: Emby.Server.Implementations
	TargetSite: Void .ctor(EzSmb.Params.Enums.SmbType, SMBLibrary.Client.ISMBFileStore, System.String, EzSmb.Transports.Shares.Handlers.Enums.HandleType, EzSmb.NodeType, EzSmb.Transports.Shares.Handlers.HandleArgs)

And can not probe the media

2024-06-16 23:43:46.044 Error App: Error in ffprobe
	*** Error Report ***
	Version: 4.8.8.0
	Command line: /system/EmbyServer.dll -programdata /config -ffdetect /bin/ffdetect -ffmpeg /bin/ffmpeg -ffprobe /bin/ffprobe -restartexitcode 3
	Operating system: Linux version 6.6.28+rpt-rpi-2712 (debian-kernel@lists.debian.org) (gcc-12 (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PR
	Framework: .NET 6.0.25
	OS/Process: arm64/arm64
	Runtime: system/System.Private.CoreLib.dll
	Processor count: 4
	Data path: /config
	Application path: /system
	Emby.Server.MediaEncoding.Unified.Ffmpeg.FfRunException: Emby.Server.MediaEncoding.Unified.Ffmpeg.FfRunException: ffprobe failed - streams and format are both null: -i "http://127.0.0.1:8096/Items/File?Id=smb%3A%2F%2F192.168.86.214%2Fshare%2FVideo%2F_MOVIES%2FTest%2FExtras%2FTest+Extra.mkv" -threads 0 -v info -print_format json -show_streams -show_chapters -show_format -show_data
	ffprobe version 5.1-emby_2023_06_25 Copyright (c) 2007-2022 the FFmpeg developers and softworkz for Emby LLC
	  built with gcc 10.3.0 (crosstool-NG 1.25.0)
	[http @ 0x43d4e00] HTTP error 404 Not Found
	http://127.0.0.1:8096/Items/File?Id=smb%3A%2F%2F192.168.86.214%2Fshare%2FVideo%2F_MOVIES%2FTest%2FExtras%2FTest+Extra.mkv: Server returned 404 Not Found
	
	
	{
	
	}
	   at Emby.Server.MediaEncoding.Probing.MediaProbeManager.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, String userAgent, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Boolean hasMixedProtocols, CancellationToken cancellationToken)
	   at Emby.Providers.MediaInfo.FFProbeVideoInfo.ProbeVideo[T](MetadataResult`1 metadataResult, MetadataRefreshOptions options, LibraryOptions libraryOptions, CancellationToken cancellationToken)
	   at Emby.Providers.Manager.MetadataService`2.RunCustomProvider(ICustomMetadataProvider`1 provider, MetadataResult`1 itemResult, String logName, MetadataRefreshOptions options, LibraryOptions libraryOptions, RefreshResult refreshResult, CancellationToken cancellationToken)
	Source: Emby.Server.MediaEncoding
	TargetSite: Void MoveNext()

But as mentioned all related to the smb share.

  • Solution
casskaydee
Posted (edited)

OK I did get this to work. I still can't figure out why it had no problems serving any movies or TV shows straight from the network path without mounting and only ever choked on Extras, or why my original attempt to simply map the host-mounted path and use that for my Library paths failed, but in any case, it does seem to be working now.

Just in case anyone else has this issue and is running the Docker Raspberry Pi image like I am, here is what I had to do to fix it:

In my `docker-compose.yml`, replace:

    image: emby/embyserver_arm64v8

with:
 

    build: .

and add:
 

    cap_add:
      - SYS_ADMIN

(I also removed my "/mnt/nas/Video:/mnt/Video" volume mapping since I never got that working in the first place)


In the same directory, add a `Dockerfile`:
 

FROM emby/embyserver_arm64v8

USER root

RUN mkdir -pv /mnt/nas

RUN mkdir -pv /usr/local/bin
COPY mount-nas.sh /usr/local/bin/mount-nas.sh
RUN chmod -v +x /usr/local/bin/mount-nas.sh

ENTRYPOINT ["/bin/sh", "/usr/local/bin/mount-nas.sh"]

In the same directory, add a file called `mount-nas.sh`:

#!/bin/sh

# Bail if the mount fails
set -e

# Check if the current user is root
if [ "$(id -u)" -ne 0 ]; then
  echo "USER $(id -u)" >&2
  echo "This script must be run as root" >&2
  exit 1
fi

# Mount the share
mount -t cifs //192.168.86.214/share /mnt/nas -o user,rw,vers=3.0,user=root,pass=root,nofail

# (Optional) Display success message
cat /mnt/nas/path/to/mount-success.txt

# Execute the original Emby entrypoint
exec /init

Then I followed the steps from this thread (minus the TypeBasedItems part since that table is only in previous Emby versions apparently).
 

Started back up the server and my library is all there, unchanged, but now Extras will play. Thanks for the advice; I would have never guessed this to be the issue. ^_^

Edited by casskaydee
added note about removing volume mapping
  • Thanks 1

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