Jump to content

LiveTV Failing to convert SVG logos


seanhood

Recommended Posts

seanhood

First of all, I didn't see a similar topic to this posted, and I hope it's in the correct area of the forum.

The Issue: SVG Images are failing to show when importing an M3U playlist into Emby TV. The playlist imports and works as expected, images show up initially but then no longer show. Emby ends up producing multiple 0 byte .webp files.

I believe the core of the problem is that the bundled ffmpeg isn't compiled with support for SVG.

I'm running the `emby/embyserver:4.6.4.0` version container image

Sample M3U Playlist:

#EXTM3U
#EXTINF:-1 tvg-logo="https://sounds.files.bbci.co.uk/3.1.5/networks/bbc_radio_one/blocks-white_default.svg",group-title="National",BBC - Radio 1
http://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/hls/uk/sbr_med/ak/bbc_radio_one.m3u8
...
#EXTINF:-1 tvg-logo="https://sounds.files.bbci.co.uk/3.1.5/networks/bbc_6music/blocks-white_default.svg",group-title="National",BBC - Radio 6 Music
http://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/hls/uk/sbr_med/ak/bbc_6music.m3u8
...

Logs:

2022-09-05 20:52:52.748 Debug App: ConvertImageToLocal item 379328 - image url: https://sounds.files.bbci.co.uk/3.1.5/networks/bbc_6music/blocks-white_default.svg
2022-09-05 20:52:52.749 Info HttpClient: GET https://sounds.files.bbci.co.uk/3.1.5/networks/bbc_6music/blocks-white_default.svg
2022-09-05 20:52:53.003 Debug ProviderManager: Saving image to /config/metadata/livetv/eb7b99b73ba643998a98d0a3f0473c8d/metadata/poster.svg
2022-09-05 20:52:53.012 Info MediaImageConverter: ProcessRun 'ffmpeg convert-image' Execute: /bin/ffmpeg -i "/config/metadata/livetv/eb7b99b73ba643998a98d0a3f0473c8d/metadata/poster.svg" "/config/cache/images/conver
2022-09-05 20:52:53.013 Debug MediaImageConverter: ProcessRun 'ffmpeg convert-image' Started.
2022-09-05 20:52:53.033 Info MediaImageConverter: ProcessRun 'ffmpeg convert-image' Process exited with code 1
2022-09-05 20:52:53.036 Error MediaImageConverter: ffmpeg image conversion failed for /config/metadata/livetv/eb7b99b73ba643998a98d0a3f0473c8d/metadata/poster.svg
2022-09-05 20:52:53.039 Error ImageProcessor: Image conversion failed for /config/metadata/livetv/eb7b99b73ba643998a98d0a3f0473c8d/metadata/poster.svg
        *** Error Report ***
        Version: 4.6.4.0
        Command line: /system/EmbyServer.dll -programdata /config -ffdetect /bin/ffdetect -ffmpeg /bin/ffmpeg -ffprobe /bin/ffprobe -restartexitcode 3
        Operating system: Linux version 5.4.0-124-generic (buildd@lcy02-amd64-019) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #140~18.04.1-Ubuntu SMP Fri Aug 5 11:43:34
        Framework: .NET Core 3.1.13
        OS/Process: x64/x64
        Runtime: system/System.Private.CoreLib.dll
        Processor count: 1
        Data path: /config
        Application path: /system
        System.Exception: System.Exception: ffmpeg image conversion failed for /config/metadata/livetv/eb7b99b73ba643998a98d0a3f0473c8d/metadata/poster.svg
           at Emby.Server.MediaEncoding.ImageConversion.MediaImageConverter.ConvertImage(String inputPath, String outputPath)
           at Emby.Drawing.ImageProcessor.GetSupportedImage(String originalImagePath, DateTimeOffset dateModified)
        Source: Emby.Server.MediaEncoding
        TargetSite: Void MoveNext()
