Почему я получаю статус выхода 1? - PullRequest
0 голосов
/ 23 мая 2018

Итак, я пишу этот код для анализа этого видео, но сталкиваюсь с этой проблемой, когда пытаюсь запустить его в Spyder, Anaconda:

import subprocess
from subprocess import call
import math

##Converts the given file into a series of images
def Video_to_Image_Converter(fileName):
    res1 = call("ffmpeg -i " + fileName + " -vf fps=1 frame-%d.jpg", shell=True)
    print(res1)
    result = subprocess.Popen('ffprobe -i '+ fileName +' -show_entries format=duration -v quiet -of csv="p=0"', stdout=subprocess.PIPE,stderr=subprocess.STDOUT, shell=True)
    output = result.communicate()
    print(output)
    #return math.ceil(float(output[0])) + 1


if __name__ == '__main__':
    videoLength = Video_to_Image_Converter('sampleVideo.wmv')
    print(videoLength)

Итак, этот код работал нормально в iPython, но яначались проблемы при попытке использовать Spyder.res1 должен иметь статус выхода 0, если все прошло хорошо, но это 1. Однако я не знаю, что пошло не так.Все, что он говорит при запуске subprocess.check_output по вызову:

Command 'ffmpeg -i sampleVideo.wmv -vf fps=1 frame-%d.jpg' returned non-zero exit status 1

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 24 мая 2018

Итак, я понял проблему.Я установил ffmpeg на свой компьютер, но по какой-то причине Anaconda, похоже, не использует переменные среды для поиска программ, которые она должна запустить.Кажется, у Anaconda есть собственный набор установленных программ, и мне пришлось установить его через conda, используя
"conda install -c menpo ffmpeg" (из https://anaconda.org/menpo/ffmpeg).

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