基于Qt、FFMpeg的音视频播放器设计一(准备环境)

2023-05-16

前言:整个项目的源代码 https://download.csdn.net/download/hfuu1504011020/10672140

最近刚完成基于Qt、FFMpeg的音视频播放器相关C++程序,实现了一个音视频播放器的全部功能,其中以模块为主,每一个模块,分为几个小模块,总结每个小模块,再整合起来,过程比较好理解,因为本人也是刚学习阶段,对于这样方式的总结,个人感觉还是比较容易理解的,过程也比较清晰,只是内容有点多。

中间涉及的过程主要有:   

1、 开发环境准备

2、FFMPEG视频处理原理以及实现

3、QT界面设计和使用opengl绘制视频

4、视频播放进度控制

5、FFMPEG音频处理原理以及实现

以上几点是整体的一个设计,下面对每个模块进行详细的说明。

一、开发环境的准备

我所用的开发环境是 qt-opensource-windows-x86-msvc2013-5.7.0.exe和vs2013,既然在windows下开发我们最好使用Qt的msvc版本,编译器用微软的VS。虽然Qt的mingw版本有自己的编译器,但相对于VS的Debug能力以及使用方面,mingw版本就有些痛苦了,当然要是在linux下开发那就用mingw版本吧。

Qt的下载地址:http://download.qt.io/archive/qt/ 

vs2013的下载地址:

        链接: https://pan.baidu.com/s/19FRmfnqM-eBibPQO4oIYtg 密码: 733u

Qt VS开发插件下载地址:

        http://download.qt.io/archive/vsaddin/

对于使用Qt5.7以上的版本,在下载开发插件时最好下载 qt-vs-addin-1.2.5.exe以上的版本,不然后面会有些问题,对于Qt和VS的下载建议下载相同位数,否则后面都是麻烦。再提供一个能加快编写程序速度的插件 Visual_Assist_X,怎么用的大家可以百度,网上有很多资源,下载地址:https://download.csdn.net/download/hfuu1504011020/10625278,对于以上开发环境安装顺序以及使用,网上也有很多资源这里就不再说明了,Qt VS的开发插件最好在Qt和VS安装好后再安装。

以上提供了Qt的开发环境,现在准备FFMpeg开发环境

FFMpeg下载地址:http://ffmpeg.org/

之后点击左侧目录的download出现Get the packages后选择Windows图标后点击进入再点击Windows Builds出现以下界面1,然后选择Windows 32-bit的FFMpeg,当然你也可以选择64位的,不过我选择的是32位,学习使用足够了,之后我们将它右侧linking下的Shared、Dev下载下来,解压后Dev的include里是它的头文件、lib里是他的静态链接库。Shared里的bin是它的dll和.exe程序,之后我们将它Dev里的include、lib和Shared里的bin拷贝出来形成如下图2所示,其中的Src目录里是我们基于FFmpeg的项目。

                                                               图一

                                                                  图二

Qt5.7.0、VS2013、FFMpeg开发环境安装好后,现在我们需要在VS2013中创建项目,这里主要是想说下如何配置项目。在我们创建好项目后(项目在我们上面所说的src中,不能出错,否则后面的项目配置就不是这样配置的),然后选择项目右击出现属性点击,出现如下界面。在配置属性常规中的输出目录配置..\..\bin\win32(这里的..\..\是将我们的目录退回到上面图二的位置,之后再进入bin\win32,这里的win32是我下载FFMpeg时同时下载了32位和64位的,所以在bin目录下有个win32和win64,分别放的是不同版本的FFMpeg下的bin目录中的文件,lib下也是如此),然后点击C/C++中的常规,在附加包含目录中编辑加入配置..\..\include。然后在链接器中同样选择常规在附加库目录中编辑加入配置..\..\lib\win32。在高级中安全异常处理程序选择否,C/C++和链接器在下图中都能看到。

至此配置文件以及FFMpeg的开发环境准备结束,我们开始下一阶段视频处理的原理以及实现。

