编译LAVFilters

编译LAVFiltersLAV Filters编译全攻略0. Msys mingw安装1. Git安装2. Yasm下载3. Lavfiltes下载4. Ffmpeg下载5. Pkg-config 不用单独用gtk+包包含了很多工具和库用于mingw 【开发环境】直接下载的地址http://xhmikosr.1f0.de/tools/ 且包含了yasm zlib等已经弄好了。-j8也可

大家好,又见面了,我是你们的朋友全栈君。

LAV Filters编译全攻略

0. Msys mingw安装

1. Git安装

2. Yasm下载

3. Lavfiltes下载

4. Ffmpeg下载

5. Pkg-config 不用单独用gtk+包包含了很多工具和库用于mingw

 

【开发环境】

直接下载的地址http://xhmikosr.1f0.de/tools/ 且包含了yasm zlib等已经弄好了。-j8也可以用了,pkg-config都有了。真好。如果不嫌弃麻烦或不怕出现问题本着了解的目的可以自定义安装如下所示。

 

 

【自定义安装】

msys mingw安装】

 

自定义下载:生成的lav库需要gcc库链接。

http://www.mingw.org/wiki/MSYS 下载安装器 downloadinstaller

执行选择必须的安装组件base就好,不用所有,选择g++等。

 

选择 

mingw-developer-toolkit

Ming32-base

Mingw32-gcc-g++

Msys-base

 

可以将 c:/mingw/bin加入到系统全局环境变量path中否则如果用gcc编译则找不到gcc路径。避免影响到其他进程可以考虑将该路径只在msys客户端中设定。

 

更改C:\MinGW\msys\1.0\etc\fstab

增加:c:/mingw /mingw 或在msys终端中执行如下命令

Linux命令: export PATH=$PATH:/c/mingw/bin 设定mingw路径

运行gcc确定是否OK

yasm

http://yasm.tortall.net/Download.html

VC工程使用 下载 Win32 .exe (for general use on 32-bit Windows) 下载后改名为yasm.exe放到 c:\windows\system32\ 避免冲突也放到vc的目录下 C:\Program Files\Microsoft Visual Studio 10.0\VC\bin 

 

 

MINGW用: 下载源码Source .tar.gz 在mingw下编译 git下来的竟然没有configure,还是下打包过的。 

命令: ./configure

Make

Make install

被自动安装到

C:\MinGW\msys\1.0\local\bin目录下。

 

Mingw下的yasmwindows下不一样并且需要mingwlibintl库如果用mingw编译用到yasm必须用这个。

[git]

https://code.google.com/p/msysgit/ 下载msysgit

https://code.google.com/p/tortoisegit/ 下载乌龟git客户端他需要git.exe

编译ffmpeg需要git,其会去自动下载一些第三方库,好像是。

【pkg-config】

http://pkgconfig.freedesktop.org/releases/

http://www.gtk.org/download/win32.php 下载编译好的二进制工具 解压释放到mingw目录下覆盖里面的东西。

下载安装相关包后,可以 配置编译 pkg-config

Mingw编译安装。编译glib不对?

非必须用来检查版本配置的。

 

zlib

Msvc编译:

下载zlib source http://www.zlib.net/

1Grab the zlib sources.

2Edit win32/Makefile.msc so that it uses -MT instead of -MD, since this is how FFmpeg is built as well.

3Edit zconf.h and remove its inclusion of unistd.h. This gets erroneously included when building FFmpeg.

4)在vc的命令行编译环境Run nmake -f win32/Makefile.msc. 

5Move zlib.lib, zconf.h, and zlib.h to somewhere MSVC can see. 放到

 

 

Gcc编译:

如果是gcc编译则移动到libz.a

移动到libE:\develop\KTVSystemDevelop\LAVFilters\thirdparty\lib32\

Include: E:\develop\KTVSystemDevelop\LAVFilters\thirdparty\include

这两个路径在build_ffmpeg.sh中指定了第三方库连接和包含路径但windowsmsvc编译没有指定。

 

参看 build_ffmpeg.sh

 EXTRA_CFLAGS=”-D_WIN32_WINNT=0x0502 -DWINVER=0x0502 -I../thirdparty/include -idirafter../common/includes/dxva2 -DPTW32_STATIC_LIB”

ffmpeg

vc编译需要参看 http://ffmpeg.org/platform.html

1Vc C89标准,ffmpeg遵循C99规范,需要将c99转换到c89,否则编译不了。http://download.videolan.org/pub/contrib/c99-to-c89/,将c99wrapc99conv拷贝到C:\Program Files\Microsoft Visual Studio 10.0\VC\bin下。Yasm.exe也放到该目录下。应该可以放到system32目录下。

 

2)C99用到的一些类型定义: https://code.google.com/p/msinttypes/ 将stdint.hinttypes.h放到C:\Program Files\Microsoft Visual Studio 10.0\VC\include下,有一个存在,没有覆盖。

3)先启动vc 命令行终端,在终端中在启动msys.bat

4)下载 http://git.1f0.de/gitweb?p=ffmpeg.git;a=summary;js=1 ffmpeg,下载对应的lav所修改的版本。

5)修改build_ffmpeg_msvc.sh make -j8去掉j8 debug改为release版本,  –enable-debug  改为–disable-debug

用默认的bat编译失败 make -j8 捣的鬼,j8代表多少个线程同时编译,如果直接make代表一个一个编译。现在的就是make -j8出错。修改build_ffmpeg_msvc.sh 和 build_ffmpeg.sh

 

编译步骤:

Msvc编译:

1)启动vc命令行终端

2)启动C:\MinGW\msys\1.0\msys.bat

