mingw编译ffmpeg+x265过程记录

mingw编译ffmpeg+x265过程记录

email: tuyuandong@gmail.com

工作环境 OS:windows 7

1.相关资源下载

Ffmpeg-2.3     http://ffmpeg.org/releases/ffmpeg-2.3.3.tar.bz2

X265-1.3下载  https://bitbucket.org/multicoreware/x265/wiki/Home

http://ffmpeg.zeranoe.com/builds/source/external_libraries/

X264下载 http://ffmpeg.zeranoe.com/builds/source/external_libraries/

2.编译x265-1.3

x264、x265、ffmpeg等都需要yasm编译器,需要将yasm编译器下载,复制到ming/bin目录下。

X265需要安装cmake来生产工程文件,需要下载最新的cmake-2.8.12版本,并安装,注意需要将其安装路径加入windows环境变量的PATH变量下。

2.1 进入到x265/build/msys目录,执行 make-Makefiles.sh

先点下面的configure,然后点generate即可,然后关闭,回到命令行。同上面的执行make 然后是 make install。最后编译成功应该可以找到对应的lib文件在/loacal/lib目录下。

3.编译ffmpeg-2.3

3.1. Ffmpeg编译配置选项

将x264、x265编译后的头文件,静态库文件copy至/usr/local/对应的目录下

将tyd.sh文件copy值ffmpeg-2.3.3目录下。运行tyd.sh脚步即可

3.2 运行编译选项存在的问题

ERROR: x265 not found

3.2.1. 缺少pkg-config程序、缺少x265.pc文件

查看config.log日志文件,根据以下的错误信息,应该是缺少pkg-config程序,以及缺少对应的x265.pc文件。

pkg-config程序的安装参考一下文章,或者直接下载pkg-config copy到/ming/bin目录下

pkg-config

安装  http://blog.csdn.net/chaosllgao/article/details/3984462

下载  http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-0.23-2.zip

x265.pc文件copy /usr/local/lib

可以通过pkg-config得到x265相关的文件信息。

3.2.2 config.log错误日志信息

a) 缺少gcc依赖库

  如下图所示,链接new\delete函数失败,显然是缺省gcc相关的函数导致

原因是msys版本的pkg-config不能正确读取x265库的依赖库导致,需要手动添加

b) 奇怪的链接错误

c:/mingw/lib/libstdc++.a(new_op.o):new_op.cc:(.text+0x34): undefined reference to `_Unwind_SjLj_Register'

c:/mingw/lib/libstdc++.a(new_op.o):new_op.cc:(.text+0x87): undefined reference to `_Unwind_SjLj_Unregister'

c:/mingw/lib/libstdc++.a(new_op.o):new_op.cc:(.text+0xb7): undefined reference to `_Unwind_SjLj_Resume'

通过分析查找,发现时上述链接使用的gcc函数库与x265.exe使用的函数库不一致的原因导致。本质原因还是pkg-config不能正确解析x265.pc文件所致,解决方案如下:

c) 正确执行configure配置的结果

可以看到ffmpeg依赖的第三方库已经正确的配置好了libx264和libx265

4.编译ffmpeg项目

到这一步基本上大功告成了,只需要执行make && make install即可。

最后可以在目录output下找到编译的结果。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

看我如何使用Isip拦截、分析和修改网络数据包

今天给大家介绍的是一款名叫Isip的模拟工具,该工具套装可用于数据包修改、嗅探、模拟中间人攻击、模糊测试和模拟DoS攻击等等。

1162
来自专栏吴伟祥

配置MYSQL远程连接 原

想要远程连接阿里云服务器安装的mysql(不是RDS,RDS申请外网地址即可)需要两个步骤,

1472
来自专栏运维小白

电脑提示没有权限在此保存文件

背景: 在更改hosts文件并保存的时候,提示没有权限在此位置保存文件 解决方法: 在开始菜单,搜索框中输入运行,找到运行框 然后在运行运行框中输入...

2149
来自专栏阿炬.NET

Windows Server 2008 R2 安装 media Service 部分更新没有安装 KB963697

2956
来自专栏Java架构师历程

Linux设置静态IP

2503
来自专栏西枫里博客

最简单的基于jquery的ajax请求教程

上一次文章提到ajax异步请求的简单教程。那是基于原生JavaScript实现的。本次是基于jquery的ajax异步请求教程。

640
来自专栏小尘哥的专栏

一分钟系列----mybatis plus之逻辑删除

MP(mybatis plus)已经大大简化了我们好多的开发操作,基本的增删改查都有了,包括代码生成等等,今天想说的是它的逻辑删除功能。我们都在数据库设计时候经...

1823
来自专栏Petrichor的专栏

查看 网关 及 局域网中的所有设备 IP地址

  假设上一步查到的网关IP是192.168.1.1。查看当前有多少设备已连接上我们的局域网:

3272
来自专栏xdecode

Windows中根据端口定位持有者程序

之前被一个问题所困扰, 电脑过一段时间就无法上网, 查询netstat, 会有大量的端口被占用, 但是看不出来是哪个程序开启的 ( 最终定位到是ADSafe搞得...

1947
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统--任务调度系统解析

任务调度系统是什么:他是一个类似Sql Server的代理,他可以帮助你定时处理一些SQL事务

1724

扫码关注云+社区

领取腾讯云代金券