ConfusedPolarBear / intro-skipper

Fingerprint audio to automatically detect and skip intro sequences in Jellyfin
GNU General Public License v3.0
984 stars 363 forks source link

Intro skipper task failing #166

Closed akyag closed 1 year ago

akyag commented 1 year ago

Describe the bug

I have the latest jellyfin. This issue started after upgrading either ffmpeg or jellyfin-ffmpeg or jellyfin. I have ffmpeg 6 and jellyfin-ffmpeg6 installed. I tried looking up "The installed version of ffmpeg does not support chromaprint" but couldn't find any relevant information. Any help appreciated.

Operating system

Arch

Jellyfin installation method

Aur

Container image and tag

No response

Support Bundle

FFmpeg version:

ffmpeg version n6.0 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 13.1.1 (GCC) 20230429
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libjxl --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-version3 --enable-vulkan
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

FFmpeg muxer list:

File formats:
 D. = Demuxing supported
 .E = Muxing supported
 --
  E 3g2             3GP2 (3GPP2 file format)
  E 3gp             3GP (3GPP file format)
  E a64             a64 - video for Commodore 64
  E ac3             raw AC-3
  E adts            ADTS AAC (Advanced Audio Coding)
  E adx             CRI ADX
  E aiff            Audio IFF
  E alaw            PCM A-law
  E alp             LEGO Racers ALP
  E alsa            ALSA audio output
  E amr             3GPP AMR
  E amv             AMV
  E apm             Ubisoft Rayman 2 APM
  E apng            Animated Portable Network Graphics
  E aptx            raw aptX (Audio Processing Technology for Bluetooth)
  E aptx_hd         raw aptX HD (Audio Processing Technology for Bluetooth)
  E argo_asf        Argonaut Games ASF
  E argo_cvg        Argonaut Games CVG
  E asf             ASF (Advanced / Active Streaming Format)
  E asf_stream      ASF (Advanced / Active Streaming Format)
  E ass             SSA (SubStation Alpha) subtitle
  E ast             AST (Audio Stream)
  E au              Sun AU
  E avi             AVI (Audio Video Interleaved)
  E avif            AVIF
  E avm2            SWF (ShockWave Flash) (AVM2)
  E avs2            raw AVS2-P2/IEEE1857.4 video
  E avs3            AVS3-P2/IEEE1857.10
  E bit             G.729 BIT file format
  E caf             Apple CAF (Core Audio Format)
  E cavsvideo       raw Chinese AVS (Audio Video Standard) video
  E codec2          codec2 .c2 muxer
  E codec2raw       raw codec2 muxer
  E crc             CRC testing
  E dash            DASH Muxer
  E data            raw data
  E daud            D-Cinema audio
  E dfpwm           raw DFPWM1a
  E dirac           raw Dirac
  E dnxhd           raw DNxHD (SMPTE VC-3)
  E dts             raw DTS
  E dv              DV (Digital Video)
  E dvd             MPEG-2 PS (DVD VOB)
  E eac3            raw E-AC-3
  E f32be           PCM 32-bit floating-point big-endian
  E f32le           PCM 32-bit floating-point little-endian
  E f4v             F4V Adobe Flash Video
  E f64be           PCM 64-bit floating-point big-endian
  E f64le           PCM 64-bit floating-point little-endian
  E fbdev           Linux framebuffer
  E ffmetadata      FFmpeg metadata in text
  E fifo            FIFO queue pseudo-muxer
  E fifo_test       Fifo test muxer
  E film_cpk        Sega FILM / CPK
  E filmstrip       Adobe Filmstrip
  E fits            Flexible Image Transport System
  E flac            raw FLAC
  E flv             FLV (Flash Video)
  E framecrc        framecrc testing
  E framehash       Per-frame hash testing
  E framemd5        Per-frame MD5 testing
  E g722            raw G.722
  E g723_1          raw G.723.1
  E g726            raw big-endian G.726 ("left-justified")
  E g726le          raw little-endian G.726 ("right-justified")
  E gif             CompuServe Graphics Interchange Format (GIF)
  E gsm             raw GSM
  E gxf             GXF (General eXchange Format)
  E h261            raw H.261
  E h263            raw H.263
  E h264            raw H.264 video
  E hash            Hash testing
  E hds             HDS Muxer
  E hevc            raw HEVC video
  E hls             Apple HTTP Live Streaming
  E ico             Microsoft Windows ICO
  E ilbc            iLBC storage
  E image2          image2 sequence
  E image2pipe      piped image2 sequence
  E ipod            iPod H.264 MP4 (MPEG-4 Part 14)
  E ircam           Berkeley/IRCAM/CARL Sound Format
  E ismv            ISMV/ISMA (Smooth Streaming)
  E ivf             On2 IVF
  E jacosub         JACOsub subtitle format
  E kvag            Simon & Schuster Interactive VAG
  E latm            LOAS/LATM
  E lrc             LRC lyrics
  E m4v             raw MPEG-4 video
  E matroska        Matroska
  E md5             MD5 testing
  E microdvd        MicroDVD subtitle format
  E mjpeg           raw MJPEG video
  E mkvtimestamp_v2 extract pts as timecode v2 format, as defined by mkvtoolnix
  E mlp             raw MLP
  E mmf             Yamaha SMAF
  E mov             QuickTime / MOV
  E mp2             MP2 (MPEG audio layer 2)
  E mp3             MP3 (MPEG audio layer 3)
  E mp4             MP4 (MPEG-4 Part 14)
  E mpeg            MPEG-1 Systems / MPEG program stream
  E mpeg1video      raw MPEG-1 video
  E mpeg2video      raw MPEG-2 video
  E mpegts          MPEG-TS (MPEG-2 Transport Stream)
  E mpjpeg          MIME multipart JPEG
  E mulaw           PCM mu-law
  E mxf             MXF (Material eXchange Format)
  E mxf_d10         MXF (Material eXchange Format) D-10 Mapping
  E mxf_opatom      MXF (Material eXchange Format) Operational Pattern Atom
  E null            raw null video
  E nut             NUT
  E obu             AV1 low overhead OBU
  E oga             Ogg Audio
  E ogg             Ogg
  E ogv             Ogg Video
  E oma             Sony OpenMG audio
  E opengl          OpenGL output
  E opus            Ogg Opus
  E oss             OSS (Open Sound System) playback
  E psp             PSP MP4 (MPEG-4 Part 14)
  E pulse           Pulse audio output
  E rawvideo        raw video
  E rm              RealMedia
  E roq             raw id RoQ
  E rso             Lego Mindstorms RSO
  E rtp             RTP output
  E rtp_mpegts      RTP/mpegts output format
  E rtsp            RTSP output
  E s16be           PCM signed 16-bit big-endian
  E s16le           PCM signed 16-bit little-endian
  E s24be           PCM signed 24-bit big-endian
  E s24le           PCM signed 24-bit little-endian
  E s32be           PCM signed 32-bit big-endian
  E s32le           PCM signed 32-bit little-endian
  E s8              PCM signed 8-bit
  E sap             SAP output
  E sbc             raw SBC
  E scc             Scenarist Closed Captions
  E sdl,sdl2        SDL2 output device
  E segment         segment
  E smjpeg          Loki SDL MJPEG
  E smoothstreaming Smooth Streaming Muxer
  E sox             SoX native
  E spdif           IEC 61937 (used on S/PDIF - IEC958)
  E spx             Ogg Speex
  E srt             SubRip subtitle
  E stream_segment,ssegment streaming segment muxer
  E streamhash      Per-stream hash testing
  E sup             raw HDMV Presentation Graphic Stream subtitles
  E svcd            MPEG-2 PS (SVCD)
  E swf             SWF (ShockWave Flash)
  E tee             Multiple muxer tee
  E truehd          raw TrueHD
  E tta             TTA (True Audio)
  E ttml            TTML subtitle
  E u16be           PCM unsigned 16-bit big-endian
  E u16le           PCM unsigned 16-bit little-endian
  E u24be           PCM unsigned 24-bit big-endian
  E u24le           PCM unsigned 24-bit little-endian
  E u32be           PCM unsigned 32-bit big-endian
  E u32le           PCM unsigned 32-bit little-endian
  E u8              PCM unsigned 8-bit
  E uncodedframecrc uncoded framecrc testing
  E vc1             raw VC-1 video
  E vc1test         VC-1 test bitstream
  E vcd             MPEG-1 Systems / MPEG program stream (VCD)
  E vidc            PCM Archimedes VIDC
  E video4linux2,v4l2 Video4Linux2 output device
  E vob             MPEG-2 PS (VOB)
  E voc             Creative Voice
  E w64             Sony Wave64
  E wav             WAV / WAVE (Waveform Audio)
  E webm            WebM
  E webm_chunk      WebM Chunk Muxer
  E webm_dash_manifest WebM DASH Manifest
  E webp            WebP
  E webvtt          WebVTT subtitle
  E wsaud           Westwood Studios audio
  E wtv             Windows Television (WTV)
  E wv              raw WavPack
  E xv              XV (XVideo) output device
  E yuv4mpegpipe    YUV4MPEG pipe

