前言
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它提供了录制、转换以及流化音视频的完整解决方案。FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等,开源的ijkplayer、VLC等常见的播放器都是基于FFmpeg去完成的。
FFmpeg下载
FFmpeg官网:http://ffmpeg.org/
1.png点击Download
2.png点击Windows Packages
3.png再点击Windows Builds
这个网站的FFmpeg分为三个版本:
Static:只包含三个体积很小的exe。
Shared:除了三个体积很小的exe之外,还包含了dll动态库文件。
Dev:只包含了开发用的头文件(.h)和导入库文件(.lib)。
点击Download Build进行下载,下载解压后
5.pngwins + R打开DOS命令行窗口,切换到static文件夹下的bin文件夹
6.png输入ffmpeg.exe,查看弹出的信息。
7.pngffmpeg.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格式。
命令格式
ffmpeg -i {输入文件路径} -b:v {输出视频码率} {输出文件路径}
所有的参数都是以键值对的形式指定的。例如输入文件参数是“-i”,而参数值是文件路径;输出视频码率参数是“-b:v”,而参数值是视频的码率值,但是位于最后面的输出文件路径前面不包含参数名称。
2. 命令参数
9.png详细的参数可以访问:http://ffmpeg.org/ffmpeg.html
ffplay.exe的使用
1. 命令格式
功能
ffplay.exe
用于视频的播放
最简单的命令
ffplay input.mp4
命令格式
ffplay {输入文件路径}
ffplay.exe
的参数格式和ffmpeg.exe
是类似的。所有的参数是以键值对的形式指定的(由于不包含输出文件,所以只能指定输入参数)。注意位于最后面的输入文件路径前面不包含参数名称。
我们来试一下,命令行输入ffplay 1.avi
10.png2. 快捷键
11.pngVisual Studio关于FFmpeg的配置
拷贝include、lib、dll动态库
新建ffmpeg_study
项目,在右侧解决方案资源管理器中,右击项目名ffmpeg_study
,选择在文件资源管理器中打开文件夹,将dev的include和lib文件夹拷贝到此位置,并将shared/bin下的所有dll动态库拷贝到此位置
配置附加包含目录
然后右击项目名ffmpeg_study
,选择属性 ---> C/C++ ---> 常规
配置附加库目录
14.png添加依赖项
avcodec.lib
avdevice.lib
avfilter.lib
avformat.lib
avutil.lib
postproc.lib
swresample.lib
swscale.lib
15.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是否已经配置完成,编译运行:
由于我们下载的FFmpeg库是64位的,所以需要将我们的活动解决方案平台改成x64的
17.png 18.png再编译运行,运行成功,输出信息如下:
19.png展望
喜欢本篇博客的简友们,就请来一波点赞,您的每一次关注,将成为我前进的动力,谢谢!
网友评论