使用ffmpeg打开本地文件

2023-10-31

其中 AVFormatContext 用来存储视音频封装格式(flv,mp4,rmvb,avi)中包含的所有信息 很多函数都要用到它作为参数。

avformat_open_input()该函数是打开多媒体数据并且获得一些相关的信息,其中填入的&pFormat是函数调用成功之后处理过的AVFormatContext结构体,path是打开的音视频流的url,   函数执行成功的话,其返回值大于等于0

avformat_find_stream_info () 该函数可以读取视音频流数据并且获得一些相关的信息,pFormat就是输入的AVFormatContext,函数执行成功的话,其返回值大于等于0;

#include <stdio.h>

extern "C"
{
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>

}
#pragma comment(lib,"avcodec.lib")
#pragma comment(lib,"avformat.lib")

int main()
{
	//测试DLL库是否成功
	printf("%s/n", avcodec_configuration());;


	AVFormatContext* pFormat = NULL;
    const char* path = "22.mp4";

	//打开视频文件
	int ret = avformat_open_input(&pFormat, path, NULL, NULL);

	//判断是否打开
	if (ret) {
		printf("打开失败\n");
		return -1;
	}
	printf("打开成功\n");

	//寻找流信息  H264 宽width  高height
	ret = avformat_find_stream_info(pFormat, NULL);

	//判断是否成功
	if (ret) {
		printf("失败\n");
		return -1;
	}
	printf("成功\n");

	//获取文件时长
	int time = pFormat->duration;
	printf("%d  时长",time);
	
	//以分秒显示
	int mbittime = (time / 1000000) / 60;
	int mmintime = (time / 1000000) % 60;
	printf("%d分/%d秒\n", mbittime, mmintime);

	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用ffmpeg打开本地文件 的相关文章

  • dubbo_异常Exception in thread "main" org.springframework.beans.factory.UnsatisfiedDependencyException

    Exception in thread main org springframework beans factory UnsatisfiedDependencyException Error creating bean with name
  • BES2300x笔记(27) -- 声道设定与声道切换

    哈喽大家好 这是该系列博文的第二十七篇 篇 lt lt 系列博文索引 快速通道 gt gt 一 前言 前几天 有道友私信问到 BES2300如何进行声道设定 想通过硬件进行固定 那么 这一篇我们就讲讲BES平台有关声道的设定 以及如何进行硬
  • 计算机程序设计语言教案,计算机程序设计(C语言)课程教案讲稿概要.doc

    计算机程序设计 C 语言 课程教案 讲稿 教师姓名 纪澍琴 学院 部 中心 信息传播工程学院 教研室 实验室计算机基础教研室 2008年3月 长春工业大学课程教案 讲稿 与课程有关的信息 教师编号 000361 课程名称 计算机程序设计 C
  • android listview 图片闪烁,listView异步加载图片导致图片错位、闪烁、重复的问题的解决...

    androidListView是android中重要的控件 几乎每一个项目都会用到 但是在使用中我们避免不 了会出现一些问题 包括一些滑动事件的处理 例如 ListView中嵌套scrollView 容易出现listView 展现数据不全的
  • adb关闭手机系统自动更新

    下载adb工具 https mclub lenovo com cn forum php mod attachment aid NDg5ODc1Nnw4MWRhZDE4OHwxNjU0NTI0OTY1fDB8NzgzNzg5OQ 3D 3D
  • Android jni ndk crash c++bug定位

    最近遇到了一个底层c 库的问题 然而看不到是在哪里报错的 有一个方法就是用 ndk stack的方法 在cmd里面切换到adb 在电脑上的目录 然后输入adb logcat ndk stack sym F whl MyApp 替换为你的项目
  • 【C++】递归

    1 什么是递归 程序调用自身的编程技巧称为递归 递归做为一种算法在程序设计语言中广泛应用 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法 它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解 递归策略只需
  • 前端学习之原生JS实现addClass及removeClass方法的封装

    addclass方法封装 HTML代码 div class two div div class two three div JS代码 var o1 document querySelector b1 var o2 document quer
  • python 选择结构

    选择 用于判断 注意符号 单分支 If 条件 条件成立就执行if缩进的代码 双分支 If 条件 条件成立就执行if缩进的代码 Else 条件 条件不成立就执行else缩进的代码
  • 调整计算机硬盘大小,详细教您怎么调整硬盘分区

    新买的电脑很多磁盘只有一两个 很多时候需要对资料分区管理 甚至有些磁盘容量的分配不是很合理的 这时候怎么解决呢 就要我们对硬盘重新分区大小了 下面由小编给你带来硬盘分区的详细操作步骤 新买的笔记本 有时候会发现整个硬盘只有一个分区 如果将所
  • SpringCloud之服务发现

    1 服务提供者接口 以获取一个订单接口为例 order服务对user服务进行远程调用获取user基本信息 user服务提供的接口如下 package com acx controller import com acx pojo vo Act
  • 白盒测试——代码检查法

    代码检查法是静态的 不用生成测试用例并驱动被测程序运行来发现错误 代码检查法分为三种 一 代码审查 代码审查被认为是软件业最佳的实践 人们可以审查任何一种软件工作产品 包括需求和设计文档 源代码 测试文档及项目计划等 1 代码审查角色 主持
  • unity AR 教程

    start Frist 去Vuforia 官网注册新号 获取 LicenseKey链接地址 https developer vuforia com 如果unity是2017 2以上会在unity安装的时候自带AR组件 如果是老版本 就下载下
  • 华硕主板如何设置开机自启_华硕主板每次开机都进bios 华硕主板开机总是自动进入了BIOS设置界面怎么办?...

    华硕主板开机总是自动进入了BIOS设置界面怎么办 华硕笔记本若电脑一开机自动进入bios设置 可按以下操作更改BIOS设置 1 开机的时候长按F2键进入BIOS界面 通过方向键进 Secure 菜单 通过方向键选择 Secure Boot
  • Android疑难解决-Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.

    编译项目报错 版本错误 Build file xxx build gradle line 2 An exception occurred applying plugin request id com android application
  • flutter 手势控制

    flutter 手势控制 事件监听 1 指针事件Point 2 手势识别Gesture 3 跨组件事件 在大前端的开发中 必然存在着各种各样和用户交互的情况 比如手指点击 手指滑动 双击 长按等 在Flutter中 手势有两个不同的层次 第
  • QT 的 QSS 的基本概念

    https www cnblogs com davesla archive 2011 01 30 1947928 html 借用css 的灵感 Qt也支持Qt自己的css 简称qss 同css 相似 qss的主要功能与最终目的都是能使界面的
  • C - Check The Text(string)

    C Check The Texthttps vjudge csgrandeur cn problem Gym 102263C Roze有一个特殊的键盘 只有29个键 26个字母a z键 打印26个小写拉丁字母 空格 键 打印一个空格 Cap
  • 机器学习比较好的视频资源

    吴恩达 经典入门课程 中英字幕 吴恩达机器学习系列课程 哔哩哔哩 bilibili www bilibili com video BV164411b7dx spm id from 333 999 0 0正在上传 重新上传取消 双语字幕 吴恩

随机推荐

  • JavaScript中window.print()打印

    JavaScript中使用window print 打印方法时 打印的是当前页的所有内容 所以如果直接在当前页使用此打印方法应先保存当前页面再把打印部分替换当前页面执行完之后再替换回来 或者新打开一个页面 把所打印的部分都写到新打开的页面上
  • Windows10中CUDA cundnn pytorch环境搭建记录

    关于在win10中安装cuda cudnn及pytorch全家桶 torch torchvision torchaudio 的详细安装步骤 可以参考这个帖子 说的非常详细 win10下pytorch gpu安装以及CUDA详细安装过程 仅在
  • ArchLinux安装slock锁屏(suckless)

    简介 一款suckless团队开发的锁屏小工具 下载 git clone https git suckless org slock 或者点击该链接下载 https dl suckless org tools slock 1 4 tar gz
  • JS高级(2)函数高级 — 原型与原型链

    原型与原型链 1 原型prototype 每个函数都有一个prototype属性 它默认指向一个Object空对象 即原型对象 里面没有我们的属性 原型中有一个属性constructor 它指向函数对象 构造函数和原型对象相互引用 func
  • 从零开发区块链应用(六)--gin框架使用

    文章目录 一 Gin 框架介绍 二 Gin安装 三 Gin使用 3 1 设置gin模式 3 2 创建新路由 3 3 创建多路由分组 3 4 创建路由 3 5 编写接口执行函数 3 6 启动服务 参考文档 Gin框架介绍及使用 https w
  • bread是可数还是不可数_在英语语法里,为什么bread是不可数名词?

    学英语 我们要分清楚名词的类型 可数名词 不可数名词 可数名词就是能够用 1 2 3 4 5 这样数的人或事物 比如苹果 茶杯 汽车 都可以这样数 但是 当我们打算去 数 water 水的时候 就水本身而言 它是液体 没有固定的形状和结构
  • SingleThreaded是如何进入cull_draw()的?

    正如以前所说 单线程模式是通过cull draw 进行剔除绘制的 如何进入的呢 其实很简单 逆推下 最后 回到梦开始的地方
  • React学习之围棋记谱本制作(二)棋盘、棋子、交替落子

    与儿子一起学围棋 上网上找 发现好用的记谱本软件特别少 打算自己做一个 不知能不能克服惰性 完成这个目标 千里之行 始于足下 今天完成了基础工作 棋盘 棋子组件 并完成了交替落子功能 是React基本功能的很好示范 代码贴一下 下一步就是多
  • 状态机的思想

    http blog sina com cn s blog 3e71aaaa0100834m html 转载于 https www cnblogs com as3lib p 3518613 html
  • 谷歌云活动

    Google x Cloud Ace 线下活动即将开始 本期主题 解锁 AIGC 密码 探寻企业发展新商机 期待您的莅临 时间 5月24日13 30 17 00 地点 深圳南山 本次活动定向邀请 CXO 们请扫码报名获取地址信息
  • 因果推断--Uplift model的原理和python实操(三)

    目录 一 Uplift Model的应用场景 二 Uplift Model原理及建模方法 2 1 建模目标 2 2 建模方法 1 双模型 差分响应模型 2 标签转化 Class Transformation Method 2 3 模型评估
  • Anaconda实验环境的搭建

    Anaconda和Jupyter notebook Anaconda Conda Package 和 Environment Data Science IDE vs Developer IDE 从IPython 到 Jupyter mac上
  • 30天自制操作系统学习-第9天

    1 整理源文件 昨天对鼠标键盘的控制函数都放在了HariMain主函数中 今天我们先将这些功能独立一个对应的C文件中即可 修改后的文件目录结构 只需在bootpack h头文件中声明即可 2 内存管理 高速缓存 维基百科 Cache一词来源
  • OSI网络的七大模型简介

    先声明本文摘自https www cnblogs com carlos mm p 6297197 html是一片非常易懂的文章 以下做了压缩的摘要 物理层 它的主要作用是传输比特流 就是由1 0转化为电流强弱来进行传输 到达目的地后在转化为
  • 10G RAC中的CSS TIMEOUT相关的设置和调整(ZT)

    10G RAC中的CSS TIMEOUT相关的设置和调整 作者 天涯 来源 中国自学编程网 发布日期 1214468885 这篇文章是偶用半生不熟的E文翻译过来的 所以很多可能看着很别扭 E文好的建议直接看原文 在METALINK中的294
  • 海康服务器系统装完重启转圈蓝屏,win10重启一直转圈的解决方法 win10重启一直转圈 - 云骑士一键重装系统...

    Ready 品牌型号 联想GeekPro 2020 系统 win10 1909 64位企业版 软件版本 大番茄一键重装系统2 1 6 我们在使用win10系统时 有时会给win10重新启动 但是出现win10重新启动一直转 这是怎么一回事呢
  • 计算机组成原理补充实验,计算机组成原理补充实验.doc

    计算机组成原理补充实验 计算机组成原理补充实验 目 录 第一节 计算机组成原理常用部件实验 1 实验1 数据选择器 2 实验2 寄存器 3 实验3 计数器 5 实验4 译码器 6 实验5 节拍发生器 7 第二节 运算器组成实验 8 实验1
  • pygame小游戏-------FlappyBird像素鸟的实现

    简述 对FlappyBird像素鸟游戏的简单复现 仅两百行左右 工程目录结构为image文件夹和run py文件 pygame模块的下载直接pip install pygame即可 图片下载地址为像素鸟图片 音频文件自己找一个即可 impo
  • 基于JavaWeb的学生信息管理系统

    项目背景 学生信息管理是学校的重要工作之一 传统的学生信息管理由于是手工操作 工作量大且容易出错 随着计算机和网络技术的迅速发展 越来越多的院校都拥有了自己的学生信息管理系统 而采用B S架构的学生信息管理系统进行学生信息的管理则是其趋势
  • 使用ffmpeg打开本地文件

    其中 AVFormatContext 用来存储视音频封装格式 flv mp4 rmvb avi 中包含的所有信息 很多函数都要用到它作为参数 avformat open input 该函数是打开多媒体数据并且获得一些相关的信息 其中填入的