FFmpeg下载与配置(Visual Studio)
前言
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它提供了录制、转换以及流化音视频的完整解决方案。FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等,开源的ijkplayer、VLC等常见的播放器都是基于FFmpeg去完成的。
FFmpeg下载
FFmpeg官网:http://ffmpeg.org/
![](https://img.haomeiwen.com/i6069538/7a0c59c03b257b49.png)
点击Download
![](https://img.haomeiwen.com/i6069538/4939b61e1bd4157f.png)
点击Windows Packages
![](https://img.haomeiwen.com/i6069538/f6332dfa5fbdcb62.png)
再点击Windows Builds
这个网站的FFmpeg分为三个版本:
Static:只包含三个体积很小的exe。
Shared:除了三个体积很小的exe之外,还包含了dll动态库文件。
Dev:只包含了开发用的头文件(.h)和导入库文件(.lib)。
![](https://img.haomeiwen.com/i6069538/f74883cd062055c3.png)
点击Download Build进行下载,下载解压后
![](https://img.haomeiwen.com/i6069538/9859613f61060b97.png)
wins + R打开DOS命令行窗口,切换到static文件夹下的bin文件夹
![](https://img.haomeiwen.com/i6069538/fc92a6d99673f9b6.png)
输入ffmpeg.exe,查看弹出的信息。
![](https://img.haomeiwen.com/i6069538/d5ce3e3a2a547721.png)
ffmpeg.exe的使用
1. 命令格式
功能
ffmpeg.exe
用于视频的转码
最简单的命令
ffmpeg -i input.mp4 output.avi
该命令是将当前文件夹下的input.mp4文件转换为output.avi文件。我利用命令ffmpeg -i Forrest_Gump_IMAX.mp4 1.avi
将mp4格式转换成avi格式,用VLC播放器打开,可以播放,注意这里如果用win10自带的播放器是打不开的,这个播放器不支持avi格式。
![](https://img.haomeiwen.com/i6069538/52156ce6e7d71b93.png)
命令格式
ffmpeg -i {输入文件路径} -b:v {输出视频码率} {输出文件路径}
所有的参数都是以键值对的形式指定的。例如输入文件参数是“-i”,而参数值是文件路径;输出视频码率参数是“-b:v”,而参数值是视频的码率值,但是位于最后面的输出文件路径前面不包含参数名称。
2. 命令参数
![](https://img.haomeiwen.com/i6069538/4745b7386709586c.png)
详细的参数可以访问:http://ffmpeg.org/ffmpeg.html
ffplay.exe的使用
1. 命令格式
功能
ffplay.exe
用于视频的播放
最简单的命令
ffplay input.mp4
命令格式
ffplay {输入文件路径}
ffplay.exe
的参数格式和ffmpeg.exe
是类似的。所有的参数是以键值对的形式指定的(由于不包含输出文件,所以只能指定输入参数)。注意位于最后面的输入文件路径前面不包含参数名称。
我们来试一下,命令行输入ffplay 1.avi
![](https://img.haomeiwen.com/i6069538/44d9e52987e97e51.png)
2. 快捷键
![](https://img.haomeiwen.com/i6069538/5ce0185587734ec6.png)
Visual Studio关于FFmpeg的配置
拷贝include、lib、dll动态库
新建ffmpeg_study
项目,在右侧解决方案资源管理器中,右击项目名ffmpeg_study
,选择在文件资源管理器中打开文件夹,将dev的include和lib文件夹拷贝到此位置,并将shared/bin下的所有dll动态库拷贝到此位置
![](https://img.haomeiwen.com/i6069538/092e8f8f411d3c9a.png)
配置附加包含目录
然后右击项目名ffmpeg_study
,选择属性 ---> C/C++ ---> 常规
![](https://img.haomeiwen.com/i6069538/acd987449b2f1fe4.png)
配置附加库目录
![](https://img.haomeiwen.com/i6069538/352d783fbd4deec5.png)
添加依赖项
avcodec.lib
avdevice.lib
avfilter.lib
avformat.lib
avutil.lib
postproc.lib
swresample.lib
swscale.lib
![](https://img.haomeiwen.com/i6069538/b9b9d5e4bf704179.png)
检测FFmpeg的配置
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
extern "C" {
#include "libavcodec\avcodec.h"
}
using namespace std;
void main() {
cout << avcodec_configuration() << endl;
getchar();
}
调用avcodec_configuation()
函数来检测FFmpeg是否已经配置完成,编译运行:
![](https://img.haomeiwen.com/i6069538/c7415dc80eba81d9.png)
由于我们下载的FFmpeg库是64位的,所以需要将我们的活动解决方案平台改成x64的
![](https://img.haomeiwen.com/i6069538/7740987ac348de8c.png)
![](https://img.haomeiwen.com/i6069538/29591d8e45949ca6.png)
再编译运行,运行成功,输出信息如下:
![](https://img.haomeiwen.com/i6069538/2620e51e143af245.png)
展望
喜欢本篇博客的简友们,就请来一波点赞,您的每一次关注,将成为我前进的动力,谢谢!