Source error - hagenlund - 2023-08-26
I'm running Jellyfin 10.8.10 on Windows and struggling to play some of the .MKV files in my library. When trying to play those files using the Android app I see the message "Source error" and when using Opera or Edge on desktop I see the message "Playback Error This client isn't compatible with the media and the server isn't sending a compatible media format."
I've tried to play the files locally, to rescan my library, to disable catptions, to disable hardware acceleration and to switch from Nvidia to Intel acceleration, but I keep getting the same error. The files play fine in MPC.
Does anyone have any idea what might be causing the issue, and how to fix it?
MPC gives me this when I check the MediaInfo:
Code: Video
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main 10@L4@Main
Codec ID : V_MPEGH/ISO/HEVC
Duration : 1 h 9 min
Bit rate : 4 003 kb/s
Width : 1 920 pixels
Height : 960 pixels
Display aspect ratio : 2.000
Frame rate mode : Variable
Frame rate : 23.976 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 10 bits
Bits/(Pixel*Frame) : 0.091
Stream size : 1.94 GiB (84%)
Writing library : x265 3.5+20-4c4aee0bc:[DJATOM's Mod][Windows][GCC 10.2.1][64 bit] 10bit
Encoding settings : cpuid=1111039 / frame-threads=4 / numa-pools=24 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=1920x960 / interlace=0 / total-frames=99638 / level-idc=0 / high-tier=1 / uhd-bd=0 / ref=5 / no-allow-non-conformance / no-repeat-headers / annexb / no-aud / no-hrd / info / hash=0 / no-temporal-layers / open-gop / min-keyint=24 / keyint=250 / gop-lookahead=0 / bframes=8 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=80 / lookahead-slices=0 / scenecut=40 / hist-scenecut=0 / radl=0 / no-splice / no-intra-refresh / ctu=64 / min-cu-size=8 / rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=2 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / no-strong-intra-smoothing / max-merge=4 / limit-refs=3 / limit-modes / me=3 / subme=5 / merange=57 / temporal-mvp / no-frame-dup / no-hme / weightp / no-weightb / no-analyze-src-pics / deblock=0:0 / no-sao / no-sao-non-deblock / rd=6 / selective-sao=0 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / no-b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.00 / psy-rdoq=1.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=abr / bitrate=4000 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=2 / cplxblur=20.0 / qblur=0.5 / ipratio=1.40 / pbratio=1.30 / aq-mode=3 / aq-strength=1.00 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=0 / overscan=0 / videoformat=5 / range=0 / colorprim=1 / transfer=1 / colormatrix=1 / chromaloc=0 / display-window=0 / cll=0,0 / min-luma=0 / max-luma=1023 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.00 / hist-threshold=0.03 / no-opt-cu-delta-qp / aq-motion / no-hdr10 / no-hdr10-opt / no-dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level=0 / analysis-save-reuse-level=0 / analysis-load-reuse-level=0 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=1 / refine-ctu-distortion=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-analysis-type=0 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei / no-hevc-aq / no-svt / no-field / qp-adaptation-range=1.00 / scenecut-aware-qp=0conformance-window-offsets / right=0 / bottom=0 / decoder-max-rate=0 / no-vbv-live-multi-pass
Default : Yes
Forced : No
Color range : Limited
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709
Audio
ID : 2
Format : E-AC-3 JOC
Format/Info : Enhanced AC-3 with Joint Object Coding
Commercial name : Dolby Digital Plus with Dolby Atmos
Codec ID : A_EAC3
Duration : 1 h 9 min
Bit rate mode : Constant
Bit rate : 768 kb/s
Channel(s) : 6 channels
Channel layout : L R C LFE Ls Rs
Sampling rate : 48.0 kHz
Frame rate : 31.250 FPS (1536 SPF)
Compression mode : Lossy
Stream size : 380 MiB (16%)
Language : English
Service kind : Complete Main
Default : No
Forced : No
Complexity index : 16
Number of dynamic objects : 15
Bed channel count : 1 channel
Bed channel configuration : LFE
Text #1
ID : 3
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Duration : 1 h 6 min
Bit rate : 59 b/s
Frame rate : 0.202 FPS
Count of elements : 807
Stream size : 29.1 KiB (0%)
Title : English
Language : English
Default : No
Forced : No
Text #2
ID : 4
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Duration : 1 h 6 min
Bit rate : 63 b/s
Frame rate : 0.220 FPS
Count of elements : 880
Stream size : 31.1 KiB (0%)
Title : English
Language : English
Default : No
Forced : No
This is an example of an ffmpeg log:
C:\Program Files\Jellyfin\Server
Code: /videos/52d41901-5809-f126-0bf0-6b20d910fe24/live.m3u8
{"Protocol":0,"Id":"52d419015809f1260bf06b20d910fe24","Path":"E:\\Videos\\video.mkv","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":"mkv","Size":null,"Name":"video.S01E01.1080p.WEB.H264-GGEZ[rartv]","IsRemote":false,"ETag":"06cf72c78e97c2c0faae43f72c380a22","RunTimeTicks":null,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"OpenToken":null,"RequiresClosing":false,"LiveStreamId":null,"BufferMs":null,"RequiresLooping":false,"SupportsProbing":true,"VideoType":0,"IsoType":null,"Video3DFormat":null,"MediaStreams":[],"MediaAttachments":[],"Formats":[],"Bitrate":null,"Timestamp":null,"RequiredHttpHeaders":{},"TranscodingUrl":null,"TranscodingSubProtocol":null,"TranscodingContainer":null,"AnalyzeDurationMs":null,"DefaultAudioStreamIndex":null,"DefaultSubtitleStreamIndex":null}
C:\Program Files\Jellyfin\Server\ffmpeg.exe -analyzeduration 200M -init_hw_device cuda=cu:0 -filter_hw_device cu -autorotate 0 -i file:"E:\Videos\video.mkv" -map_metadata -1 -map_chapters -1 -threads 0 -sn -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_base_url "hls/904a1bd5076f493b13e2c6c08c3b6511/" -hls_segment_filename "C:\ProgramData\Jellyfin\Server\transcodes\904a1bd5076f493b13e2c6c08c3b6511%d.ts" -hls_playlist_type event -hls_list_size 0 -y "C:\ProgramData\Jellyfin\Server\transcodes\904a1bd5076f493b13e2c6c08c3b6511.m3u8"
ffmpeg version 5.1.3-Jellyfin Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 12-win32 (GCC)
configuration: --prefix=/opt/ffmpeg --arch=x86_64 --target-os=mingw32 --cross-prefix=x86_64-w64-mingw32- --pkg-config=pkg-config --pkg-config-flags=--static --extra-libs='-lfftw3f -lstdc++' --extra-cflags=-DCHROMAPRINT_NODLL --extra-version=Jellyfin --disable-ffplay --disable-debug --disable-doc --disable-sdl2 --disable-ptx-compression --disable-w32threads --enable-pthreads --enable-shared --enable-lto --enable-gpl --enable-version3 --enable-schannel --enable-iconv --enable-libxml2 --enable-zlib --enable-lzma --enable-gmp --enable-chromaprint --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libwebp --enable-libvpx --enable-libzimg --enable-libx264 --enable-libx265 --enable-libsvtav1 --enable-libdav1d --enable-libfdk-aac --enable-opencl --enable-dxva2 --enable-d3d11va --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
file:E:\Videos\video.mkv: Permission denied
In Playback Error
This client isn't compatible with the media and the server isn't sending a compatible media format.
RE: Source error - Venson - 2023-08-26
Hey @hagenlund
The line:
file:E:\Videos\video.mkv: Permission denied
Says it all. Jellyfin (i assume runs as a service) does not have permission to access the media file. You have to give the user that runs jellyfin the rights to access those media files for it to play the media.
RE: Source error - hagenlund - 2023-08-26
(2023-08-26, 09:43 AM)Venson Wrote: Hey @hagenlund
The line:
file:E:\Videos\video.mkv: Permission denied
Says it all. Jellyfin (i assume runs as a service) does not have permission to access the media file. You have to give the user that runs jellyfin the rights to access those media files for it to play the media.
That's weird, I can play other files in the same subfolder without any issues. Looking at the permissions of the file and folder, the "everyone" group is listed with full control. I'm not seeing any difference in the permissions when I compare a working file to a non-working one.
I'm running Jellyfin as an application, and I'm not seeing any Jellyfin services in the Services MMC, I assume that means it's running in my user context. I've now given my own account full rights as well, restarted Jellyfin and rescanned the library, but I'm still seeing the same error.
I've also copied the file to the root library folder and renamed it to something else, still the same.
I'm sure you're on the right track, but at this point I'm stumped. Any ideas?
RE: Source error - TheDreadPirate - 2023-08-26
@Venson
Could Jellyfin and ffmpeg run with different privileges?
Does "Everyone" or your user have full control of the E Drive itself?
RE: Source error - hagenlund - 2023-08-26
(2023-08-26, 03:46 PM)TheDreadPirate Wrote: @Venson
Could Jellyfin and ffmpeg run with different privileges?
Does "Everyone" or your user have full control of the E Drive itself? I was thinking the same thing, that maybe one video was using ffmpeg with a certain set of priveliges, but other videos might run directly from Jellyfin with other priveliges. But the "everyone" group has full rights on the entire drive, and I've never touched the access rights on that drive before this issue appeared. So I'm still at a loss here.
RE: Source error - Venson - 2023-08-27
@TheDreadPirate @hagenlund
Not really. ffmpeg runs as a child process of jellyfin and with that as the same user/rights as the jf server.
WinACL (and in that regards all permissions) is a topic i am not intelligent enough to gasp. I had similar issues when moving files from one pc to another esp. with linux. however i can only see what the log says. Maybe the AV system blocks it if the permissions are all set recursively? Otherwise try disabling permission inheritence.
|