ffmpeg根据原始视频的帧率进行提取视频帧

直接上代码,自己编写的。。。有问题可以提

安装教程看这个:https://blog.csdn.net/m0_61497715/article/details/129817641

去官网下个最新的ffmpeg,解压到随便的目录,上级目录最好不要用中文;

然后去设置环境变量,加入ffmpeg的bin路径;

查看是否设置成功使用ffmpeg -version。

python 复制代码
import os
import subprocess
import re
import math


def get_video_frame_rate(video_path):
    command = ['ffmpeg', '-i', video_path]
    # 执行命令并获取输出
    output = subprocess.run(command, capture_output=True, text=True)
    # 从输出中提取帧率信息
    match = re.search(r"(\d+(\.\d+)?) fps", output.stderr)
    if match is None:
        return None
    frame_rate = float(match.group(1))
    return frame_rate


_video_path = 'src.mp4'  # 设置视频文件路径
ffmpeg_path = r"ffmpeg.exe"
frame_path = os.path.basename(_video_path).split('.')[0]  # 以视频名字创建文件夹
os.makedirs(frame_path, exist_ok=True)

_frame_rate = get_video_frame_rate(_video_path)  # 获取视频帧率
fps = math.ceil(_frame_rate)  # 也可以输入其它数字,5,10,20

if _frame_rate is not None:
    print("视频帧率:", _frame_rate)
    os.system(f"{ffmpeg_path} -i {_video_path} -vf fps={fps} {frame_path}/%06d.png")
    print(math.ceil(_frame_rate))
else:
    print("无法获取视频帧率")
相关推荐
火山上的企鹅12 分钟前
QGC二次开发本地媒体浏览实战(二)FFmpeg最小系统实战
qt·ffmpeg·媒体·qgc
Black蜡笔小新22 分钟前
GB28181/GB35114/RTSP/ONVIF视频监控平台EasyCVR平台视频质量诊断扩展服务插件
音视频
ai产品老杨1 小时前
终结碎片化:基于GB28181/RTSP协议网关与边缘协同的企业级AI视频平台架构深度解析(附源码交付)
人工智能·架构·音视频
EasyGBS1 小时前
实战落地:国标GB28181视频平台EasyGBS+国密GB35114协议,双重保障赋能智慧安防全场景安全高效联网
人工智能·安全·音视频
正宗咸豆花1 小时前
Sora关停,实时AI交互如何破解视频生成的高成本困境?
人工智能·音视频
愚公搬代码2 小时前
【愚公系列】《剪映+DeepSeek+即梦:短视频制作》031-调色:废片秒变氛围感大片(滤镜的风格化调节)
音视频
无线图像传输研究探索2 小时前
无人机、DV 摄像机视频画面无距离限制实时回传,这款 5G多卡单兵图传设备你怎么看?
5g·音视频·无人机·无线图传·5g单兵图传·单兵图传
九天轩辕2 小时前
Chromium 内核深度剖析:HTML 属性解析限制导致的视频静音失效问题
前端·html·音视频
EasyGBS3 小时前
告别低效巡检,国标GB28181视频分析平台EasyGBS视频质量诊断助力智慧城市安防精细化落地
数据库·音视频·智慧城市
weixin_446260853 小时前
[特殊字符] Insanely Fast Whisper - 超快音频转录工具!
whisper·音视频