MetadataExtractionCoordinator Fails on Every File
Serviio Pro 2.0 refuses to scan any of my media files into the library.
Audio files give this error:
Which is weird because it says "Apple Lossless ALAC (.mp4)" right on the Features page.
Video files (regardless of extension or format) give this error:
If I run the ffmpeg command manually, it does not throw any errors:
I am running Ubuntu 18.04.2 LTS:
I compiled FFMPEG from the source given in the readme.
http://download.serviio.org/opensource/ffmpeg-3.4.4.tar.bz2
Using the following options:
With Lame and x264 compiled from the links in the readme.
http://download.serviio.org/opensource/last_x264.tar.bz2
http://download.serviio.org/opensource/lame-3.99.5.tar.gz
Serviio runs with this command:
Apparently the central issue (at least with the ffmpeg pipe) is that the files are on a mergerfs fuse mount.
Testing Serviio on files stored directly on a local drive fixes the "No such device" error and allows importing of video files.
But the way I store my media files, Serviio needs to be able to read them off of the merged fs.
I read that disabling direct_io might fix the underlying java problem, but that is not an option due to the way one of the underlying file systems handles caching.
Is there any fix for this problem?
Audio files give this error:
Which is weird because it says "Apple Lossless ALAC (.mp4)" right on the Features page.
Video files (regardless of extension or format) give this error:
- Code:
2019-07-07 12:55:06,245 DEBUG [MediaFileIndexer] Found file '/PATH/TO/ANY/VIDEO/FILE.EXT ', checking if it's already in the Library
2019-07-07 12:55:06,245 DEBUG [MediaItemDAOImpl] Checking if DB already contains media item /PATH/TO/ANY/VIDEO/FILE.EXT
2019-07-07 12:55:06,245 DEBUG [MediaItemDAOImpl] Looking up a media item for file path: /PATH/TO/ANY/VIDEO/FILE.EXT , ignore case: false
2019-07-07 12:55:06,245 DEBUG [MediaItemDAOImpl] Media item /PATH/TO/ANY/VIDEO/FILE.EXT doesn't exist in DB yet
2019-07-07 12:55:06,245 DEBUG [MediaFileIndexer] File not in Library, will add it
2019-07-07 12:55:06,245 DEBUG [LibraryHelper] Checking if the file is complete using file lock
2019-07-07 12:55:06,245 DEBUG [VideoExtractionStrategy] Extracting metadata of video file: /PATH/TO/ANY/VIDEO/FILE.EXT
2019-07-07 12:55:06,245 DEBUG [FFMPEGWrapper] Invoking FFMPEG to retrieve media information for file: /PATH/TO/ANY/VIDEO/FILE.EXT
2019-07-07 12:55:06,246 DEBUG [ProcessExecutor] Starting /opt/serviio/ffmpeg/bin/ffmpeg -i /PATH/TO/ANY/VIDEO/FILE.EXT
2019-07-07 12:55:06,394 DEBUG [MediaItemDAOImpl] Getting counts of media items by type
2019-07-07 12:55:06,423 DEBUG [FFMPEGWrapper] Invoking FFMPEG to retrieve thumbnail for file: /PATH/TO/ANY/VIDEO/FILE.EXT
2019-07-07 12:55:06,423 DEBUG [ProcessExecutor] Starting /opt/serviio/ffmpeg/bin/ffmpeg -threads 0 -ss 120 -i /PATH/TO/ANY/VIDEO/FILE.EXT -an -frames:v 1 -f image2 pipe:
2019-07-07 12:55:06,484 DEBUG [OpenSubtitlesService] Generating hash code for opensubtitles.org for file /PATH/TO/ANY/VIDEO/FILE.EXT
2019-07-07 12:55:06,501 WARN [MetadataExtractionCoordinator] Cannot read metadata of file /PATH/TO/ANY/VIDEO/FILE.EXT via extractor EMBEDDED. Message: No such device
If I run the ffmpeg command manually, it does not throw any errors:
- Code:
ffmpeg version 3.4.4 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
configuration: --enable-gpl --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-postproc --enable-version3 --enable-librtmp --enable-libxvid --enable-libass --enable-libxcb --extra-cflags=-I/opt/serviio/ffmpeg/build/include --extra-cflags=-I/opt/serviio/ffmpeg/build/lib --prefix=/opt/serviio/ffmpeg/
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
Input #0, avi, from '/PATH/TO/ANY/VIDEO/FILE.EXT ':
Metadata:
encoder : VirtualDubMod 1.5.10.2 (build 2540/release)
Duration: 00:22:33.02, start: 0.000000, bitrate: 1084 kb/s
Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 512x384 [SAR 1:1 DAR 4:3], 938 kb/s, 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16p, 133 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (mpeg4 (native) -> mjpeg (native))
Press [q] to stop, [?] for help
[mpeg4 @ 0x55999283ec60] Video uses a non-standard and wasteful way to store B-frames ('packed B-frames'). Cons$der using the mpeg4_unpack_bframes bitstream filter without encoding but stream copy to fix it.
[swscaler @ 0x559992b42e80] deprecated pixel format used, make sure you did set range correctly
Output #0, image2, to 'pipe:':
Metadata:
encoder : Lavf57.83.100
Stream #0:0: Video: mjpeg, yuvj420p(pc), 512x384 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 23.98 fps, 23.98 tbn,
23.98 tbc
Metadata: encoder : Lavc57.107.100 mjpeg
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
I am running Ubuntu 18.04.2 LTS:
I compiled FFMPEG from the source given in the readme.
http://download.serviio.org/opensource/ffmpeg-3.4.4.tar.bz2
Using the following options:
- Code:
PKG_CONFIG_PATH=/opt/serviio/ffmpeg/lib/pkgconfig ./configure --enable-gpl --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-postproc --enable-version3 --enable-librtmp --enable-libxvid --enable-libass --enable-libxcb --extra-cflags="-I/opt/serviio/ffmpeg/build/include" --extra-cflags="-I/opt/serviio/ffmpeg/build/lib" --prefix=/opt/serviio/ffmpeg/
With Lame and x264 compiled from the links in the readme.
http://download.serviio.org/opensource/last_x264.tar.bz2
http://download.serviio.org/opensource/lame-3.99.5.tar.gz
Serviio runs with this command:
- Code:
java --add-modules jdk.unsupported -Xmx512M -Xms20M -XX:+UseG1GC -XX:GCTimeRatio=1 -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Dorg.restlet.engine.loggerFacadeClass=org.restlet.ext.slf4j.Slf4jLoggerFacade -Dderby.system.home=/opt/serviio/library -Dserviio.home=/opt/serviio -Dffmpeg.location=/opt/serviio/ffmpeg/bin/ffmpeg -Ddcraw.location=dcraw -classpath /opt/serviio/lib/*:/opt/serviio/config org.serviio.MediaServer
Apparently the central issue (at least with the ffmpeg pipe) is that the files are on a mergerfs fuse mount.
Testing Serviio on files stored directly on a local drive fixes the "No such device" error and allows importing of video files.
But the way I store my media files, Serviio needs to be able to read them off of the merged fs.
I read that disabling direct_io might fix the underlying java problem, but that is not an option due to the way one of the underlying file systems handles caching.
Is there any fix for this problem?