Поймать обновление вывода терминала в Python - PullRequest
0 голосов
/ 26 января 2019

Я написал скрипт на python, который конвертирует фильмы с ffmpeg из чего угодно в h265 (hevc).До сих пор работает нормально, и я получаю поймать вывод терминала ( Как я могу получить вывод терминала в Python? - Stackoverflow ).Я уже пробовал это решение: Catching Terminal Output в Python - Stackoverflow Но на самом деле ни один из них мне не нужен.

Текущий код следующий:

def convert(path):
if os.path.getsize(path) < 500000000:
    pass
name = path.split("/")[-1]
os.mkdir(path.replace(name, "hevc/"))
outvid = path.replace(name, "hevc/" + name)
cmd = ["ffmpeg", "-hwaccel", "cuvid", "-i", path, "-c:v", "hevc_nvenc", "-preset",
       "slow", "-rc", "vbr_hq", "-max_muxing_queue_size", "1000", "-map", "0", "-map_metadata",
       "0", "-map_chapters", "0", "-c:a", "copy", "-c:s", "copy", outvid]

process = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0]
print(process)

Пока ffmpeg что-то преобразует, нижняя строка терминала обычно обновляется каждую секунду, показывая количество кадров в секунду, время и т. Д. См. Нижнюю строку скриншота.

Normal ffmpeg output

В Python я просто получаю статический вывод:

Python IDE output

Так у вас, ребята, есть идеи, как получить этот освежающий результат?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...