Open fluffy-critter opened 10 months ago
What's really strange about this (and I'm experiencing the same) is that if I take the command it says is being executed (in the debug output, and run it directly myself, it works fine!
Hm, might be something to do with TTY output on the ffmpeg binary? ffmpeg does some really weird stuff with terminal detection.
in class FFProbe in method probe replace
commands = [
self._ffmpeg, '-y', '-i',
self.file_name, '-f',
'null', os.devnull]
with
commands = f"{self._ffmpeg} -y -i {self.file_name} -f null {os.devnull}"
as temporary solution
I have made a new release. I suspect that could be it. If it doesn't work I will try and fix it.
@dust333 solution still seems to be the only way at the moment.
class FFprobeFixed(FFprobe):
def probe(self):
self.logger.info('Inside probe')
self.logger.info(f'Probing file: "{self.file_name}"')
# randomize the filename to avoid overwrite prompt
commands = f"{self._ffmpeg} -y -i {self.file_name} -f null {os.devnull}"
self.logger.info(f"Issuing commads {str(commands)}")
# start subprocess
subP = subprocess.Popen(
commands,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
text=True,
shell=SHELL)
# break the operation
sleep(0.5)
stdout, _ = subP.communicate(input='q')
self._extract_all(stdout)
# Expose publicly know var
self._expose()
It looks like the FFprobe mechanism is currently broken.
The installed version of ffmpeg: