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


相关推荐

  • mysql executenonquery_ExecuteNonQuery()返回值注意点

    mysql executenonquery_ExecuteNonQuery()返回值注意点查询某个表中是否有数据的时候,我用了ExecuteNonQuery(),并通过判断值是否大于0来判断数据的存在与否。结果与我所设想的很不一致,调试时才发现,其执行后返回的结果是-1,对此我很是不理解,回头查了下资料,如下显示:SqlCommand.ExecuteNonQuery方法对连接执行Transact-SQL语句并返回受影响的行数。备注:可以使用ExecuteNonQuery来…

    2025年10月31日
    5
  • 二维数组排序的三种方法

    二维数组排序的三种方法include nbsp define nbsp iline nbsp 2 行 fun3 中用 define nbsp irow nbsp 8 列 fun3 中用 nbsp 例子中 nbsp nbsp nbsp nbsp 以字符数组为例 nbsp nbsp nbsp nbsp 以冒泡排序为排序方法 nbsp 第一种方法

    2026年3月19日
    2
  • 汇编语言里 eax, ebx, ecx, edx, esi, edi, ebp, esp这些都是什么意思啊?

    汇编语言里 eax, ebx, ecx, edx, esi, edi, ebp, esp这些都是什么意思啊?eax ebx ecx edx esi edi ebp esp 等都是 X86 汇编语言中 CPU 上的通用寄存器的名称 是 32 位的寄存器 如果用 C 语言来解释 可以把这些寄存器当作变量看待 比方说 addeax 2 nbsp nbsp nbsp 可以认为是给变量 eax 加上 2 这样的一个值 这些 32 位寄存器有多种用途 但每一个都有 专长 有各自的特别之处 EAX

    2026年3月18日
    1
  • Linux traceroute 命令详解

    Linux traceroute 命令详解traceroute命令Linux中traceroute命令用于显示数据包到目的主机的路径Windows中路由追踪命令是tracert。traceroute指令可以追踪你发送的数据包在网络中传输的路由途径,主要显示走了什么路,到了什么站。其预设的数据包大小是40bytes,该值可以另设。语法:traceroute【参数】【主机】举个简单例子:traceroute-dww…

    2025年8月11日
    4
  • Linux下原生异步IO接口libaio介绍

    Linux下原生异步IO接口libaio介绍在调研 fio 的实现时 接触了 libaio 的使用方式 由于 fio 的 ioengine 发送及接受数据的流程是按照 liaio 库的方式进行的 所以初步使用了 libaio 现总结如下 几点说明本文的重点在于 libaio 的使用方式 所以对什么是同步 异步及阻塞 非阻塞 IO 请参考相应资料 比较权威的资料是 RichardSteve 的 UNIXNetworkP

    2026年3月18日
    2
  • Android源码在线查看网站

    Android源码在线查看网站安卓社区https://www.androidos.net.cn/sourcecode(推荐)AndroidXRefhttp://androidxref.com/安卓特性(包括历史版本):https://developer.android.google.cn/

    2022年7月20日
    19

发表回复

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

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