[ffmpeg] Smarter detection of ffprobe filename

This commit is contained in:
pukkandan 2022-08-09 05:14:51 +05:30
parent b5e9a641f5
commit 8420a4d063
No known key found for this signature in database
GPG key ID: 7EEE9E1E817D0A39

View file

@ -113,15 +113,20 @@ def _determine_executables(self):
f'ffmpeg-location {location} does not exist! Continuing without ffmpeg', only_once=True) f'ffmpeg-location {location} does not exist! Continuing without ffmpeg', only_once=True)
return {} return {}
elif os.path.isdir(location): elif os.path.isdir(location):
dirname, basename = location, None dirname, basename, filename = location, None, None
else: else:
basename = os.path.splitext(os.path.basename(location))[0] filename = os.path.basename(location)
basename = next((p for p in programs if basename.startswith(p)), 'ffmpeg') basename = next((p for p in programs if p in filename), 'ffmpeg')
dirname = os.path.dirname(os.path.abspath(location)) dirname = os.path.dirname(os.path.abspath(location))
if basename in self._ffmpeg_to_avconv.keys(): if basename in self._ffmpeg_to_avconv.keys():
self._prefer_ffmpeg = True self._prefer_ffmpeg = True
paths = {p: os.path.join(dirname, p) for p in programs} paths = {p: os.path.join(dirname, p) for p in programs}
if basename and basename in filename:
for p in programs:
path = os.path.join(dirname, filename.replace(basename, p))
if os.path.exists(path):
paths[p] = path
if basename: if basename:
paths[basename] = location paths[basename] = location
return paths return paths