ffmpeg——vs集成ffmpeg相关开发
ffmpeg是强大且完全开源的音视频处理工具,下文主要说明在windows下vs开发工具集成ffmpeg进行相关开发工作
一、将ffmpeg相关的api放入工程
二、配置包含目录、引用目录、链接器等环境
三、动态链接库dll文件可以放到debug目录下
四、代码开发
比如,一个简单的求输入视频文件时长的函数
头文件:
extern "C"
{
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
};
函数实现:
float getvideolen(string strInputVideo)
{float VideoLen =-1;AVFormatContext *pFormatCtx=NULL;pFormatCtx = avformat_alloc_context();int nerrnum = avformat_open_input(&pFormatCtx,strInputVideo.c_str(),NULL,NULL);if( nerrnum!=0 ) {return -2;}nerrnum = avformat_find_stream_info(pFormatCtx,NULL);if( nerrnum<0 ) {return -3;}if (pFormatCtx->nb_streams >0){if(pFormatCtx->duration >0) {VideoLen= pFormatCtx->duration;}else{VideoLen= -4;}}else{VideoLen = -5;}avformat_close_input(&pFormatCtx);avformat_free_context(pFormatCtx);return VideoLen/1000000; //ffmpeg返回的是微秒,转换成秒
}
主函数时记得要初始化av_register_all();
int main(int argc, char* argv[])
{av_register_all(); if(NULL==argv[1]){cout<<"No such Input file"<<endl;return -1;}float videolen=getvideolen(argv[1]);cout<<"videolen="<<videolen<<endl;return 0;
}
如果出现错误 fatal error C1189: #error : missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS
在common.h文件头部加入以下定义
#ifdef __cplusplus
#define __STDC_CONSTANT_MACROS
#ifdef _STDINT_H
#undef _STDINT_H
#endif
# include "stdint.h"
#endif
#ifndef INT64_C
#define INT64_C(c) (c ## LL)
#define UINT64_C(c) (c ## ULL)
#endif
运行截图:
完整项目工程包下载:http://download.csdn.net/download/sm9sun/9687608
ffmpeg——vs集成ffmpeg相关开发相关推荐
- iOS开发 iOS集成FFmpeg及视频格式转码
点击下载 Demo 一.FFmpeg简介 FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视频的完整解决方 ...
- 【Android FFMPEG 开发】Android 中执行 FFMPEG 指令 ( 集成 mobile-ffmpeg 框架 | 完整代码示例 )
文章目录 一.配置远程 Maven 仓库 二.配置依赖 三.Kotlin 中执行 FFmpeg 命令 四.FFmpeg 命令执行结果查看 五.源码下载 一.配置远程 Maven 仓库 在 Androi ...
- ffmpeg 找不到bin_FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/109603499 各位读者,知识无穷而人力有穷 ...
- 基于NDK、C++、FFmpeg的android视频播放器开发实战-夏曹俊-专题视频课程
基于NDK.C++.FFmpeg的android视频播放器开发实战-1796人已学习 课程介绍 课程包含了对流媒体(拉流)的播放,演示了播放rtmp的香港卫视,支持rtsp摄像头和ht ...
- 视频教程-基于NDK、C++、FFmpeg的android视频播放器开发实战-Android
基于NDK.C++.FFmpeg的android视频播放器开发实战 夏曹俊:南京捷帝科技有限公司创始人,南京大学计算机硕士毕业,有15年c++跨平台项目研发的经验,领导开发过大量的c++虚拟仿真,计算 ...
- Android集成FFmpeg
Android集成FFmpeg 参考:https://www.jianshu.com/p/2c9918546edc 上一篇文章我们在mac下编译出了供Android平台使用的FFmpeg产物,这篇文章 ...
- 集成ffmpeg/x264:ERROR: libx264 not found的问题
集成ffmpeg/x264:ERROR: libx264 not found的问题 --拔剑 集成ffmpeg/x264碰到如下问题: ERROR: libx264 not found 察看 ...
- Android集成FFmpeg并实现视频转码
通过编译FFmpeg并集成到Android App中实现视频转码,也可以直接执行FFmpeg命令实现视频拼接.剪切.添加水印.旋转等操作,或者在C++中引入各模块头文件直接调用FFmpeg的API满足 ...
- 用ffmpeg录制小程序直播开发高清视频并实现直播推流
导读:用ffmpeg录制小程序直播开发高清视频并实现直播推流,本文用ffmpeg和 screen capture recorder工具实现用命令行方式录制小程序直播开发的高清视频,并将实时录制的高清视 ...
最新文章
- 计算机组成原理课设移位,计算机组成原理课设(多寄存器减法、右移位、输入输出、转移指令实验计算机设计)...
- sofa-rpc集群容错之Failfast实现
- JDK各版本内容和新特性
- deepin/win10双系统deepin下其他盘带锁解决
- testlink mysql配置_TestLink安装配置手册
- adb隐藏状态栏图标_[应用]华为手机怎么设置隐藏状态栏上的图标
- 用Python盘点那些豆瓣评分低于3.0的奇葩电影
- HDU4628+状态压缩DP
- Linux下几种另类创建文件之方法
- 如何刷新linux的fdisk,②linux fdisk
- 让信息带钩的六种武器——《让创意更有黏性》优秀读后感4300字
- 快速生成数据库文档--screw
- wordpress mysql缓存_【新功能】wordpress数据库缓存功能介绍和教程
- zoomit的使用 - 一个可以直接在演示的时候写字的软件
- kangle安装php7.0_Kangle Easypanel面板 PHP多版本切换 安装图文教程
- 【真北直播预报】让你的对话更有力,使十维宇宙不坠落
- Re:从零开始的 RTL-SDR 折腾记
- JS-关于原型与原型链这件事
- acrobat给pdf加多行水印_PDF加水印的各种方法
- WinCE驱动开发问题精华集锦 [转]
热门文章
- c++基础语句代码(循环语句)
- 我的世界最危险的服务器生存系列,《我的世界》极具危险的服务器
- python两列数据相关性_使用.corr获取两列之间的相关性
- Window Operations(窗口函数的使用)
- CSS 背景图片 设置居中
- HTMLCSSJavaScript个人入门自学笔记
- spss 卡方检验_SPSS篇—卡方检验
- java中equals的理解(1)
- PHPCMS商城:模块_购物车+订单模块(资源合集)
- 超迷你个人电脑微型计算机,超迷你HTPC Giada N10深度解析