JHHK

欢迎来到我的个人网站
行者常至 为者常成

【MJ】04_Windows开发环境搭建

参考:【秒懂音视频开发】04_Windows开发环境搭建

本文是上面文章的摘要,只用于自己快速浏览.

目录

FFmpeg

一 介绍

FFmpeg:跨平台的音视频开发库

FF是Fast Forward(译为:快进、快速前进)的简称

mpeg来源于Moving Picture Experts Group(简称:MPEG,译为:动态影像专家小组)

MPEG是源自ISO与IEC等国际组织的工作小组

MPEG的其中一项工作是:制定音视频相关的标准(比如压缩标准)

二 目录结构

bin:
有编译好的可执行程序:ffmpeg.exe、ffplay.exe、ffprobe.exe,可以直接在命令行上使用,比如
ffplay xx.mp4:可以直接播放某个视频
ffmpeg -version:可以查看FFmpeg的版本号
有运行时需要用到的动态库文件(*.dll)

doc:
FFmpeg的使用文档

include:
开发时需要包含的头文件

lib:
链接时需要用到的库文件

Qt

如果要想开发一个播放器,肯定得编写界面,同样为了保证跨平台开发,这里采用的GUI库是Qt,
官方的开发工具QtCreator是跨平台的(支持Windows、Mac、Linux)。
Qt开发采用的编程语言是C++。

开发初探

在Windows中,我们最终是通过调用FFmpeg动态库(dll)中的函数来操作音视频数据,使用dll的其中一种方式是需要用到3种文件:

.h:头文件(Header File)
包含了函数的声明
通过#include去导入相应的头文件

.dll:动态链接库(Dynamic Link Library)
包含了函数的具体实现代码
Windows程序会在运行过程中,动态调用dll中的函数

.lib或.dll.a:(动态链接库的)导入库(Import Library)
.lib:用于MSVC编译器中
.dll.a:用于MinGW编译器中
包含了dll中函数的入口,用于辅助找到并调用dll中的函数
最终需要链接到Windows程序中(比如合并到exe文件中)

值得一提的是,在Windows中,静态链接库(Static Link Library)的扩展名也是.lib、.dll.a。

静态链接库和导入库的区别是:
静态链接库:包含了函数的具体实现代码
导入库:不包含函数的具体实现代码(函数的具体实现代码存储在dll中)


行者常至,为者常成!





R
Valine - A simple comment system based on Leancloud.