当前位置: 首页 > news >正文

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

直接上代码,自己编写的。。。有问题可以提
安装教程看这个:https://blog.csdn.net/m0_61497715/article/details/129817641

去官网下个最新的ffmpeg,解压到随便的目录,上级目录最好不要用中文;
然后去设置环境变量,加入ffmpeg的bin路径;
查看是否设置成功使用ffmpeg -version。

import os
import subprocess
import re
import mathdef 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 Noneframe_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,20if _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("无法获取视频帧率")
http://www.lryc.cn/news/94823.html

相关文章:

  • 从零搭建秒杀服务
  • 数据库应用:CentOS 7离线安装PostgreSQL
  • 【PHP面试题42】Laravel依赖注入实现的原理是怎么样的
  • 如何在本地组策略编辑器中启用或禁用剪贴板历史记录
  • 如何与ChatGPT愉快地聊天
  • 使用Gradio库进行交互式数据可视化:Timeseries模块介绍
  • CONTAINER = ALL是ALTER USER语句的默认值
  • 华为发布大模型时代AI存储新品
  • 5G网络功能介绍
  • 笙默考试管理系统-MyTestMean(13)
  • Tomcat之高可用配置
  • IDEA中springboot的热加载thymeleaf静态html页面
  • Java中可以使用哪些系统架构?怎样选择?
  • 一文详解什么是数据库分片
  • 百度留痕是什么方法排名的
  • 基于时域特征和频域特征组合的敏感特征集,再利用CNN进行轴承故障诊断(python编程)
  • CAD2021安装教程适合新手小白【附安装包和手册】
  • AcWing 107. 超快速排序—逆序对
  • 华为、阿里巴巴、字节跳动 100+ Python 面试问题总结(三)
  • 详解在Linux中修改Tomcat使用的jdk版本
  • 高级 Matplotlib:3D 图形和交互性
  • cloud Alibab+nacos+gateway集成swaggerui,统一文档管理(注意点)
  • 使用 YOLOv8 进行传输线故障检测-附源码
  • 安装RabbitMQ 详细步骤
  • SAP CAP篇十:理解Fiori UI的Annoation定义
  • 不允许你不知道的 MySQL 优化实战(二)
  • JVM_00000
  • MCU嵌入式开发-硬件和开发语言选择
  • SVR算法简介及与其它回归算法的关系
  • Rust系列(二) 内存管理