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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Redis学习笔记–Redis数据过期策略详解

    Redis学习笔记–Redis数据过期策略详解

  • linux查看光纤卡光衰_光衰大如何解决

    linux查看光纤卡光衰_光衰大如何解决ethtool-g网卡名称,显示网卡的接收/发送环形参数。lldptool-t-n-i网卡名称收光:ethtool-meth0|grep”Receiversignal”|head-1|awk-F’/”{print$2}’发光:ethtool-meth0|grep”Laseroutputpower”|head-1|awk-F’/”{print$2}’…

  • Linux进程调度_linux进程的查看和调度

    Linux进程调度_linux进程的查看和调度进程调度含义进程调度决定了将哪个进程进行执行,以及执行的时间。操作系统进行合理的进程调度,使得资源得到最大化的利用。在单片机上,常常使用的方式是:系统初始化—->while(1){}。(当然,单片机也可以跑类似FreeRTOS,也可以有进程切换)在带操作系统的CPU上跑的逻辑是,允许多个进程(其实就是程序)”同时”跑。比如,你可以在操作鼠标的同时,进行音乐播放,文字…

  • matlab如何循环_左手转笔教程无限循环

    matlab如何循环_左手转笔教程无限循环循环输出变量代码fori=1:4iend其中1:4代表一个行向量1234,在matlab中,行向量的另外一个表示方法是[1234],即fori=1:4等价于fori=[1234],编写程序时牢记一个点:对于某次固定的迭代,i会从这个向量中取一个值,该值可以参与循环中的计算。运行输出i=1i=2i=3i=

  • 初学TypeScript之接口定义

    初学TypeScript之接口定义TypeScript入门(2)前面讲了如何使用TypeScript和TypeScript的数据类型有哪些,这一章就讲解TypeScript的接口。如果不知道如何写TypeScript的朋友或者不知道TypeScript的数据类型有哪些的朋友可以转至TypeScript的使用以及数据类型详解处观看。接口:简介:TypeScript的核心原则是对值所具有的结构进行类型检查。在TypeSc…

  • android遍历的方法,android中遍历arrayList的四种方法

    android遍历的方法,android中遍历arrayList的四种方法一.在android中遍历arrayList有以下四种方法:1.实例:packagecom.mylist.test;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;publicclassArrayListDemo{publicstaticvoidmain(Stringargs[])…

发表回复

您的电子邮箱地址不会被公开。

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