前言:视频开发库有很多,例如微软的DirectShow;开源库OpenCV,当然OpenCV主要是图像处理,视频部分还是用的ffmpeg, 而且无法解码音频;SDL;大华和海康都有自己的库等等。音视频属于流媒体领域,学习和应用难度大,周期长,容易出现人才断层,公司对应聘者的要求都比较高,让很多人望而却步。很多软件都使用了FFmpeg, 比如:迅雷,腾讯视频,QQ, 微信,QQ音乐,暴风影音,爱奇艺,优酷,格式工厂等。放几张软件目录图大家看看。 QQ客户端

腾讯视频

爱奇艺客户端

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

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

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

一、配置windows下ffmpeg开发环境

1.1 ffmpeg的下载

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

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

Dev文件夹下是include和lib文件

Shared文件的Bin目录是ffmpeg的dll

1.2 在VS中配置FFmpeg

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

(1)添加头文件目录

(2)添加lib目录

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

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

1.avcodec.lib

2.avdevice.lib

3.avfilter.lib

4.avformat.lib

5.avutil.lib

6.postproc.lib

7.swresample.lib

8.swscale.lib

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

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

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

二.VS2015和Qt的安装

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

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

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

三 软件界面与主要功能

本地视频播放

网络拉流

菜单项

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

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

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

首先恭喜您,能够认真的阅读到这里,如果对部分理解不太明白,建议先将文章收藏起来,然后对不清楚的知识点进行查阅,然后在进行阅读,相应你会有更深的认知。如果您喜欢这篇文章,就点个赞或者【关注我】吧!!

duilib vs2015 安装_FFmpeg视频播放器开发-FFmpeg简介与项目环境搭建(一)相关推荐

  1. android 编译 sdl,SDL编译 - Android本地视频播放器开发_Linux编程_Linux公社-Linux系统门户网站...

    在上一章  Android本地视频播放器开发--ffmpeg解码视频文件中的音频(2)[http://www.linuxidc.com/Linux/2013-06/85955p5.htm]中使用Ope ...

  2. Android本地视频播放器开发--SDL编译

    在上一章 Android本地视频播放器开发--ffmpeg解码视频文件中的音频(2)中使用OpenSL ES来播放视频的声音,遗留的问题是声音的不同步,由于视频实现部分也要同步,而且音视频也要同步,所 ...

  3. Android本地视频播放器开发 - 搜索本地视频(1)

    这一章的主要内容是搜索手机本地视频,添加到ListView列表里,每一个表项含有这个视频的缩略图,视频的播放时间,视频的标题,在搜索本地视频(1)中我们先制作搜索功能.   Video.java--视 ...

  4. 基于NDK、C++、FFmpeg的android视频播放器开发实战-夏曹俊-专题视频课程

    基于NDK.C++.FFmpeg的android视频播放器开发实战-1796人已学习 课程介绍         课程包含了对流媒体(拉流)的播放,演示了播放rtmp的香港卫视,支持rtsp摄像头和ht ...

  5. 视频教程-基于NDK、C++、FFmpeg的android视频播放器开发实战-Android

    基于NDK.C++.FFmpeg的android视频播放器开发实战 夏曹俊:南京捷帝科技有限公司创始人,南京大学计算机硕士毕业,有15年c++跨平台项目研发的经验,领导开发过大量的c++虚拟仿真,计算 ...

  6. Android本地视频播放器开发--NDK编译FFmpeg

    在Android本地视频播放器开发中的搜索本地视频章节中,我们能够搜索本地视频并且显示每个视频的图片.标题.时间长度,当然如果需要添加其他的例如视频的长度和宽度可以使用Video类中的方法,既然我们获 ...

  7. 视频教程-FFmpeg视频播放器开发-C/C++

    FFmpeg视频播放器开发 精通Android应用.音视频开发及JNI,熟悉FFmpeg,主导过多个电商.直播.音视频执法记录仪项目的开发,为企业开发过多款成功的产品.有完整的4G执法记录仪解决方案. ...

  8. 实现在Android本地视频播放器开发

    在Android本地视频播放器开发中的搜索本地视频章节中,我们能够搜索本地视频并且显示每个视频的图片.标题.时间长度,当然如果需要添加其他的例如视频的长度和宽度可以使用Video类中的方法,既然我们获 ...

  9. Android本地视频播放器开发--视频解码

    在上一章Android本地视频播放器开发--SDL编译编译中编译出sdl的支持库,当时我们使用的2.0,但是有些api被更改了,所以在以下的使用者中我们使用SDL1.3的库,这个库我会传上源码以及编译 ...

最新文章

  1. 经典算法题之Maximal Square
  2. 如何从Android中的另一个应用程序启动活动
  3. 4.2.3 OS之减少磁盘延迟时间的方法(交替编号、错位命名)
  4. Redis的设计与实现之跳表
  5. Apache RocketMQ在linux上的常用命令
  6. python删除文件夹中的jpg_Python简单删除目录下文件以及文件夹的方法
  7. python干货_Python干货整理,从入门说起(7.4)
  8. 《算法图解》之选择排序
  9. python命名空间与作用域
  10. vscode顶部菜单栏不见了,怎么办?
  11. SQL SERVER之填充因子
  12. Excise1_Exception
  13. 史上最全Java面试题整理(附参考答案)
  14. [参文]GCN+交通
  15. 用微积分证明泰勒公式
  16. LeekCode3_无重复字符的最长子串(中等)
  17. 华为手表 GT3训练计划怎么用?
  18. springboot多线程等待所有结果返回
  19. 解决及分析:MySQL的 Error updating database. Cause: java.sql.SQLException: You can’t specify target table
  20. Android平台各类恶意软件及病毒分析

热门文章

  1. 仿苹果涂鸦软件_这些iPhone自带软件,学会一个少装十几个APP,16G手机也够用
  2. centos中配置java视频教程_安装CentOs
  3. android tv字体,best登陆「永久地址0365.tv」android默认字体android使用代码使用新的字体的常用代码...
  4. ZDB5202烧成控制器方法
  5. k8s dashboard_【大强哥-k8s从入门到放弃02】Kubernetes1.17部署Dashboard2.0
  6. qr分解求线性方程组_梯度下降求解线性方程组算例设计
  7. python中什么是按位取反_Python学习中的“按位取反”笔记总结
  8. 【转】vscode配置C/C++环境
  9. 【转】C# 数据流详解(FileStream、MemoryStream、NetworkStream等类)
  10. 【转】第01课:生活中的监听模式——一坑爹的热水器