Получить сообщение об ошибке

ret = subprocess.call('ffmpeg -i /2269.mp4 -c:v libwebp -vf "fps=1/300,scale=-2:min\'(ih,700)\'" -vsync vfr /img%01d.webp', stderr=subprocess.PIPE, shell=True)
print(ret)

Если нет ошибок, выводит 0, при наличии допустим указать несуществующий файл. Выдает 1

Как выполнить таким образом, чтобы выводило не 1. А именно сообщение, что ffmpeg не удалось загрузить искомый файл по такой та дериктории.

И аналогичные ошибки,так же получить в переменную и записать в txt


Ответы (1 шт):

Автор решения: Эникейщик

Замени stderr=PIPE на stderr=STDOUT.


И учись читать документацию, где все это описано.

И в числе прочего написано про call():

Note   Do not use stdout=PIPE or stderr=PIPE with this function. The child process will block if it generates enough output to a pipe to fill up the OS pipe buffer as the pipes are not being read from.

→ Ссылка