1、VS2019编译ffmpeg源码

编程入门 行业动态 更新时间:2024-10-28 07:19:43

1、VS2019编译ffmpeg<a href=https://www.elefans.com/category/jswz/34/1770099.html style=源码"/>

1、VS2019编译ffmpeg源码

1、ffmpeg代码克隆 在clone代码之前,创建代码目录,例如创建ffmpeg_vs2019目录,在该目录里再创建两个目录,msvc,source 进入source目录,打开git bash克隆代码 项目地址: 代码克隆
git clone .git
或者
git clone .git ffmpeg
clone完毕大概355M,如果网络环境不好,可能会clone failed。 2、ffmpeg依赖库下载 ffmpeg clone结束后,在ffmpeg_vs2019\source\FFmpeg\SMP目录有个readme.txt介绍了如何编译配置整个项目,比如需要x264、265、vpx等开源,可以手动去ShiftMediaProject里clone, 或者运行脚本clone, 建议使用脚本clone,比较节省时间,方法如下: 在路径 ffmpeg_vs2019\source\FFmpeg\SMP 里打开git bash, 执行 ./project_get_dependencies.bat 失败的状态 如果网络不好,第一次可能clone失败,可以继续执行该命令 3、其它文件下载 先在ffmpeg_vs2019/msvc里创建include目录,include里创建gl、AMF这两个目录,待会儿需要存放opengl、egl、nv-codec、AMF的头文件。 (1)opengl头文件 opengl仓库  代码克隆: git clone .git 找到OpenGL-Registry\api\GL里的glext.h 和 wglext.h放到目录:ffmpeg_vs2019\msvc\include\gl (2)EGL头文件 EGL仓库  GitHub - KhronosGroup/EGL-Registry: EGL API and Extension Registry 代码克隆: git clone .git 找到EGL-Registry\api\KHR,复制KHR目录到ffmpeg_vs2019\msvc\include (3)nv-codec 头文件 仓库: git clone .git 将nv-codec-headers\include里的ffnvcodec目录复制到ffmpeg_vs2019\msvc\include (4)AMF 头文件 AMP仓库  clone代码 git clone .git 访问失败 访问成功 将AMF\amf\public\include里的两个文件夹复制到ffmpeg_vs2019\msvc\include\AMF 4、配置NASM、YASM NASM下载地址: Release 0.9 · ShiftMediaProject/VSNASM · GitHub YASM下载地址: Releases · ShiftMediaProject/VSYASM · GitHub 将下载的VSNASM和VSYASM解压后放到 ffmpeg_vs2019\msvc目录。 找到vs2019的命令行工具,右键管理员运行 cd到相应的路径,执行安装脚本,如下图 5、开始编译ffmpeg 做好以上步骤后,用vs2019打开SMP目录的ffmpeg_deps.sln,一个47个项目,该工程对静态库、动态库、win32、x64都做了配置,很方便,如下图: 这几项需要说明下,Debug,Release这两项编译出来的只有include和lib,就没有dll文件,其余3项编译出来的都是有dll文件的 一般的做法就是不需要dll,直接使用include和lib文件就好了,所以这里就只需要选择debug和release lib库路径:msvc/lib/x64 debug生成的lib是带d的,release生成的lib是不带d的 头文件路径:msvc/include 可以将上面路径的lib、include直接拷贝走,当作sdk 生成的dll文件路径:msvc/bin/x64 6、创建项目验证ffmpeg lib 有了include、lib,创建vs2019 c++控制台项目,配置好include、lib, 就可以写代码了,例如获取ffmpeg代码版本:
/*
ffmpeg lib 测试程序
*/#include <iostream>extern "C"
{
#include "libavformat/avformat.h"
}#ifdef _DEBUG
#pragma comment(lib, "libavformatd.lib")
#pragma comment(lib, "libavutild.lib")
#else
#pragma comment(lib, "libavformat.lib")
#pragma comment(lib, "libavutil.lib")
#endifusing namespace std;int main()
{cout << av_version_info() << endl;return 0;
}
运行结果 7、哪些项目用到了ffmpeg 除了使用lib开发,也可以用dll, 修改编译选项位DebugDLL/ReleasdDLL即可,FFmpeg是开源项目,国内大部分的软件都进入了FFmpeg耻辱柱,没办法,音视频仅此一个伟大的集大成开源项目,很多软件都是编译ffmpeg lib后,自己封装dll,例如: 腾讯会议 也不是专指这两个项目,99%的音视频项目应该都会用到ffmpeg,  例如视频客户端优酷、爱奇艺、腾讯视频,格式工厂、QQ、微信、钉钉等。 当然在开发时,如果需要265,vpx的支持也是可以的,在开发时带上相应的lib即可,如下图: 8、设置环境变量 ffmpeg_vs2019\msvc\bin\x64 主要是便于直接使用ffmpeg命令行

更多推荐

1、VS2019编译ffmpeg源码

本文发布于:2023-12-03 13:45:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1656011.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:源码   ffmpeg

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!