jellyfin / jellyfin-plugin-tvheadend

https://jellyfin.org
MIT License
32 stars 19 forks source link

Can't play recordings #94

Open anyoneyun opened 1 month ago

anyoneyun commented 1 month ago

Hi all, I've been unable to play recordings on my Jellyfin server. When a recording is selected, Jellyfin states "Playback failed due to a fatal player error".

Here is the FFMPEG log from Jellyfin:

{"Protocol":1,"Id":"d10670900c028fa014e82bf99cf4c855","Path":"http://user:password@192.168.1.50:9981/dvrfile/1878516677","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":null,"Size":null,"Name":"propaganda","IsRemote":false,"ETag":null,"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":0,"TranscodingContainer":null,"AnalyzeDurationMs":null,"DefaultAudioStreamIndex":null,"DefaultSubtitleStreamIndex":null}

/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -init_hw_device vaapi=va:,kernel_driver=i915,driver=iHD -init_hw_device qsv=qs@va -filter_hw_device qs -noautorotate -i "http://user:password@192.168.1.50:9981/dvrfile/1878516677" -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 fmp4 -hls_fmp4_init_filename "40652357a1e1f5a2544a916fdec5ba57-1.mp4" -start_number 0 -hls_base_url "hls/40652357a1e1f5a2544a916fdec5ba57/" -hls_segment_filename "/cache/transcodes/40652357a1e1f5a2544a916fdec5ba57%d.mp4" -hls_playlist_type event -hls_list_size 0 -y "/cache/transcodes/40652357a1e1f5a2544a916fdec5ba57.m3u8"

ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 12 (Debian 12.2.0-14)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
[tcp @ 0x55e536ab4fc0] Port missing in uri
http://user:password@192.168.1.50:9981/dvrfile/1878516677: Invalid argument

Clearly something is wrong because it says at the bottom, "Port missing in URI" but I fail to understand this error as the port is present. Any idea? Thanks!

Derkades commented 1 month ago

I also have trouble playing back TVHeadend recording but with a different error. It seemingly tries to look up the recording as a path on disk instead of a URL.

[10:27:58] [ERR] [37] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Error extracting timestamp info from http://jellyfin:password@10.0.0.2:9981/dvrfile/1709747761
System.IO.DirectoryNotFoundException: Could not find a part of the path '/http:/jellyfin:password@10.0.0.2:9981/dvrfile/1709747761'.
   at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirError)
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& filePermissions, Boolean failForSymlink, Boolean& wasSymlink, Func`4 createOpenException)
   at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
   at MediaBrowser.MediaEncoding.Probing.ProbeResultNormalizer.GetMpegTimestamp(String path)
   at MediaBrowser.MediaEncoding.Probing.ProbeResultNormalizer.ExtractTimestamp(MediaInfo video)