Я написал скрипт на 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
что-то преобразует, нижняя строка терминала обычно обновляется каждую секунду, показывая количество кадров в секунду, время и т. Д. См. Нижнюю строку скриншота.
В Python я просто получаю статический вывод:
Так у вас, ребята, есть идеи, как получить этот освежающий результат?