ffmpy захватывает и обрабатывает stderr должным образом - PullRequest
0 голосов
/ 19 февраля 2019

Я очень новичок в ffmpeg и использую оболочку pythons для ffmpeg, ffmpy для обработки большого количества видео, но некоторые видео выдают различные предупреждения и не могут быть перекодированы.Например:

Unsupported codec with id 0 for input stream 4

Я читал, как анализировать метаданные видео в json из кортежа, который возвращает ff.run () (из первого ff [0]), но как бы я изящно обработалошибки из ff [1] существует ли какой-либо стандартный или рекомендуемый способ использования оболочки ffmpy?Ниже приведено то, что у меня есть в настоящее время, но интересно, есть ли более изящный способ обработки определенных ошибок?

import ffmpy
ff = ffmpy.FFprobe(
            inputs={file_to_probe: None},
            global_options=[
                '-v', 'warning',
                '-print_format', 'json',
                '-show_format', '-show_streams',
            ]
            ).run(stdout=subprocess.PIPE, stderr=subprocess.PIPE)

# to load meta data works great!!
video_meta_data = json.loads(ff[0].decode('utf-8'))

# ideally i'd like to do something like: but is there a better way?!
if ff[1] is not null:
    print('handle errors here')
...