這裏演示下如何用ffprobe獲取視頻的各種信息,ffprobe是和ffmepg一起的,不需要特別安裝,只需要有ffmpeg,就自動會帶ffprobe。
獲取視頻的分辨率:
ffprobe_path = '/home/user/ffprobe'
video_path = 'your_video_path'
command = '{ffprobe_path} -v error -select_streams v:0 -show_entries stream=width,height -of json {video_path}'.format(ffprobe_path=ffprobe_path,
video_path=video_path)
value = subprocess.check_output(command)
data = json.loads(value)
獲取視頻的幀速率:
ffprobe_path = '/home/user/ffprobe'
video_path = 'your_video_path'
command = '{ffprobe_path} -v error -select_streams v -show_entries stream=r_frame_rate -of json {video_path}'.format(ffprobe_path=ffprobe_path,
video_path=video_path)
value = subprocess.check_output(command)
data = json.loads(value)
frame_rate = eval(data.get('streams')[0].get('r_frame_rate'))
最後用eval只是將其value變成ini類型
獲取視頻幀數:
ffprobe_path = '/home/user/ffprobe'
video_path = 'your_video_path'
command = '{ffprobe_path} -v error -select_streams v -show_entries stream=nb_frames -of json {video_path}'.format(ffprobe_path=ffprobe_path,
video_path=video_path)
value = subprocess.check_output(command)
data = json.loads(value)
frames = data.get('streams')[0].get('nb_frames')