FFmpeg视频播放器开发(一):FFmpeg简介与项目环境搭建

前言

       在各大博客,论坛,看到很多人对流媒体音视频的开发感兴趣,可是不知道怎么入门,对音视频的了解也很少,写代码更不用说了,经过一段时间的整理,我准备在csdn上写一套ffmpeg音视频播放器的开发教程,希望对想从事ffmpeg音视频领域的给与帮助。

       视频开发库有很多,例如微软的DirectShow;开源库OpenCV,当然OpenCV主要是图像处理,视频部分还是用的ffmpeg, 而且无法解码音频;SDL;大华和海康都有自己的库等等。音视频属于流媒体领域,学习和应用难度大,周期长,容易出现人才断层,公司对应聘者的要求都比较高,让很多人望而却步。

        很多软件都使用了FFmpeg, 比如:迅雷,腾讯视频,QQ, 微信,QQ音乐,暴风影音,爱奇艺,优酷,格式工厂等。放几张软件目录图大家看看:

       QQ客户端

FFmpeg视频播放器开发(一):FFmpeg简介与项目环境搭建_第1张图片

        腾讯视频

FFmpeg视频播放器开发(一):FFmpeg简介与项目环境搭建_第2张图片

        爱奇艺客户端

FFmpeg视频播放器开发(一):FFmpeg简介与项目环境搭建_第3张图片

       事实上,FFMPEG的流媒体视音频编解码功能太强大了,几乎囊括了现存所有的视音频编码标准,因此只要做视音频开发,几乎离不开它。

       关于ffmpeg的博客很多,源码讲解,实例Demo等等,太多了,最有名气的应该是雷神了,斯人已去,对技术界是一大损失。本系列教程在讲解时也会引用到别人现有的研究内容,毕竟我们是ffmpeg的使用者,需要站到巨人的肩膀上。有不当或者错误的地方,请各位朋友及时提示斧正。

       本教程专栏地址:https://blog.csdn.net/yao_hou/category_9275800.html

       基于FFmpeg的视频播放器开发系列教程(一):FFmpeg简介与项目环境搭建

       基于FFmpeg的视频播放器开发系列教程(二):FFmepg基本使用与视频播放

       基于FFmpeg的视频播放器开发系列教程(三):音频解码播放

       基于FFmpeg的视频播放器开发系列教程(四):音视频同步

       基于FFmpeg的视频播放器开发系列教程(五) : 界面优化

       基于FFmpeg的视频播放器开发系列教程(六) : FFmpeg解码后音量调整

       基于FFmpeg的视频播放器开发系列教程(七) : FFmpeg拉rtmp流

      

     本教程是在Windows下的VS2015 + Qt中开发,如果是linux或mac,可以借鉴部分代码,但是环境配置会不同。

 

一.配置windowsffmpeg开发环境

1.1   ffmpeg的下载

       官网链接 https://ffmpeg.zeranoe.com/builds/

       可以下载最新版本或者以前的版本,如下所示的4.0版本

       FFmpeg视频播放器开发(一):FFmpeg简介与项目环境搭建_第4张图片

     例如选择4.0版本,依次下载Static, Share, Dev三个文件。例如32位版本的是如下三个文件

    

      Dev文件夹下是include和lib文件

      

FFmpeg视频播放器开发(一):FFmpeg简介与项目环境搭建_第5张图片

        

     Shared文件的Bin目录是ffmpeg的dll

      

FFmpeg视频播放器开发(一):FFmpeg简介与项目环境搭建_第6张图片

1.2 在VS中配置FFmpeg

       FFmpeg在VS中的配置很简单,就是普通的SDK配置方式,开发时只需要include, lib,bin里的文件,例如,创建一个C++的控制台程序,右键项目名 --  属性。

(1)添加头文件目录

FFmpeg视频播放器开发(一):FFmpeg简介与项目环境搭建_第7张图片

(2)添加lib目录

FFmpeg视频播放器开发(一):FFmpeg简介与项目环境搭建_第8张图片

 

(3)在附加依赖项写上lib的名字

         附上各个lib的名字,方便大家粘贴。

avcodec.lib
avdevice.lib
avfilter.lib
avformat.lib
avutil.lib
postproc.lib
swresample.lib
swscale.lib

FFmpeg视频播放器开发(一):FFmpeg简介与项目环境搭建_第9张图片

如果不想这样做也可以在程序中用代码添加也可以,如下所示:

#pragma comment(lib, "avformat.lib")

(4)把ffmpeg bin目录下的dll放到生成的exe所在的目录,为了方便,我把所有的dll文件都放进去好了。至于是32/64的版本,可以自己选择。

     

二.VS2015Qt的安装

        本教程做播放器,需要用界面库,关于界面库的选择与学习,各家公司,学校都不同。C++的界面库有MFC,Qt,DuiLib,SOUI等等,该播放器用Qt来做界面开发,Qt学起来比MFC稍微容易些,还可以跨平台,可以开发Linux,Mac的程序。

       我是选择把Qt装到VS2015中,VS调试比较容易,功能强大。如果Qt和VS都安装好的,看下一篇博客继续学习。

       Qt没安装好的,可以参考网上的安装方法。

 

三  软件界面与主要功能

本地视频播放

FFmpeg视频播放器开发(一):FFmpeg简介与项目环境搭建_第10张图片

 

网络拉流

FFmpeg视频播放器开发(一):FFmpeg简介与项目环境搭建_第11张图片

     菜单项

FFmpeg视频播放器开发(一):FFmpeg简介与项目环境搭建_第12张图片

 

      播放器的基本功能都有,双击放大全屏,视频进度拖拽,音量调整等。其它功能慢慢更新吧.

      源码大概会在第五六篇左右上传到github。

 

      工欲善其事必先利其器,环境配好后,下一篇开始ffmpeg开发之旅。

 

 

 

你可能感兴趣的:(#,C++,ffmpeg视频播放器开发)