最近开始了音视频的学习,买了一本刘岐等人写的《深入理解FFmpeg》,看了一些,感觉单纯的去学知识点效率不是很高,决定转换思路,由项目作为导向,学习项目中所涉及的一些知识,这样能够更快更好的去掌握。正好在书中末尾部分有音视频播放器开发的项目,于是决定将开源项目在电脑上跑一下看看效果,项目链接: ffmpeg-simple-player
该项目的文件结构分为build和src,src为项目源代码,build里面是建立的播放器工程,包含visual stdio和Makefile两种不同的工程环境
我是运行的VS的工程环境,下面我也会以VS环境作为构建项目的工具,打开bulid 文件里面的visual studio文件直接点击.sln文件即可打开工程。第一次打开会显示无法打开库的问题
莫慌这是缺少FFmpeg库和SDL库,我们可以下载相应的库(参考github中的readme)
1:配置FFmpeg 库,预编译库下载地址:https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-6.0-full_build-shared.7z,直接解压到如下目录即可:FFmpeg_Book_Version2\doc\examples\014\ffmpeg-simple-player\thirdparty\ffmpeg-6.0-full_build-shared
2:配置SDL库,预编译库下载地址:https://github.com/libsdl-org/SDL/releases/download/release-2.0.22/SDL2-devel-2.0.22-VC.zip,直接解压到如下目录即可:FFmpeg_Book_Version2\doc\examples\014\ffmpeg-simple-player\thirdparty\SDL2-2.0.22
然后打开工程,进行编译运行即可。
备注:默认使用x64工程。
然后发现运行还是有问题
.lib文件链接不了,然后可以在链接器->常规中的 附加库目录,加入FFmpeg 库和SDL库文件中的lib文件路径。
配置完以后运行,还是会出现以下问题,dll找不到。有两个方法可以解决:1.FFmpeg 库和SDL库中的包含dll文件的文件夹路径加入到环境变量值(注意一定要重启才能生效)2.将FFmpeg 库和SDL库文件中dll文件找到,全部复制到vs项目工程文件夹里,不用重启即可生效
运行以后出现一下命令窗口,显示一堆字符串,需要我们设置命令参数
看main函数我们发现需要传输参数,必须把要播放的视频路径传入到程序中(视频必须要在项目中,要不然程序会运行失败),
我随便试了一下,成功了,空格代表暂停,左右向前向后 。学习记录一下。