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("无法获取视频帧率")
相关推荐
米优2 小时前
ffmpeg实现解码h264/h265裸码流
ffmpeg
EasyGBS3 小时前
监控通道太多查不过来?国标GB28181视频平台EasyGBS视频质量诊断支持轮询模式,省心太多了
音视频
EasyDSS3 小时前
私有化音视频系统/视频直播点播EasyDSS社交娱乐场景下的一站式音视频技术实践
音视频·娱乐
GlobalInfo3 小时前
全球汽车音频数字信号处理器市场规模、企业排名、市场占有率及前景分析报告(2026-2032)
大数据·汽车·音视频
EasyDSS15 小时前
私有化视频会议平台/智能会议管理系统EasyDSS一站式视频云平台重构企业数字化协作底座
重构·音视频
AI25122421 小时前
AI视频生成工具技术解析:从文生视频到分镜脚本全流程
人工智能·音视频
好家伙VCC21 小时前
**发散创新:基于FFmpeg的视频编码优化实践与实战代码解析**在现代多媒体系统中,
java·python·ffmpeg·音视频
Ai搬运工11 天前
【保姆级教程】B站缓存视频如何转为正常MP4格式?
缓存·音视频·bilibili
y小花1 天前
安卓音频接口从APP到Hal的调用流程
android·音视频
byte轻骑兵1 天前
【HFP】规范精讲[24]: 蓝牙HFP术语宝典
音视频·车机·hfp·耳机·蓝牙通话