3)export PATH=$PATH:/c/mingw/bin fstab中如果有了映射则这个就不需要了

4)cd /e/develop/KTVSystemDevelop/LAVFilters/

5)./build_ffmpeg_msvc.sh

 

Gcc编译:

msvc 最后运行 build_ffmpeg.sh,千万注意一定要在vc命令行终端中启动msys.bat否则会出现莫名的错误。

 

【其它】

不要用默认配置,需要根据需要带参数,故进入lavfilter 执行build.bat执行其中的build_ffmpeg.sh

如果提示VS2010 Cannot determine the location of the VS Common Tools folder. 卸载2010再重新安装解决,应该是netframework的原因即没有该framework导致bat脚本的时候不存在变量什么的网络手写更改要注意framework的版本,不可靠。

可以注释掉64位的编译。如果你不需要的话。 Rem 注释掉那些行

Ffmpeg需要很多第三方库故一定要git,其编译脚本会自动下载所需的第三方库和文件。

 

LAVFilters

1)下载新release的版本的source code,不要最新的,一定要release的确保稳定可靠源码工程下载 : http://git.1f0.de/gitweb?js=1

2)和本地修改的版本合并,本地修改了音轨多输出等

3)在vs2010编译。

 

Vs2010序列号: YCFHQ-9DWCY-DKV88-T2TMH-G7BHP  

 

LAVFilters】编译

获取msys编译环境 MSYS_MinGW-w64_GCC_482_x86-x64_Full.7z,下载路径,http://xhmikosr.1f0.de/tools/,直接解压到C:\MYSYS目录

获取lavfilters source code http://git.1f0.de/gitweb?js=1 lavfsplitter.git 选择release版本如0.59.1下载打包的sourcecode tar.gz 解压缩到LAVFilters

获取lavfilters用到的第三方code ffmpeg.git 地址同上,获取lav0.59.1特定release版本,解压到LAVFilters的下一级目录ffmpeg

获取libbluray.git 与 qsdecoder.git并解压缩到lavfilters\libbluray 和 lavfilters\qsdecoder

用命令行工具编译ffmpeg,注意一定要先起vc 命令行终端否则最后编译的文件出错

启动 VC Command Line 

Cd c:\MYSYS

MYSYS.BAT

CD /E/LAVFILTERS
./BUILD_FFMPEG.SH

如果要编译64位的带参数如下:

./BUILD_FFMPEG.SH x64

vc2010中加载lavfilters.SLN 编译release版本

 

 

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

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

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

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

(0)


相关推荐

  • java编写定时程序_java编辑器

    java编写定时程序_java编辑器Java定时器代码的编写在某些时候,我们需要实现这样的`功能,某一程序隔一段时间执行一次,而这一事情由系统本身来完成,并不是人为的触发,我们一般可称此为定时器任务.其实到Java中,实现起来是非常简单的,下面我们以每隔5秒钟打引一句”Helloworld”为例:importjava.util.TimerTask;publicclassTimeTastextendsTimerTask…

  • 有源低通滤波器 vs. 有源带通滤波器 vs. LC滤波器「建议收藏」

    有源低通滤波器 vs. 有源带通滤波器 vs. LC滤波器「建议收藏」在做一个小东西,想省成本用F407内部的DAC生成Sin输出(100Hz,1kHz,10kHz,100kHz),但是407DAC能力有限,当要输出100kHz的Sin曲线的时候一个周期只能11个点左右,示波器上能看到明显的阶梯,需要一个滤波器。一直纠结有源低通,有源带通,无源LC滤波。滤波器可以通过TI的滤波器设计软件FilterPro来设计,非常简单,有一点就是运放的增益带宽积,同频率下…

  • redis锁实现_IDEA使用try

    redis锁实现_IDEA使用tryWeb全栈~35.显式锁上一期接口Lock显式锁接口的定义       lock()/unlock():就是普通的获取锁和释放锁方法,lock()会阻塞直到成功。       lockInterruptibly():与lock()的不同是,它可以响应中断,如果被其他线程中断了,则抛出InterruptedException。  &nbsp

    2022年10月15日
  • WinZip Pro 9 for Mac(专业zip压缩解压工具)

    WinZip Pro 9 for Mac(专业zip压缩解压工具)WinzipMac是Mac上的老牌解压缩软件,老字号的压缩软件当然更稳定更靠谱。WinzipMac注册版率先支持ribbon界面,支持ZIP、CAB、TAR、GZIP、MIME,以及更多格式的压缩文件。您可以压缩并加密文件更快捷,更安全。安装:WinZipPro9forMac(专业zip压缩解压工具)zip压缩工具Mac版功能亮点压缩文件以节省空间并发送更快的电子邮件压缩文件可节省宝贵的存储空间,减少文件上载/下载时间,并使您可以发送更快,更高效的电子邮件。-新!WinZ

  • MySql Host is blocked because of many connection errors;

    MySql Host is blocked because of many connection errors;

  • 关于网站备案相关流程的通知_网站备案需要什么资料

    关于网站备案相关流程的通知_网站备案需要什么资料最近遇到个头疼的事,关于网站备案。目前有个网站W,备案在A,但是服务器不在A,在B(用的是电信的接入ip),就在前几天收到一封来自A的邮件大致意思如下:经A扫描,发现网站W的服务器不在A,A要取消我们网站的接入,让我们处理这个问题。由于自己对这块东西本身就不熟悉,所以走了很多弯路(原因是多方面的,具体就不说了,不是重点),不过好在最终找到解决方案:在电信新增接入(10000号找个电

    2022年10月28日

发表回复

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

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