本文是上面文章的摘要,只用于自己快速浏览.
目录
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中)
行者常至,为者常成!