2022-09-05 20:52:53.050 Error ImageProcessor: Error encoding image
        *** Error Report ***
        Version: 4.6.4.0
        Command line: /system/EmbyServer.dll -programdata /config -ffdetect /bin/ffdetect -ffmpeg /bin/ffmpeg -ffprobe /bin/ffprobe -restartexitcode 3
        Operating system: Linux version 5.4.0-124-generic (buildd@lcy02-amd64-019) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #140~18.04.1-Ubuntu SMP Fri Aug 5 11:43:34
        Framework: .NET Core 3.1.13
        OS/Process: x64/x64
        Runtime: system/System.Private.CoreLib.dll
        Processor count: 1
        Data path: /config
        Application path: /system
        System.Exception: System.Exception: SKCodec had an error reading /config/metadata/livetv/eb7b99b73ba643998a98d0a3f0473c8d/metadata/poster.svg
           at Emby.Drawing.Skia.SkiaEncoder.EncodeImage(String inputPath, String outputPath, Boolean autoOrient, Nullable`1 orientation, Int32 quality, ImageProcessingOptions options, ImageFormat selectedOutputForma
           at Emby.Drawing.ImageProcessor.ProcessImage(ImageProcessingOptions options, CancellationToken cancellationToken)
        Source: Emby.Drawing.Skia
        TargetSite: System.String EncodeImage(System.String, System.String, Boolean, System.Nullable`1[MediaBrowser.Model.Drawing.ImageOrientation], Int32, MediaBrowser.Controller.Drawing.ImageProcessingOptions, Med

When I manually run the command it's erroring on, I get this output. Googling the last line in this error brings me to: https://stackoverflow.com/questions/48216871/ffmpeg-support-for-svg-rasterization

/ # /bin/ffmpeg -i "/config/metadata/livetv/b3d268e26f7d7cc3671634cedc5626f6/metadata/poster.svg" "/config/cache/images/converted-images/ece73f47c1af02c2bf5fdb015bf0208a.webp"
ffmpeg version 4.3.0-emby_2021_02_27 Copyright (c) 2000-2021 the FFmpeg developers and softworkz for Emby LLC
  built with gcc 8.3.0 (crosstool-NG 1.24.0)
Execution Date: 2022-09-05 21:49:09
[image2 @ 0xa77e00] Could not find codec parameters for stream 0 (Video: svg, none): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, image2, from '/config/metadata/livetv/b3d268e26f7d7cc3671634cedc5626f6/metadata/poster.svg':
  Duration: 00:00:00.04, start: 0.000000, bitrate: 826 kb/s
    Stream #0:0: Video: svg, none, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (? (?) -> webp (libwebp_anim))
Decoder (codec svg) not found for input stream #0:0

Can see that ffmpeg isn't compiled with `--enable-librsvg`

/ # ffmpeg -version
Execution Date: 2022-09-05 21:51:38
ffmpeg version 4.3.0-emby_2021_02_27 Copyright (c) 2000-2021 the FFmpeg developers and softworkz for Emby LLC
built with gcc 8.3.0 (crosstool-NG 1.24.0)
configuration: --cc=x86_64-emby-linux-gnu-gcc --prefix=/home/embybuilder/Buildbot/x64/ffmpeg-x64/staging --disable-debug --disable-doc --disable-ffplay --disable-vdpau --disable-xlib --enable-chromaprint --enable-fontconfig --enable-gnutls --enable-gpl --enable-iconv --enable-libass --enable-libdav1d --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libzvbi --enable-pic --enable-version3 --enable-libx265 --enable-cuda-llvm --enable-cuvid --enable-libmfx --enable-nvdec --enable-nvenc --enable-vaapi --enable-opencl --enable-cross-compile --cross-prefix=x86_64-emby-linux-gnu- --arch=x86_64 --target-os=linux --enable-shared --disable-static --pkg-config=pkg-config --pkg-config-flags=--static --extra-libs='-lm -lstdc++ -pthread'
libavutil      56. 36.100 / 56. 36.100
libavcodec     58. 62.100 / 58. 62.100
libavformat    58. 35.100 / 58. 35.100
libavdevice    58.  9.101 / 58.  9.101
libavfilter     7. 69.101 /  7. 69.101
libswscale      5.  6.100 /  5.  6.100
libswresample   3.  6.100 /  3.  6.100
libpostproc    55.  6.100 / 55.  6.100

 

Link to comment
Share on other sites

Hi, technically this is not really an image format. Right now our image processing libraries that we use currently don't support them, but it's on our to do list for future updates. Thanks.

Link to comment
Share on other sites

  • 1 month later...

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