避坑ffmpeg直接获取视频fps不准确

server/2024/11/27 8:30:50/

最近在做视频相关的任务,调试代码发现一个非常坑的点,就是直接用ffmpeg获取fps是有很大误差的,如下:

# GPT4o generated
import ffmpegprobe = ffmpeg.probe(video_path, v="error", select_streams="v:0", show_entries="stream=nb_frames,r_frame_rate")
r_frame_rate = probe['streams'][0]['r_frame_rate']
num, denom = map(int, r_frame_rate.split('/'))
fps = num / denom

我的任务里,上述代码给的fps是30,但是用总帧数除以总时长是29.91,误差还是比较大的。正确做法就是自己做除法:

# GPT4o generated
def get_video_info(video_path):probe = ffmpeg.probe(video_path)video_streams = [stream for stream in probe["streams"] if stream["codec_type"] == "video"]if not video_streams:raise ValueError("No video stream found")video_stream = video_streams[0]# 获取帧数frames = int(video_stream.get("nb_frames", 0))# 获取时长duration = float(video_stream.get("duration", probe["format"].get("duration", 0.0)))# 获取帧率# r_frame_rate = video_stream.get('r_frame_rate', '0/1')# num, den = map(int, r_frame_rate.split('/'))# fps = num / den # inaccuratefps = frames / durationreturn frames, duration, fps

真是成也GPT,败也GPT ==


http://www.ppmy.cn/server/145289.html

相关文章

windows下安装wsl的ubuntu,同时配置深度学习环境

写在前面,本次文章只是个人学习记录,不具备教程的作用。个别信息是网上的,我会标注,个人是gpt生成的 安装wsl 直接看这个就行;可以不用备份软件源。 https://blog.csdn.net/weixin_44301630/article/details/1223900…

C嘎嘎探索篇:栈与队列的交响:C++中的结构艺术

C嘎嘎探索篇:栈与队列的交响:C中的结构艺术 前言: 小编在之前刚完成了C中栈和队列(stack和queue)的讲解,忘记的小伙伴可以去我上一篇文章看一眼的,今天小编将会带领大家吹奏栈和队列的交响&am…

Spring Boot OA:企业数字化转型的利器

3系统分析 3.1可行性分析 通过对本企业OA管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本企业OA管理系统采用SSM框架,JAVA作为开发语言&a…

前端网络请求:从 XMLHttpRequest 到 Axios

​🌈个人主页:前端青山 🔥系列专栏:Vue篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来Vue篇专栏内容:前端网络请求:从 XMLHttpRequest 到 Axios 前言 在网络应用中,前后端的数据…

Jtti:排查和解决服务器死机问题的步骤

服务器死机是一个严重的问题,可能导致业务中断和数据丢失。要排查和解决服务器死机问题,需要系统地检查以下几个方面: 一、硬件问题 电源供应:检查电源是否稳定,是否有电源故障或电源线松动的问题。查看不间断电源(UPS…

微前端基础知识入门篇(二)

概述 在上一篇介绍了一些微前端的基础知识,详见微前端基础知识入门篇(一)。本文主要介绍qiankun微前端框架的实战入门内容。 qiankun微前端实践 通过Vite脚手架分别创建三个程序,主应用A为:vite+vue3+ts,两个微应用分别为B:vite+vue3+ts;C:vite+React+ts。因为qiankun的…

文件防泄密怎么做才更安全?

文件泄密的风险不断增加,为了防止文件泄密,企业开始采取一系列先进的技术手段和管理措施。咱们从三个方面分析,有效的保护企业的文件安全。 一、采用加密软件技术 使用强加密算法对敏感文件进行加密,确保文件在传输和存储过程中不…

【单片机的结构和组成】

目录 1、中央处理单元(CPU):2、存储器:3、输入/输出(I/O)接口:4、定时器/计数器:5、模拟-数字转换器(ADC):6、数字-模拟转换器(DAC&am…