Как узнать Bitrate и FPS видео используя Python и FFmpeg

Алоха! Столкнуля с задачкой, когда используя FFmpeg и Python нужно узнать bitrate и FPS видеофайла. Сказано сделано. Код ниже состоит из двух функций:

import ffmpeg

# получение FPS
def get_fps(file):
       try:
           probe = ffmpeg.probe(file)
           video_fps = next(s for s in probe['streams'] if s['codec_type'] == 'video')
           fps = int(int(video_fps['r_frame_rate'].split('/')[0]))
           return fps
       except Exception as er:
           return er

# получаение bitrate
def get_bitrate(file):
    try:
       probe = ffmpeg.probe(file)
       video_bitrate = next(s for s in probe['streams'] if s['codec_type'] == 'video')
       bitrate = int(int(video_bitrate['bit_rate']) / 1000)
       return bitrate
   except Exception as er:
       return er

Вообще, FFmpeg позволяет получить инфомацию о файле сразу в json или xml формате, но мне было необходимо узнать точный FPS и bitrate, чтобы дальше работать с этими значениями. Функции находят в выводе FFmpeg нужные ключи и выводят их значения, возвращается тип данных string.

Небольшое пояснение к строчке bitrate = int(int(video_bitrate[‘bit_rate’]) / 1000). Такая манипуляция позволяет получить значение битрейта с огруглением в kbps, если вам необходимо получить точное значение, достаточно привести строку к такому виду:

bitrate = int(video_bitrate['bit_rate'])

Если распечатаете содержимое probe, то можно заметить и другие “ключи”, по которым можно проитерировать и выдернуть другие необходимые значения параметров. Если будут вопросы, комментарии открыты, если есть предложение, как сделать это проще также отписывайтесь в комментариях.