Brannon King 2020-03-04 17:08:47 -07:00 committed by Jack Robison
parent 98e6a066f4
commit dec248adec
No known key found for this signature in database
GPG key ID: DF25C68FE0239BB2

View file

@ -15,12 +15,20 @@ DISABLED = platform.system() == "Windows"
class VideoFileAnalyzer: class VideoFileAnalyzer:
def _replace_or_pop_env(self, variable):
if variable + '_ORIG' in self._env_copy:
self._env_copy[variable] = self._env_copy[variable + '_ORIG']
else:
self._env_copy.pop(variable, None)
def __init__(self, conf: TranscodeConfig): def __init__(self, conf: TranscodeConfig):
self._conf = conf self._conf = conf
self._available_encoders = "" self._available_encoders = ""
self._ffmpeg_installed = False self._ffmpeg_installed = False
self._which = None self._which = None
self._checked_ffmpeg = False self._checked_ffmpeg = False
self._env_copy = dict(os.environ)
self._replace_or_pop_env('LD_LIBRARY_PATH')
async def _execute(self, command, arguments): async def _execute(self, command, arguments):
if DISABLED: if DISABLED:
@ -28,7 +36,7 @@ class VideoFileAnalyzer:
args = shlex.split(arguments) args = shlex.split(arguments)
process = await asyncio.create_subprocess_exec( process = await asyncio.create_subprocess_exec(
os.path.join(self._conf.ffmpeg_folder, command), *args, os.path.join(self._conf.ffmpeg_folder, command), *args,
stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE, env=self._env_copy
) )
stdout, stderr = await process.communicate() # returns when the streams are closed stdout, stderr = await process.communicate() # returns when the streams are closed
return stdout.decode(errors='replace') + stderr.decode(errors='replace'), process.returncode return stdout.decode(errors='replace') + stderr.decode(errors='replace'), process.returncode