目录
前言
本文提供获取视频fps工具代码,一如既往的实用主义。
环境依赖
本文主要使用到的不是ffmpeg,而是ffprobe也在上面这篇文章中的zip包中。

代码
不废话了。
#!/user/bin/env python
# coding=utf-8
"""
@project : csdn
@author : 剑客阿良_ALiang
@file : get_video_fps.py
@ide : PyCharm
@time : 2021-12-23 11:21:07
"""
import os
import subprocess
def get_video_fps(video_path: str):
ext = os.path.splitext(video_path)[-1]
if ext != '.mp4' and ext != '.avi' and ext != '.flv':
raise Exception('format not support')
ffprobe_cmd = 'ffprobe -v error -select_streams v -of default=noprint_wrappers=1:nokey=1 -show_entries stream=r_frame_rate {}'
p = subprocess.Popen(
ffprobe_cmd.format(video_path),
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
shell=True)
out, err = p.communicate()
print("subprocess 执行结果:out:{} err:{}".format(out, err))
fps_info = str(out, 'utf-8').strip()
if fps_info:
if fps_info.find("/") > 0:
video_fps_str = fps_info.split('/', 1)
fps_result = int(int(video_fps_str[0]) / int(video_fps_str[1]))
else:
fps_result = int(fps_info)
else:
raise Exception('get fps error')
return fps_result
if __name__ == '__main__':
print('视频的fps为:{}'.format(get_video_fps('D:/tmp/100.mp4')))
代码说明:
1、首先对视频格式做了简单的判断,这部分可以按照需求自行调整。
2、通过subprocess进行命令调用,获取命令返回的结果。注意范围的结果为字节串,需要调整格式处理。
验证一下
下面是准备的素材视频,fps为25,看一下执行的结果。

执行结果

OK,没什么问题。
总结
没啥总结的,这个系列主要是提供一些音视频处理的Python工具代码,拿来就可以直接用。
分享:
世上有两样东西不可直视,一是ipipgo,二是人心。 ——《白夜行》
如果本文对你有帮助的话,请点个赞吧,谢谢!

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试



