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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • gb28181协议详解_GB28181收费吗

    gb28181协议详解_GB28181收费吗ssdp协议近似于http协议,事实上,和http协议相似得地方就是他得协议内容,当然,我们要去除他得端口和d类地址。为什么我在给其他员工或者面试得时候要他人深入一些,理解一下http协议,是因为理解了http协议,掌握ssdp也就不远了,很多人可能会问http协议有啥内容,无非就是get,post,put,delete么,还能怎么样,我经常问他们一点http协议怎么知道他结束了?虽然ssdp是udp协议,但是他依然需要\r\n来代表行结束,\r\n\r\n代表协议内容部分结束。……

    2022年10月11日
    0
  • javaweb-oracle-2-58

    javaweb-oracle-2-58

    2021年5月18日
    89
  • SQL文件导入Oracle数据库

    SQL文件导入Oracle数据库直接复制SQL文件至pl/sql中执行,若sql文件过大会直接导致数据库卡死,未避免数据库卡死,可直接使用pl/sql工具提供的导入表功能将sql文件直接导入数据库表中1.如下图所示:链接数据库,选择工具–》导入表2.如下图示:选择SQL导入—使用命令窗口–》选择要导入的sql文件–》点击导入按钮3.如下图所示:若提示Done,则表示导入成功,导入成功后需要点击com…

    2022年10月2日
    0
  • jQuery实现手机竖直手风琴效果

    效果:http://hovertree.com/texiao/jquery/65/效果图:手机扫描二维码查看效果:代码:转自:http://hovertree.com/h/bjaf/vk9yjrp

    2021年12月23日
    42
  • Java序列化和反序列化

    Java序列化和反序列化

    2021年6月7日
    75
  • linux ptrace函数

    linux ptrace函数【ptrace系统调用】功能描述:提供父进程观察和控制另一个进程执行的机制,同时提供查询和修改另一进程的核心影像与寄存器的能力。主要用于执行断点调试和系统调用跟踪。父进程可通过调用fork,接着指定所产生的子进程的PTRACE_TRACEME行为,最后使用exec等操作来初始化一个进程跟踪。可替代的做法是,父进程通过PTRACE_ATTACH请求跟踪一个现存进程的执行。当子进程

    2025年6月14日
    0

发表回复

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

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