编译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版本

 

 

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 9.电阻线性电压转换电路[通俗易懂]

    9.电阻线性电压转换电路[通俗易懂]电阻线性电压转换电路在电子设计中,电阻值的测量是非常重要的。比如在薄膜压力传感器中需要对电阻值进行测量,利用PT100测温度的时候需要测量其电阻。1.电阻分压测量方法在测量电阻的时候通常都是转换为电压测量,串联一个已知电阻,测量两个电阻之间的电压,利用分压公式得到电阻值。显然这个电路中,输出电压为:式中,为串联分压的电阻,为参考电压。令为10K,为5V,利用MATLAB画出U-R曲线,如图:从曲线可以看出,U与R不成线性关系,计算复杂。并且R的测量精度在不同值

    2022年5月8日
    87
  • c ringbuffer 源码_ringbuffer.c

    c ringbuffer 源码_ringbuffer.c#include#include#include#include#include”ringbuffer.h”/*createanewringbuffer*@capacitymaxbuffersizeoftheringbuffer*@returntheaddressofthenewringbuffer,NULLforerror.*/RING_BUF…

    2025年10月21日
    3
  • cifar10 数据集介绍「建议收藏」

    cifar10 数据集介绍「建议收藏」基本信息CIFAR-10是一个包含60000张图片的数据集。其中每张照片为32*32的彩色照片,每个像素点包括RGB三个数值,数值范围0~255。所有照片分属10个不同的类别,分别是’airplane’,’automobile’,’bird’,’cat’,’deer’,’dog’,’frog’,’horse’,’ship’,’truck’。其中五万张图片被划分为训练…

    2022年6月22日
    42
  • Linux,DNS服务器配置

    Linux,DNS服务器配置安装bind,bind-chroot,DNS基本配置:找对地,起对名,写对内容。启动DNS服务器并更改本机DNS服务器地址,测试DNS服务器,易错点分析。

    2022年6月4日
    30
  • fprintf函数用法_c语言fgets函数用法

    fprintf函数用法_c语言fgets函数用法fprintf()函数与fscanf()函数的作用于prinf()和scanf()的作用类似,都是格式化读写函数。只有一点不同:fprintf和fscanf函数的读写对象不是终端而是磁盘文件。他们的一般调用方式为:fprintf(文件指针,格式字符串,输出列表);fscanf(文件指针,格式字符串,输入列表);fprintf(fp,”%d,%6.2f”,i,t);作用:输出整型变量

    2022年10月10日
    2
  • 直观理解深度学习的卷积操作,超赞!

    直观理解深度学习的卷积操作,超赞!翻译|于志鹏 赵朋飞    校对 |  翟修川    整理| 凡江转自|AI研习社近几年随着功能强大的深度学习框架的出现,在深度学习模型中搭建卷积神经网络变得十分容易,甚至只需要一行代码就可以完成。但是理解卷积,特别是对第一次接触卷积神经网络的人来说,经常会对诸如卷积核、滤波器、通道等概念和他们的堆叠架构感到困惑。然而卷积是强大且高度可扩展的概念,在本…

    2022年5月8日
    79

发表回复

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

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