11diff --git a/yt-dlp/yt_dlp/postprocessor/ffmpeg.py b/yt-dlp/yt_dlp/postprocessor/ffmpeg.py
2- index 27d06cbde..c646320ea 100644
2+ index 27d06cbde..dfc01003b 100644
33--- a/yt-dlp/yt_dlp/postprocessor/ffmpeg.py
44+++ b/yt-dlp/yt_dlp/postprocessor/ffmpeg.py
55@@ -91,7 +91,7 @@ def get_versions(downloader=None):
66 _version_cache, _features_cache = {}, {}
77
88 def _determine_executables(self):
99- programs = ['avprobe', 'avconv', 'ffmpeg', 'ffprobe']
10- + programs = ['avprobe', 'avconv', 'ffmpeg', 'ffprobe', ' libffmpeg.bin.so', 'libffprobe.bin.so']
10+ + programs = ['avprobe', 'avconv', 'libffmpeg.bin.so', 'libffprobe.bin.so']
1111
1212 def get_ffmpeg_version(path, prog):
1313 if path in self._version_cache:
14- @@ -144,7 +144,7 @@ def get_ffmpeg_version(path, prog):
14+ @@ -110,7 +110,7 @@ def get_ffmpeg_version(path, prog):
15+ if mobj:
16+ ver = mobj.group(1)
17+ self._versions[prog] = self._version_cache[path] = ver
18+ - if prog != 'ffmpeg' or not out:
19+ + if prog != 'libffmpeg.bin.so' or not out:
20+ return
21+
22+ mobj = re.search(r'(?m)^\s+libavformat\s+(?:[0-9. ]+)\s+/\s+(?P<runtime>[0-9. ]+)', out)
23+ @@ -142,9 +142,9 @@ def get_ffmpeg_version(path, prog):
24+ dirname, basename = location, None
25+ else:
1526 basename = os.path.splitext(os.path.basename(location))[0]
16- basename = next((p for p in programs if basename.startswith(p)), 'ffmpeg')
27+ - basename = next((p for p in programs if basename.startswith(p)), 'ffmpeg')
28+ + basename = next((p for p in programs if basename.startswith(p)), 'libffmpeg.bin.so')
1729 dirname = os.path.dirname(os.path.abspath(location))
1830- if basename in ('ffmpeg', 'ffprobe'):
19- + if basename in ('ffmpeg', 'ffprobe', ' libffmpeg.bin.so', 'libffprobe.bin.so'):
31+ + if basename in ('libffmpeg.bin.so', 'libffprobe.bin.so'):
2032 prefer_ffmpeg = True
2133
2234 self._paths = dict(
@@ -25,16 +37,25 @@ index 27d06cbde..c646320ea 100644
2537
2638 self._versions = {}
2739- executables = {'basename': ('ffmpeg', 'avconv'), 'probe_basename': ('ffprobe', 'avprobe')}
28- + executables = {'basename': ('ffmpeg', 'avconv', ' libffmpeg.bin.so'), 'probe_basename': ('ffprobe', 'avprobe', ' libffprobe.bin.so')}
40+ + executables = {'basename': ('libffmpeg.bin.so', 'avconv' ), 'probe_basename': ('libffprobe.bin.so', 'avprobe ')}
2941 if prefer_ffmpeg is False:
3042 executables = {k: v[::-1] for k, v in executables.items()}
3143 for var, prefs in executables.items():
44+ @@ -237,7 +237,7 @@ def get_audio_codec(self, path):
45+ return None
46+
47+ def get_metadata_object(self, path, opts=[]):
48+ - if self.probe_basename != 'ffprobe':
49+ + if self.probe_basename != 'libffprobe.bin.so':
50+ if self.probe_available:
51+ self.report_warning('Only ffprobe is supported for metadata extraction')
52+ raise PostProcessingError('ffprobe not found. Please install or provide the path using --ffmpeg-location')
3253@@ -297,7 +297,7 @@ def real_run_ffmpeg(self, input_path_opts, output_path_opts, *, expected_retcode
3354
3455 cmd = [encodeFilename(self.executable, True), encodeArgument('-y')]
3556 # avconv does not have repeat option
3657- if self.basename == 'ffmpeg':
37- + if self.basename == 'ffmpeg' or self.basename == ' libffmpeg.bin.so':
58+ + if self.basename == 'libffmpeg.bin.so':
3859 cmd += [encodeArgument('-loglevel'), encodeArgument('repeat+info')]
3960
4061 def make_args(file, args, name, number):
0 commit comments