1背景
上一篇跟ffmpeg解码有关的都分析了,也拿到了每一帧的数据,接下来就该处理渲染了,在这之前先把依赖的库找齐。
2依赖库
2.1 ffmpeg
谷歌搜ffmpeg可以找到官网 ffmpeg.org/ 然后在source code标签下可以看到可执行文件以及源码 ffmpeg.org/download.ht…
这里考虑window的,可以在Windows builds by BtbN下找到ffmpeg的动态库和头文件
下面有两个版本lgpl和gpl
- lgpl和gpl LGPL:闭源软件可以动态链接 LGPL 库(如 .dll 或 .so ),只需公开对库本身的修改(如修改了 FFmpeg 的代码)。
GPL:即使动态链接 GPL 库,整个项目也必须开源(包括主程序代码)。
- ffmpeg中的gpl FFmpeg 的代码库中包含两种类型的组件: 核心库(libavcodec、libavformat 等):默认以 LGPL 发布,允许闭源项目动态链接。
部分编码器/解码器:依赖第三方代码(如 x264 、 libx265 ),这些组件可能基于 GPL 许可证。 LGPL 版本:
- 编码器区别 不包含 GPL 组件(如 x264 、 libx265 )。 支持的编解码器较少,但满足基本需求(如 H.264 解码、MP3 编码)。
GPL 版本: 包含完整的编解码器(如 x264、libvpx)。 支持更多商业级功能(如高质量 H.265 编码)。
综合上面的,学习ffmpeg,下载lgpl一般就够了。
github.com/BtbN/FFmpeg… 下载后解压后,有include有文件可以直接复制,还有找到对应的lib文件
hplayer用了mscv的.lib,不考虑MinGW 编译的.a的文件
2.2 sdl
Simple DirectMedia层是一个跨平台开发库,旨在通过OpenGL和Direct3D提供对音频、键盘、鼠标、操纵杆和图形硬件的底层访问。它被视频播放软件,模拟器和流行的游戏使用,包括阀获奖目录和许多卑丛 games. SDL官方支持Windows、macOS、Linux、iOS和Android。源代码中可以找到对其他平台的支持。 SDL是用C编写的,在本地使用C++,并且有提供绑定用于其他几种语言,包括C#和Python。 SDL分布在zlib许可证本许可证允许您在任何软件中自由使用SDL。
sdl目前有两个版本,一个是3.x,还有一个2.xx,hplayer中使用的是2.xx的版本
谷歌搜sdl,可以找官网
直接找release标签,可以跳到github github.com/libsdl-org/…
上面最新的是3.x的版本,需要在往前面找2.x的版本
这个下面可以找到2.32.6
还是拿window说话,有两个版本,(vc)msvc和mingw,hplayer中使用的是vc的
2.3 glew
OpenGL扩展Wrangler库(GLEW)是一个跨平台的开源C/C++扩展加载库。GLEW提供了高效的运行时机制,用于确定目标平台上支持哪些OpenGL扩展。OpenGL核心和扩展功能在单个头文件中公开。GLEW已经在各种操作系统上进行了测试,包括Windows、Linux、Mac OSX、FreeBSD、Irix和Solaris。
谷歌可以找到官网
直接点github跳转
再点击release,查看发布的版本 github.com/nigels-com/…
这个应该是msvc编译的,里面有include以及lib文件(mingw的是.a的扩展名)