audiobookshelf icon indicating copy to clipboard operation
audiobookshelf copied to clipboard

[Bug]: Updating on debian reinstalls ffmpeg every time, even if already installed and up to date.

Open hobesman opened this issue 3 years ago • 1 comments

Describe the issue

Updating on debian reinstalls ffmpeg every time, even if already installed and up to date.

Steps to reproduce the issue

  1. Install on e.g. Ubuntu (i.e. not using docker)
  2. Update server.
  3. Watch it redownload and reinstall ffmpeg

Audiobookshelf version

2.0.16 and below

How are you running audiobookshelf?

Debian/PPA

hobesman avatar May 25 '22 02:05 hobesman

It looks as if this functionality is the install_ffmpeg function here. It would be relatively simple to check if the version downloaded from https://johnvansickle.com already exists at the specified directory (FFMPEG_INSTALL_DIR="/usr/lib/audiobookshelf-ffmpeg" by default). This would entail extracting the tarball and comparing it to the file on disk which wouldn't take any more time than the process already takes.

There probably is a smarter/better short-circuit for this, but I don't know what it is, or if it's worth it.

ebb-earl-co avatar Jul 04 '22 03:07 ebb-earl-co

a better way for debian package is to use debian package dependency system in order to use system side ffmpeg probably in control file.

also the env var should be update / check to be sure everything is already here.

HumanG33k avatar Jan 26 '23 01:01 HumanG33k

With the dependency system how could we make sure that the users existing Ffmpeg install was compiled with the correct libraries?

advplyr avatar Jan 26 '23 12:01 advplyr

One option is probably parsing the output of ffmpeg after an apt install ffmpeg : 

ffmpeg version 5.1.2-2 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 12 (Debian 12.2.0-14)
  configuration: --prefix=/usr --extra-version=2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared
  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
Hyper fast Audio and Video encoder


HumanG33k avatar Feb 08 '23 04:02 HumanG33k