Jellyfin logs

[2023-05-14 18:47:45.281 +05:30] [INF] [94] Emby.Server.Implementations.ScheduledTasks.TaskManager: Executing "Detect Introductions"
[2023-05-14 18:47:45.491 +05:30] [ERR] [94] ConfusedPolarBear.Plugin.IntroSkipper.Entrypoint: "The installed version of ffmpeg does not support chromaprint"
[2023-05-14 18:47:45.498 +05:30] [ERR] [94] Emby.Server.Implementations.ScheduledTasks.TaskManager: Error
ConfusedPolarBear.Plugin.IntroSkipper.FingerprintException: ffmpeg with chromaprint is not installed on this system - episodes will not be analyzed. If Jellyfin is running natively, install jellyfin-ffmpeg5. If Jellyfin is running in a container, upgrade it to the latest version of 10.8.0.
   at ConfusedPolarBear.Plugin.IntroSkipper.QueueManager.EnqueueAllEpisodes()
   at ConfusedPolarBear.Plugin.IntroSkipper.AnalyzeEpisodesTask.ExecuteAsync(IProgress`1 progress, CancellationToken cancellationToken)
   at Emby.Server.Implementations.ScheduledTasks.ScheduledTaskWorker.ExecuteInternal(TaskOptions options) in /home/akya/.cache/yay/jellyfin/src/jellyfin-10.8.10/Emby.Server.Implementations/ScheduledTasks/ScheduledTaskWorker.cs:line 417
[2023-05-14 18:47:45.523 +05:30] [INF] [94] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Detect Introductions" Failed after 0 minute(s) and 0 seconds
[2023-05-14 18:47:45.529 +05:30] [INF] [94] Emby.Server.Implementations.ScheduledTasks.TaskManager: ExecuteQueuedTasks
[2023-05-14 18:48:46.611 +05:30] [INF] [104] Emby.Server.Implementations.ScheduledTasks.TaskManager: Executing "Update Plugins"
[2023-05-14 18:48:51.277 +05:30] [INF] [101] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Update Plugins" Completed after 0 minute(s) and 4 seconds
[2023-05-14 18:48:51.279 +05:30] [INF] [101] Emby.Server.Implementations.ScheduledTasks.TaskManager: ExecuteQueuedTasks
[2023-05-14 18:50:51.929 +05:30] [INF] [73] Jellyfin.Plugin.PlaybackReporting.Api.PlaybackReportingActivityController: PlaybackReportingActivityController Loaded
[2023-05-14 18:50:51.943 +05:30] [INF] [73] Jellyfin.Plugin.PlaybackReporting.Data.ActivityRepository: Default journal_mode for "/var/lib/jellyfin/data/playback_reporting.db" is "delete"
[2023-05-14 18:50:54.667 +05:30] [INF] [93] Emby.Server.Implementations.ScheduledTasks.TaskManager: Executing "Detect Introductions"
[2023-05-14 18:50:54.811 +05:30] [ERR] [93] ConfusedPolarBear.Plugin.IntroSkipper.Entrypoint: "The installed version of ffmpeg does not support chromaprint"
[2023-05-14 18:50:54.811 +05:30] [ERR] [93] Emby.Server.Implementations.ScheduledTasks.TaskManager: Error
ConfusedPolarBear.Plugin.IntroSkipper.FingerprintException: ffmpeg with chromaprint is not installed on this system - episodes will not be analyzed. If Jellyfin is running natively, install jellyfin-ffmpeg5. If Jellyfin is running in a container, upgrade it to the latest version of 10.8.0.
   at ConfusedPolarBear.Plugin.IntroSkipper.QueueManager.EnqueueAllEpisodes()
   at ConfusedPolarBear.Plugin.IntroSkipper.AnalyzeEpisodesTask.ExecuteAsync(IProgress`1 progress, CancellationToken cancellationToken)
   at Emby.Server.Implementations.ScheduledTasks.ScheduledTaskWorker.ExecuteInternal(TaskOptions options) in /home/akya/.cache/yay/jellyfin/src/jellyfin-10.8.10/Emby.Server.Implementations/ScheduledTasks/ScheduledTaskWorker.cs:line 417
[2023-05-14 18:50:54.811 +05:30] [INF] [93] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Detect Introductions" Failed after 0 minute(s) and 0 seconds
[2023-05-14 18:50:54.812 +05:30] [INF] [93] Emby.Server.Implementations.ScheduledTasks.TaskManager: ExecuteQueuedTasks
ConfusedPolarBear commented 1 year ago

The chromaprint_not_supported error indicates that the version of ffmpeg that Jellyfin is using wasn't compiled with support for the chromaprint muxer used to analyze audio. Check that Jellyfin's ffmpeg path (in Dashboard -> Playback -> FFmpeg path) points to the ffmpeg binary provided by the jellyfin-ffmpeg6 package.

akyag commented 1 year ago

Thanks sooo much! I checked in playback settings and it was using just the ffmpeg executable. I changed the path to /usr/lib/jellyfin-ffmpeg/ffmpeg and then restarted the service and now the plugin is working again :) Thank you!