基于 FFmpeg 与SDL 的视频播放器 (3)—SDL视频显示
SDL简介
- SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。
- 作用就是封装了复杂的视音频底层操作,简化了视音频处理的难度,它大幅度简化了控制图像、声音、输出入等工作所需撰写的代码
- SDL是调用了DirectX等底层的 API完成了和硬件的交互,在结构上是将不同操作系统的库封装成相同的函数,以此实现其跨平台的特性。
基于QT的FFmpeg+SDL环境搭建
前面FFmpeg环境搭建已经操作过了,这里就不再演示。
-
获取SDL
SDL获取地址:http://www.libsdl.org/
根据自己的设备选择相应的版本
-
在项目中引用SDL
项目的创建过程这里不再描述,只讲解SDL引入部分,首先解压刚才下载的动态库和Dev压缩包,其中动态库压缩包中只有一个项目运行时所需要的.dll文件,Dev压缩包解压后我们只需要其中的include和lib文件夹,直接复制到我们的工程目录下面。
然后就是在.pro文件中引入(包括了之前引入的ffmpeg)
INCLUDEPATH += $$PWD/lib/ffmpeg/include\ $$PWD/lib/SDL2/include LIBS += $$PWD/lib/ffmpeg/lib/avcodec.lib\ $$PWD/lib/ffmpeg/lib/avdevice.lib\ $$PWD/lib/ffmpeg/lib/avfilter.lib\ $$PWD/lib/ff