编译LAVFilters

2022-08-31 17:51:24 浏览数 (1)

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

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:MinGWmsys1.0etcfstab

增加: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:windowssystem32 避免冲突也放到vc的目录下 C:Program FilesMicrosoft Visual Studio 10.0VCbin

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

命令: ./configure

Make

Make install

被自动安装到

C:MinGWmsys1.0localbin目录下。

Mingw下的yasm和windows下不一样并且需要mingw的libintl库如果用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/

1)Grab the zlib sources.

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

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

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

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

Gcc编译:

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

移动到lib:E:developKTVSystemDevelopLAVFiltersthirdpartylib32

Include: E:developKTVSystemDevelopLAVFiltersthirdpartyinclude

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

参看 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

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

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

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:MinGWmsys1.0msys.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并解压缩到lavfilterslibbluray 和 lavfiltersqsdecoder

用命令行工具编译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版本

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

0 人点赞