FFmpeg 简介
FFmpeg的名称来自MPEG视频编码标准,前面的“FF”代表“Fast Forward”,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。可以轻易地实现多种视频格式之间的相互转换。
官网
FFmpeg Club
GitHub
应用
使用FFMPEG作为内核视频播放器:Mplayer,ffplay,射手播放器,暴风影音,KMPlayer,QQ影音...
使用FFMPEG作为内核的Directshow Filter:ffdshow,lav filters...
使用FFMPEG作为内核的转码工具:ffmpeg,格式工厂...
下载
下载地址
本文使用的FFmpeg版本是:4.1.3
FFmpeg分为3个版本:Static、 Shared、 Dev
前两个版本可以直接在命令行中使用。包含了三个exe:ffmpeg.exe,ffplay.exe,ffprobe.exe
- Static 版本中的exe体积较大,那是因为相关的Dll都已经编译进exe里面去了。
- Shared 版本中exe的体积相对小很多,是因为它们运行的时候还需要到相关的dll中调用相应的功能
- Dev 版本用于开发,里面包含了库文件xxx.lib以及头文件xxx.h
测试
进入static/bin
目录,拷贝一个视频test.avi
,执行:
ffplay test.avi
VS2013 下的配置
新建一个 VS2013 控制台程序,将上述下载的Dev
版本的lib
和 include
文件夹拷贝到工程目录下,并将Shared
版本的 exe
,dll
也拷贝到工程路径下,配置项目属性:
- 配置include路径
- 配置lib路径
- 配置lib
测试程序:
#include "stdafx.h"
extern "C"
{
#include "include\libavcodec\avcodec.h"
}
int _tmain(int argc, _TCHAR* argv[])
{
printf("%s\n", avcodec_configuration());
return 0;
}
测试结果: