ffmpeg学习日记17-获取MP4视频流的帧率
ffmpeg学习日记17-获取MP4视频流的帧率
参考各位大佬的文章,终于磕磕绊绊的理解,写出了获取MP4视频流的帧率等信息的代码
win10系统下运行
代码如下:
getMp4FrameNum.pro
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qtSOURCES += \main.cppwin32 {
INCLUDEPATH += $$PWD/../include
LIBS += $$PWD/../lib/avcodec.lib \$$PWD/../lib/avdevice.lib \$$PWD/../lib/avfilter.lib \$$PWD/../lib/avformat.lib \$$PWD/../lib/avutil.lib \$$PWD/../lib/postproc.lib \$$PWD/../lib/swresample.lib \$$PWD/../lib/swscale.lib
}
main.cpp
#include <string>
#include <iostream>
#include <cinttypes>extern "C"
{
#include <stdio.h>
#include <stdlib.h>
#include <string.h>#include "libavcodec/avcodec.h"
#include "libavutil/opt.h"
#include "libavutil/imgutils.h"
#include "libavformat/avformat.h"
#include "libavutil/samplefmt.h"
#include "libavutil/timestamp.h"
}int main()
{std::cout << "hello world" << std::endl;int ret = 0;av_register_all();AVFormatContext *format_ctx = avformat_alloc_context();ret = avformat_open_input(&format_ctx,"jk.mp4",NULL,NULL);if (ret){std::cout << "open failed : " << ret << std::endl;return 0;}AVInputFormat *input_fmt = format_ctx->iformat;//获取视频的格式名字std::cout << "name:" << input_fmt->name << std::endl;std::cout << "long name:" << input_fmt->long_name << std::endl;AVStream **stream = (format_ctx->streams);//获取视频的时长std::cout << "shipin shichang :" << format_ctx->duration << "us == " <<format_ctx->duration / 1000000 << "s" << std::endl;int den = (*stream)->avg_frame_rate.den;int num = (*stream)->avg_frame_rate.num;std::cout << "shipin zhensulv den:" << den << std::endl;std::cout << "shipin zhensulv num:" << num << std::endl;//获取视频的帧率float rate = (float)num/(float)den;std::cout << "shipin zhensulv :" << rate << std::endl;int msnum = (format_ctx->duration % 1000000) / 1000;std::cout << "shipin msnum :" << msnum << std::endl;int yuzhen = (int)(msnum * 1/rate);std::cout << "shipin yuzhensu :" << yuzhen << std::endl;//获取视频的总帧数std::cout << "shipin zongzhensu :" << (format_ctx->duration / 1000000) * (int)rate + yuzhen << std::endl;avformat_close_input(&format_ctx);return 0;
}
参考
- ffmpeg代码笔记3:获取MP4视频流的帧率
- FFmpeg获取视频帧率fps,tbr
- FFmpeg中mp4的demuxer(mov.c)代码阅读
- ffmpeg学习五:avformat_open_input函数源码分析(以mp4文件为例)
- FFMPEG AVRational
ffmpeg学习日记17-获取MP4视频流的帧率相关推荐
- ffmpeg学习日记603-指令-获取视频分辨率
ffmpeg学习日记603-指令-获取视频分辨率 ffmpeg:ffprobe获取视频分辨率,视频宽高,时长等元数据信息 ffprobe -select_streams v -show_entries ...
- ffmpeg学习日记605-指令-获取视频的总帧数
ffmpeg学习日记605-指令-获取视频的总帧数 获取视频的总帧数 ffprobe.exe -v error -count_frames -select_streams v:0 -show_entr ...
- ffmpeg学习日记506-源码-av_image_copy()函数分析及功能
ffmpeg学习日记506-源码-av_image_copy()函数分析及功能 实现文件 av_image_copy()实现在libavutil/imgutils.c中 函数原型 void av_im ...
- ffmpeg学习日记604-指令-将视频格式转为H264格式
ffmpeg学习日记604-指令-将视频格式转为H264格式 在第四篇中,想要解码视频,缺没有弄清楚怎样的一个数据流,现在又明晰了一点,所谓的h264编解码,并不是直接将视频格式,通过h264编解码为 ...
- ffmpeg学习日记612-指令-转换视频格式
ffmpeg学习日记612-指令-转换视频格式 mkv转mp4 ffmpeg -i LostInTranslation.mkv -codec copy LostInTranslation.mp4 Li ...
- ffmpeg学习日记602-指令-转换视频的分辨率
ffmpeg学习日记602-指令-转换视频的分辨率 指令如下 ffmpeg -i video_1920.mp4 -vf scale=640:360 video_640.mp4 -hide_banner
- ffmpeg学习日记701-报错-co located POCs unavailable
ffmpeg学习日记701-报错-co located POCs unavailable h264 co located POCs unavailable 出现该报错,是由于直接解析的帧是非关键帧,没 ...
- FFmpeg学习日记2
1.将多张图像合成视频 解析: ffmpeg -f image2 -r 5 -i G:/image/image%02d.png -vcodec mpeg4 G:/image.mp4 2.设置Adobe ...
- QT学习日记17——Qt数据库
学习视频链接 2021新版QT图形框架编程开发(层层到肉)_C++图形用户界面开发框架_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Wf4y1Y7uh ...
最新文章
- 产品运行所需的信息检索失败_禁煤后用什么替代锅炉?看看三种热源运行费用对比就知道了...
- angularjs 表单校验
- Ubuntu 创建文件夹时出现:用户名 不在 sudoers 文件中。此事将被报告。
- 硬件基础知识---(3)电阻2
- 常用 html 标签
- Maven经验分享(一)安装部署
- linux终端怎么设置monaco,ubuntu16.04安装monaco字体
- c语言运算优先级口诀简单,C语言运算符优先级和口诀
- php阿里支付回调逻辑,php 银联支付回调
- 脑肠轴必读综述 | 肠道菌群是如何影响人的情绪疾病呢?(一)
- lineNumber: 1; columnNumber: 15; XML 声明中 version 后面跟随的值必须是用引号括起来的字符串。
- Error creating bean with name ‘dataSource‘: Error setting property,river for test database type [HSQ
- MongoDB Project(投影字段)
- Hadoop分布式集群安装
- (转)MBA案例:Taxi
- Zfile-轻量开源个人网盘【超简单部署】
- 桂微盘 开启6元微交易投资新时代
- Excel怎么自定义表格样式,设置每两行替换颜色
- 基于安卓平台的软件加固方案的设计与实现_银河麒麟操作系统 V10 发布:可兼容安卓生态...
- 订书机在工作中是否重要
热门文章
- 操作系统1—4章(最全复习题)
- 用户登录业务逻辑(单点登录,权限登录,普通登录)
- python opencv白平衡算法
- 计算机2级软件打不开,小编教你二级网页打不开怎么解决
- STL教程(十): 关联容器--unordered_map/unordered_multimap
- 面试题 之 数据库部分 八
- ORA_ERROR大全
- python求一元二次方程的解法_python进行二次方程式计算的实例讲解
- CAM350导入文件时钻孔文件错误
- html简单留言板教程,JS实现简易留言板(节点操作)