11diff --git a/yt-dlp/yt_dlp/postprocessor/ffmpeg.py b/yt-dlp/yt_dlp/postprocessor/ffmpeg.py
2- index eacee8ee9..69ab76048 100644
2+ index 27d06cbde..c646320ea 100644
33--- a/yt-dlp/yt_dlp/postprocessor/ffmpeg.py
44+++ b/yt-dlp/yt_dlp/postprocessor/ffmpeg.py
5- @@ -86 ,7 +86 ,7 @@ class FFmpegPostProcessor(PostProcessor ):
6- return FFmpegPostProcessor.get_version_and_features(downloader)[0]
5+ @@ -91 ,7 +91 ,7 @@ def get_versions(downloader=None ):
6+ _version_cache, _features_cache = {}, {}
77
88 def _determine_executables(self):
99- programs = ['avprobe', 'avconv', 'ffmpeg', 'ffprobe']
1010+ programs = ['avprobe', 'avconv', 'ffmpeg', 'ffprobe', 'libffmpeg.bin.so', 'libffprobe.bin.so']
1111
1212 def get_ffmpeg_version(path, prog):
13- out = _get_exe_version_output( path, ['-bsfs'])
14- @@ -136 ,7 +136 ,7 @@ class FFmpegPostProcessor(PostProcessor ):
13+ if path in self._version_cache:
14+ @@ -144 ,7 +144 ,7 @@ def get_ffmpeg_version(path, prog ):
1515 basename = os.path.splitext(os.path.basename(location))[0]
1616 basename = next((p for p in programs if basename.startswith(p)), 'ffmpeg')
1717 dirname = os.path.dirname(os.path.abspath(location))
@@ -20,30 +20,16 @@ index eacee8ee9..69ab76048 100644
2020 prefer_ffmpeg = True
2121
2222 self._paths = dict(
23- @@ -149,18 +149,18 @@ class FFmpegPostProcessor(PostProcessor ):
24- get_ffmpeg_version( self._paths[p], p)
23+ @@ -153,7 +153,7 @@ def get_ffmpeg_version(path, prog ):
24+ self._paths[basename] = location
2525
26+ self._versions = {}
27+ - executables = {'basename': ('ffmpeg', 'avconv'), 'probe_basename': ('ffprobe', 'avprobe')}
28+ + executables = {'basename': ('ffmpeg', 'avconv', 'libffmpeg.bin.so'), 'probe_basename': ('ffprobe', 'avprobe', 'libffprobe.bin.so')}
2629 if prefer_ffmpeg is False:
27- - prefs = ('avconv', 'ffmpeg')
28- + prefs = ('avconv', 'ffmpeg', 'libffmpeg.bin.so')
29- else:
30- - prefs = ('ffmpeg', 'avconv')
31- + prefs = ('libffmpeg.bin.so', 'ffmpeg', 'avconv')
32- for p in prefs:
33- if self._versions[p]:
34- self.basename = p
35- break
36-
37- if prefer_ffmpeg is False:
38- - prefs = ('avprobe', 'ffprobe')
39- + prefs = ('avprobe', 'ffprobe', 'libffprobe.bin.so')
40- else:
41- - prefs = ('ffprobe', 'avprobe')
42- + prefs = ('libffprobe.bin.so', 'ffprobe', 'avprobe')
43- for p in prefs:
44- if self._versions[p]:
45- self.probe_basename = p
46- @@ -280,7 +280,7 @@ class FFmpegPostProcessor(PostProcessor):
30+ executables = {k: v[::-1] for k, v in executables.items()}
31+ for var, prefs in executables.items():
32+ @@ -297,7 +297,7 @@ def real_run_ffmpeg(self, input_path_opts, output_path_opts, *, expected_retcode
4733
4834 cmd = [encodeFilename(self.executable, True), encodeArgument('-y')]
4935 # avconv does not have repeat option
0 commit comments