下一篇链接:https://blog.csdn.net/hfuu1504011020/article/details/82590612

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Qt、FFMpeg的音视频播放器设计一(准备环境) 的相关文章

  • 使用Mybatis-plus拦截加密数据

    使用Mybatis plus拦截加密数据 使用自定义注解来标识需要加密的po和字段 xff0c 并通过mybaitsplus的插件工具类Interceptor类来实现对数据的拦截与加密转换操作 一 自定义加密注解 作用在类上的注解 pack
  • SpringBoot集成阿里easyexcel(四)Converter导入导出数据转换器

    SpringBoot集成阿里easyexcel xff08 四 xff09 Converter导入导出数据转换器 通过com alibaba excel converters Converter转换器实现Excel导入导出时Java数据与E
  • SpringBoot集成Ehcache缓存

    SpringBoot集成Ehcache缓存 Ehcache有两种缓存方式 xff0c 分别是堆内存 磁盘 xff08 非堆内存 xff09 一 堆内存缓存 也就是MemoryStore xff0c 速度最快 xff0c 不适合存放大量数据
  • Spring的切面编程(AOP)概念与使用AOP实现日志记录

    Spring的切面编程 xff08 AOP xff09 概念与使用 一 面向切面编程 定义 面向切面编程 xff08 AOP xff09 是通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术 作用 xff1a 利用AOP对业务
  • 关于intrins.h头文件的介绍

    在单片机中应用最多的当然就是移位函数 xff0c 利用移位函数可以更简便的实现流水灯等效果 移位函数 移位函数名 左移 span class token function crol span span class token punctua
  • 大批量数据分批批量插入或更新(Mybatis+MySQL)

    大批量数据分批批量插入或更新 在MySQL数据库的前提下 xff0c 插入或更新大批量数据 首先批量插入需要考虑到以下几个因素 xff1a 数据库一次可以承受多大或者多少条数据的插入批量插入是否会占用Mysql资源太久 xff0c 影响系统
  • VSCode配置C++开发环境

    更新细节 2020 7 3 更新细节及排版 2022 6 9 昨天从下午一直研究到晚上十一点 xff0c 查阅了很多博客资料 xff0c 还是没配置好VSCode的C 43 43 开发环境 xff0c 今天早上又弄了一下 xff0c 现在O
  • stm32模拟输出PPM信号

    PPM信号周期为20ms xff0c 分成10分代表10个通道信号 xff0c 也就是2ms代表一个信号 0 5ms代表一个通道信号的开始 xff0c 所以0 5ms 2ms为通道范围控制 LED p1 39 A 39 8 IO口初始化 x
  • 使用JSON.parse,解决ie6-7上JSON未定义问题

    使用JSON parse时出现JSON未定义问题 xff0c JSON不是标准的javascript类型 xff0c 一些高级的浏览器支持 xff0c 但一些老一点的浏览器不支持JSON 如ie6 7 若需要 ie6 7 支持JSON只需要
  • C语言中的大小端转换与高低位颠倒

    在说大小端高低位之前 xff0c 肯定要说明数据在计算机内是如何存储的 在计算机中 xff0c 我们将数据分割成了一个一个的字节 xff08 byte xff09 xff0c 而每个字节又有8位 xff08 bit xff09 一个字节 x
  • C语言库函数中的Strcat函数

    一 Strcat函数的参数 Strcat函数所引用的头文件是 lt string h gt char strcat char strDestination const char strSource 参数说明 xff1a strDestina
  • SLAM中的marginalization 和 Schur complement

    在视觉SLAM的很多论文中 xff0c 会大量或者偶尔出现marginalization这个词 翻译为边缘化 xff0c 有的论文是特地要用它 xff0c 比如sliding window slam 2 okvis 3 dso 4 而有的论
  • 数据结构之单链表循环

    单链表循环代码如下 xff1a include lt stdio h gt include lt stdlib h gt typedef struct node int data struct node next sqlist sqlist
  • 数据结构之双链表循环

    定义是 xff1a 每个数据结点都有两个指针 xff0c 分别指向直接后继和直接前驱 因此双向链表中单任意一个结点开始 xff0c 都可以很方便的访问它的前驱结点和后继结点 循环链表指 xff1a 最后一个结点next指向头结点 xff0c
  • linux学习之进程

    进程概念 xff1a 活跃度程序 xff0c 占用系统资源 xff0c 在内存中执行产生一个进程 孤儿进程 xff1a 父进程先于子进程结束 xff0c 则子进程称为孤儿进程 xff0c 并且这个子进程被init进程回收 include l
  • 使用libcurl实现http通信——post上传数据并获取response

    接口释义 使用libcurl实现http通信 get获取response 代码实现 size t span class token function responseStr span span class token punctuation
  • C语言学习之sprintf

    sprintf函数介绍 xff1a 该函数原型为 xff1a int sprintf char str const char format 该函数的功能为 xff1a 本该输出到显示上的数据 xff0c 改为输出到str所指导内存空间中 x
  • linux学习之存储器

    存储器的种类 xff1a 分为易失性存储器和非易失性存储器 易失性存储器 掉电数据会丢失 读写速度快 xff1a RAM random access memory 随机存储内存 又分为DRAM xff08 动态随机存储内存 xff09 和S
  • HTTP请求报文(请求行、请求头、请求体)

    HTTP协议 1 简介 HTTP协议 xff08 Hyper Text Transfer Protocol xff0c 超文本传输协议 xff09 是用于从万维网 xff08 WWW World Wide Web xff09 服务器传输超文
  • UART详解

    UART 通用异步收发传输器 xff08 Universal Asynchronous Receiver Transmitter xff0c 通常称作UART 是一种异步全双工串行通信协议 xff0c 它将要传输的资料在串行通信与并行通信之

随机推荐