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

Open
opened 2026-04-24 23:07:32 +02:00 by adam · 4 comments
Owner

Originally created by @hobesman on GitHub (May 25, 2022).

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

Originally created by @hobesman on GitHub (May 25, 2022). ### 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
adam added the bug label 2026-04-24 23:07:32 +02:00
Author
Owner

@ebb-earl-co commented on GitHub (Jul 4, 2022):

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 commented on GitHub (Jul 4, 2022): It looks as if this functionality is the [`install_ffmpeg` function here](https://github.com/advplyr/audiobookshelf/blob/master/build/debian/DEBIAN/preinst#L51=). 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.
Author
Owner

@HumanG33k commented on GitHub (Jan 26, 2023):

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 commented on GitHub (Jan 26, 2023): 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.
Author
Owner

@advplyr commented on GitHub (Jan 26, 2023):

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

@advplyr commented on GitHub (Jan 26, 2023): With the dependency system how could we make sure that the users existing Ffmpeg install was compiled with the correct libraries?
Author
Owner

@HumanG33k commented on GitHub (Feb 8, 2023):

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 commented on GitHub (Feb 8, 2023): 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 ```
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#387