利用VS2015与FFmpeg实现视频解编码的基本过程
最近接到一个任务,是有关于视频的网络传输的技术应用,因为在传输的过程中用到了视频的编解码技术,所以近期对其进行了一系列学习。现将最近的学习成果即:利用VS2015与FFmpeg实现视频解编码的使用方法、使用过程分享如下。如果大家在观看当中遇到什么问题,也欢迎大家相互交流。
1. 前言
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。(PS:来自百度百科。)
因为我所用是VS2015,所以下面介绍的是FFmpeg编解码在Windows下的API使用操作。
2. VS2015配置FFmpeg库
2.1. 下载FFmpeg
1)下载FFmpeg的软件包,进入FFmpeg官网 http://ffmpeg.org/download.html 进入下载界面并下载Windows环境下的win64下的Dev与Shared。操作如下:
2)进入下载界面,点击Windows builds,下载win64的win64下的Dev与Shared
下载完成后,对压缩包进行解压。得到如下图文件:
3)取出ffmpeg-20190625-dd662bb-win64-dev文件夹中的include与lib文件夹;取出ffmpeg-20190625-dd662bb-win64-shared文件夹中的bin文件夹;将其放置到一个新文件夹中(此处我们暂定为advise_use)。如下图:
接下来,我们对VS使用FFmpeg库进行相关配置。
2.2. 配置FFmpeg
控制台程序,MFC都可以依照如下过程配置。亲测有效。
1)打开控制台程序,新建工程并建立一cpp,添加代码如下:
#include<iostream>
//FFmpeg的头文件
extern "C"
{
#include <libavcodec/avcodec.h>
#include <libavdevice/avdevice.h>
#include<libavfilter/avfilter.h>
#include <libswscale/swscale.h>
#include <libswresample/swresample.h>
#include <libavformat/avformat.h>
#include <libavutil/avutil.h>
#include <libavutil/imgutils.h>
}
using namespace std;
int main()
{
return 0;
}
FFmpeg头文件见上述代码。
2)找到视图中的属性管理器,并将其打开。在Release|x64中添加新建项目属性表(名字自取),并将其打开。