博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vs2013+ffmpeg开发环境搭建
阅读量:6340 次
发布时间:2019-06-22

本文共 1570 字,大约阅读时间需要 5 分钟。

http://blog.csdn.net/spaceyqy/article/details/43115391

每当看到配环境,我就泪流满面,好吧,闲话不多说,进入正题。

1.去官方下载ffmpeg  可参见:  

包含三个版本:Static、Shared以及Dev

  • Static   --- 包含3个应用程序:ffmpeg.exe , ffplay.exe , ffprobe.exe,体积都很大,相关的DLL已经被编译到exe里面去了。
  • Shared --- 除了ffmpeg.exe , ffplay.exe , ffprobe.exe之外还有一些DLL,exe体积很小,在运行时到相应的DLL中调用功能。
  • Dev      --- 开发者(developer)版本,里面包含了库文件xxx.lib以及头文件xxx.h,这个版本不含exe文件
2.开发者版本配置相关环境
    把dev版本与share版本都下下来解压,dev版本文件夹中的Include和lib目录整个儿复制到VS项目目录下,并在工程属性中设置附加包含目录:$(ProjectDir)\include和附加库目录:$(ProjectDir)\lib。
    接着将share版本文件夹中bin目录下对应的所有dll复制到项目路径下,如下图所示:
3.测试
在doc/examples目录下复制metadata.c源文件到新建的"源.cpp"文件中,这是一个独立的demo,作用是打印音视频媒体文件基本信息。比如我们放一首音乐到工程目录下,
 
接着尝试运行该源文件,发现报错!这是因为我们的C++工程直接调用ffmpeg的C函数库,导致C函数无法解析,此时用到extern “C”进行声明即可,下面是声明方式:
[cpp]   
 
  1. #ifndef INT64_C  
  2. #define INT64_C(c) (c ## LL)  
  3. #define UINT64_C(c) (c ## ULL)  
  4. #endif  
以及
[cpp]   
 
  1. #ifdef __cplusplus   
  2. extern "C" {  
  3. #endif   
  4.     /*Include ffmpeg header file*/  
  5. #include <libavformat/avformat.h>   
  6. #include <libavcodec/avcodec.h>   
  7. #include <libswscale/swscale.h>   
  8.   
  9. #include <libavutil/imgutils.h>    
  10. #include <libavutil/opt.h>       
  11. #include <libavutil/mathematics.h>     
  12. #include <libavutil/samplefmt.h>  
  13.     //----代码区---  
  14. #ifdef __cplusplus   
  15. }  
  16. #endif   
将刚刚的那个mp3文件输入工程项目中试试看能否运行,
 
如果能运行说明基本配置完成,后续还有一些东西需要配置,主要是针对用到的uint8_t、int64_t等数据类型。
 
4.如何使用static版本
4.1 配置与运行
配置系统环境path环境变量,加入ffmpeg.exe所在目录如我的:
 
然后可以在命令符窗口直接调用ffmpeg.exe
 
4.2 ffmpeg.exe的使用
一个简单的转码命令可以这样写:
[cpp]   
 
  1. ffmpeg -i input.avi -b:v 640k output.ts  
详情参考
详细的使用说明(英文):
4.3 ffplay.exe
ffplay是用于播放的应用程序。一个简单的播放命令可以这样写:
[cpp]   
 
  1. ffplay test.avi  
具体使用方法参考 : 
详细的使用说明(英文):
4.4 ffprobe.exe
ffprobe是用于查看文件格式的应用程序,详细的使用说明(英文):
你可能感兴趣的文章
区块链应用 | 不知道什么时候起,满世界都在谈区块链的事情
查看>>
小程序爆红 专家:对简单APP是巨大打击
查看>>
FarBox--另类有趣的网站服务【转】
查看>>
在非纯色背景上,叠加背景透明的BUTTON和STATIC_TEXT控件
查看>>
Distributed2:Linked Server Login 添加和删除
查看>>
Java中取两位小数
查看>>
使用 ftrace 调试 Linux 内核【转】
查看>>
唯一聚集索引上的唯一和非唯一非聚集索引
查看>>
Spark新愿景:让深度学习变得更加易于使用——见https://github.com/yahoo/TensorFlowOnSpark...
查看>>
linux磁盘配额
查看>>
NFS文件共享服务器的搭建
查看>>
IP_VFR-4-FRAG_TABLE_OVERFLOW【cisco设备报错】碎片***
查看>>
Codeforces Round #256 (Div. 2) D. Multiplication Table 【二分】
查看>>
ARM汇编指令格式
查看>>
HDU-2044-一只小蜜蜂
查看>>
HDU-1394-Minimum Inversion Number
查看>>
[转] createObjectURL方法 实现本地图片预览
查看>>
JavaScript—DOM编程核心.
查看>>
JavaScript碎片
查看>>
Bootstrap-下拉菜单
查看>>