vs2012 MinGW 编译ffmeg 引用外部库libx264,librtmp[通俗易懂]

vs2012 MinGW 编译ffmeg 引用外部库libx264,librtmp[通俗易懂]VS2012如何编译ffmpeg前面已经有文章讲过,本来主要讲述如何引用外部库libx264,librtmp,ffmpeg版本是3.0.2。1.下载x264源文件并编译源码地址是http://www.videolan.org/developers/x264.html。l…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

VS2012如何编译ffmpeg前面已经有文章讲过,本来主要讲述如何引用外部库libx264,librtmp,

ffmpeg版本是3.0.2。

1. 下载x264源文件并编译

     源码地址是http://www.videolan.org/developers/x264.html。libx264配置、编译命令如下:

     

 ./configure --enable-shared --extra-ldflags=-Wl,--output-def=libx264.def
 make
make install

    生成的def文件可以通过vc自带的lib.exe命令转成libx264.lib文件,转化的命令是:  

lib /def:yourdll.def /machine:i386 /out:yourdll.lib 

  注意:/def一定要加上,否则执行命令会出错。lib.exe路径是C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib。

2.下载编译librtmp

   librtmp 依赖openssl等开源库,有人已经建好了vs2012版本的工程可以直接拿来用.主要的注意的需要修改配置,否则编译ffmeg会出错.

   需修改的配置如下图所示:

vs2012 MinGW 编译ffmeg 引用外部库libx264,librtmp[通俗易懂]

           图1 librtmp 配置选项

 3.修改Ffmpeg configure文件:

#enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket

替换为

enabled librtmp && require librtmp librtmp/rtmp.h RTMP_Socket -lrtmp -lws2_32 -luser32 -lgdi32 -lwinmm

4. 配置、编译、安装

./configure --toolchain=msvc --enable-shared --enable-gpl --enable-libx264  --enable-version3 
--enable-encoder=libx264 --extra-cflags="-I/home/wgg/libx264/include"
--extra-ldflags="-L/home/wgg/libx264/lib" --prefix="/home/wgg/out-3.0.2-x264" make make install

编译成功以后会生成相应的pdb文件.

   如有问题需要交流,请加群流媒体/Ffmpeg/音视频 127903734,群里有编好的库文件。

转载于:https://my.oschina.net/u/3700450/blog/1545664

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192615.html原文链接:https://javaforall.net

(0)
上一篇 2025年12月11日 下午5:15
下一篇 2025年12月11日 下午5:43


相关推荐

  • git clone出现 fatal: unable to access ‘https://github.com/…’的解决办法(亲测有效)

    git clone出现 fatal: unable to access ‘https://github.com/…’的解决办法(亲测有效)如下图所示,当我试图克隆别人的repo时,会发生这样的错误,当我从git:/而不是https://,克隆时,它工作得很好。发生这种情况是因为代理是在git中配置的。既然它是https代理(而不是http)gitconfighttp.proxy和gitconfig–globalhttp.proxy也无济于事。解决方案一1、看看你的git配置gitconfig…

    2022年7月21日
    31
  • 阿里面试,问了我乐观锁、悲观锁、AQS、sync和Lock,这个回答让我拿了offer

    阿里面试,问了我乐观锁、悲观锁、AQS、sync和Lock,这个回答让我拿了offer很多东西都有点忘记了 不过回答总体是没大问题的

    2026年3月19日
    1
  • char转int的方法_char 转 int

    char转int的方法_char 转 int这是我的第一篇博客,也是我学习的一种方法,我会将学习中总结出的方法问题通过博客记录下来,希望能帮到同样在努力学习的朋友,也希望有什么不足得到大家的补充帮助回归正文,在编程中我们常常会涉及到类型转换的问题,类型转换最重视的装箱与拆箱带来的性能损耗。char类型与int类型同属于值类型,因此在char转换成int的时候就想不造成装箱拆箱的性能损耗的同时完成转换就可以这样做,首先大家要明

    2022年10月2日
    3
  • MATLAB 8.1 R2013a license.lic 问题

    MATLAB 8.1 R2013a license.lic 问题MATLAB8.1R2013alicense.lic问题…\MATLAB8.1R2013a\Matlab801\serial\license.lic1.修改系统时间修改系统时间至之前license.lic时间。2.修改license.liclicense.lic内容修改为:INCREMENTAerospace_BlocksetMLM99permanentuncounted\A05070F00D1EB1F923

    2022年7月26日
    15
  • 开发环境、测试环境、生产环境、UAT环境、仿真环境详解「建议收藏」

    开发环境、测试环境、生产环境、UAT环境、仿真环境详解「建议收藏」开发环境(DEV):开发环境是程序猿们专门用于开发的服务器,配置可以比较随意,为了开发调试方便,一般打开全部错误报告。测试环境(UAT):一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么肯定不能把它发布到生产机上。生产环境(PROD):是指正式提供对外服务的,一般会关掉错误报告,打开错误日志。可以理解为包含所有的功能的环境,任何项目所使用的环境都以这个为基础,然后根据客户…

    2026年4月19日
    7
  • php 抽象工厂模式

    php 抽象工厂模式/*抽象工厂模式:用来生成一组相关或相互依赖的对象。抽象工厂模式与工厂方法模式的区别:抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。在编程中,通常一个产品结构,表现为一个接口或者抽象类,也就是说,工厂方法模式提供的所有产品都是衍生自同一个接口或抽

    2022年7月25日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号