Узнать, что вызываемая программа выдала ошибку
subprocess.run('ffmpeg ***', shell=True)
Применяю subprocess, для выполнения команд, вызова программ. Если к примеру ffmpeg выдает ошибку. Как определить, что входе выполнения произошла ошибка и достать этот самый текст ошибки?
Не работает
result = sub.run(['ffmpeg', '-i', 'input', '-c:v', 'libaom-av1', '-b:v', '500K', '-aom-params', 'tune=psnr:enable-tpl-model=1', '/output.mp4'], stdout=sub.PIPE, encoding='utf-8')
print(result.stdout)
Ответы (1 шт):
Автор решения: Whale Crypto
→ Ссылка
import subprocess
def run_command(command):
try:
# Запускаем команду, сохраняя стандартный вывод и стандартный поток ошибок
result = subprocess.run(
command,
shell=True,
text=True,
capture_output=True, # захватываем stdout и stderr
check=True # выбросить исключение при ошибке
)
# Выводим результат работы команды
print("Output:", result.stdout)
except subprocess.CalledProcessError as e:
# Если команда завершилась с ошибкой, получаем текст ошибки
print("Error:", e.stderr)
# Пример использования
command = "ffmpeg -i input.mp4 output.mp4" # Замени на свою команду
run_command(command)