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("无法获取视频帧率")
相关推荐
视频技术分享3 小时前
B端音视频SDK:从底层组件到企业业务能力的蜕变
音视频
工具派7 小时前
口播视频怎么自动剪掉冷场?视频静音删除的阈值实测
ffmpeg·音视频·视频
天天进步20157 小时前
Pixelle-Video 源码解析 #22:竖屏、横屏、方形视频:多尺寸适配是怎么实现的?
人工智能·音视频
sweetone7 小时前
索尼MHC-V7700组合音响一修一改
经验分享·嵌入式硬件·音视频
❀͜͡傀儡师8 小时前
移动端 360° 商品展示方案:从 20MB 雪碧图到 800KB 丝滑视频
ffmpeg·webgl·sprite
霸道流氓气质9 小时前
通义千问 VL & Audio:图像、视频、语音多模态 Java 集成深度解析
java·开发语言·音视频
TechVoyager_824612 小时前
IT9205技术解析:4K60 HDR over IP与视频墙的单芯片实现路径
网络协议·音视频·音视频编解码·it9205·专业视听·视频墙芯片·avoverip
hhzz13 小时前
【OpenCV 入门到精通 04】视频入门与绘图交互:从摄像头到鼠标画笔
人工智能·python·opencv·计算机视觉·音视频·交互
DogDaoDao15 小时前
MotionWAM 深度解析:让视频世界模型跑进实时人形机器人全身控制
深度学习·机器人·大模型·音视频·人形机器人·视频大模型·motionwam