ffmpeg播放器10(window依赖库以及头文件)

142 阅读3分钟

1背景

上一篇跟ffmpeg解码有关的都分析了,也拿到了每一帧的数据,接下来就该处理渲染了,在这之前先把依赖的库找齐。

2依赖库

2.1 ffmpeg

谷歌搜ffmpeg可以找到官网 ffmpeg.org/ 然后在source code标签下可以看到可执行文件以及源码 ffmpeg.org/download.ht…

这里考虑window的,可以在Windows builds by BtbN下找到ffmpeg的动态库和头文件

github.com/BtbN/FFmpeg…

下面有两个版本lgpl和gpl

github.com/BtbN/FFmpeg…

github.com/BtbN/FFmpeg…

  • 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,可以找官网

www.libsdl.org/

直接找release标签,可以跳到github github.com/libsdl-org/…

上面最新的是3.x的版本,需要在往前面找2.x的版本

github.com/libsdl-org/…

这个下面可以找到2.32.6

github.com/libsdl-org/…

还是拿window说话,有两个版本,(vc)msvc和mingw,hplayer中使用的是vc的

github.com/libsdl-org/…

2.3 glew

OpenGL扩展Wrangler库(GLEW)是一个跨平台的开源C/C++扩展加载库。GLEW提供了高效的运行时机制,用于确定目标平台上支持哪些OpenGL扩展。OpenGL核心和扩展功能在单个头文件中公开。GLEW已经在各种操作系统上进行了测试,包括Windows、Linux、Mac OSX、FreeBSD、Irix和Solaris。

谷歌可以找到官网

glew.sourceforge.net/

直接点github跳转

github.com/nigels-com/…

再点击release,查看发布的版本 github.com/nigels-com/…

下载 github.com/nigels-com/…

这个应该是msvc编译的,里面有include以及lib文件(mingw的是.a的扩展名)

未完待续