2024年10月ffmpeg编译(ios 怎么配置编译ffmpeg)

 更新时间:2024-10-12

  ⑴ffmpeg编译(ios怎么配置编译ffmpeg

  ⑵ios怎么配置编译ffmpeg

  ⑶IOS上编译ffmpeg需要先下载两个程序:iFrameExractor和ffmpeg编译步骤:、在终端下:cd/iFrameExtractor/ffmpeg建议开始就执行sudo-s(获取权限命令)、在终端下输入执行make这里会有一堆的编译情况。注:最好先升级mandLiools,避免编译错误、执行makeinstall。(执行完后到iFrameExtractor/ffmpeg/lib文件上去看看出现libavcodeclibavdevicelibavformatlibavutillibswscale个.a文件、用xcode打开iFrameExractor工程,确认HeaderSearchPaths里有:“$(SRCROOT)/ffmpeg“路径。$(SRCROOT)表示工程路径。同时可以看到iFrameExractor工程下ffmpeg文件下的.a文件都不是红色的了。、真机上编译(模拟器上i,真机上是arm的,真机还分arm和arm以下是针对arm的/configure--disable-doc--disable-ffmpeg--disable-ffplay--disable-ffserver--enable-cross-pile--arch=arm--target-os=darwin--=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g--as=’gas-preprocessor/gas-preprocessor.pl/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g’--sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS..sdk--cpu=cortex-a--extra-cflags=’-archarmv’--extra-ldflags=’-archarmv-isysroot/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS..sdk’--enable-pic、执行make和makeinstall就有上面的几个.a文件,至此编译结束。

  ⑷如何把ffmpeg编译进motion

  ⑸ffmpeg编译首先解压ffmpeg-...tar.bz,,执行configure命令如下:编译:viewplaincopymake出现错误如下:viewplaincopyarm-linux-gnueabihf-g-DHAVE_AV_CONFIG_H-D_FILE_OFFSET_BITS=-D_LARGEFILE_SOURCE-I.-I“/home/***/iWork/lamobo/motion-..-arm-project/ffmpeg-..“-D_ISOC_SOURCE-D_POSIX_C_SOURCE=-std=c-fomit-frame-pointer-g-Wdeclaration-after-statement-Wall-Wno-switch-Wdisabled-optimization-Wpointer-arith-Wredundant-decls-Wno-pointer-sign-Wcast-qual-Wwrite-strings-Wtype-limits-Wundef-O-fno-math-errno-fno-signed-zeros-c-olibavcodec/dsputil.olibavcodec/dsputil.c/tmp/OmDdh.s:Assemblermessages:/tmp/OmDdh.s::Error:thumbconditionalinstructionshouldbeinITblock--`movgtfp,r’/tmp/OmDdh.s::Error:thumbconditionalinstructionshouldbeinITblock--`movgtr,r’/tmp/OmDdh.s::Error:thumbconditionalinstructionshouldbeinITblock--`movler,r’/tmp/OmDdh.s::Error:thumbconditionalinstructionshouldbeinITblock--`movgtfp,r’/tmp/OmDdh.s::Error:thumbconditionalinstructionshouldbeinITblock--`movgtr,r’/tmp/OmDdh.s::Error:thumbconditionalinstructionshouldbeinITblock--`movgtr,ip’/tmp/OmDdh.s::Error:thumbconditionalinstructionshouldbeinITblock--`movler,r’/tmp/OmDdh.s::Error:thumbconditionalinstructionshouldbeinITblock--`movgtr,r’make:***Error这需要修改~/ffmpeg-../config.mak,在OPTFLAGS(line:选项中添加:viewplaincopy-Wa,-mimplicit-it=thumb加入这句的意思是在使用ThumbISA指令编译时自动产生“IT”指令。继续编译,又报错:viewplaincopystrip:Unabletorecognisetheformatoftheinputfile`ffmpeg’这是strip没有使用交叉编译的版本所致,由于此时我们需要的库文件已经编成,所以这个错误可以忽略不计,修改config.mak中的strip为arm-linux-gnueabihf-strip,继续让编译完成motion编译motion中的ffmpeg.c是对ffmpegapi的封装,向其他模块提供功能。如在主程序文件motion.c中viewplaincopy//......#ifdefHAVE_FFMPEG/*FFMpeginitializationisonlyperformedifFFMpegsupportwasfound*andnotdisabledduringtheconfigurephase.*/ffmpeg_init();#endif/*HAVE_FFMPEG*///......这里ffmpeg_init就是ffmpeg.c中封装的方法:viewplaincopyvoidffmpeg_init(){motion_log(LOG_INFO,,“ffmpegLIBAVCODEC_BUILD%dLIBAVFORMAT_BUILD%d“,LIBAVCODEC_BUILD,LIBAVFORMAT_BUILD);av_register_all();#ifLIBAVCODEC_BUILD》av_log_set_callback((void*)ffmpeg_avcodec_log);#endif/*Copythefunctionstousefortheappendfileprotocolfromthestandard*fileprotocol.*/mpeg_file_protocol.url_read=file_protocol.url_read;mpeg_file_protocol.url_write=file_protocol.url_write;mpeg_file_protocol.url_seek=file_protocol.url_seek;mpeg_file_protocol.url_close=file_protocol.url_close;/*Registertheappendfileprotocol.*/#ifLIBAVFORMAT_BUILD》=(《《|《《)av_register_protocol(&mpeg_file_protocol);#elseregister_protocol(&mpeg_file_protocol);#endif}我们需要在motion的Makefile中加入对ffmpeg模块的编译,并且打开HAVE_FFMPEG等开关。首先执行configure如下:生成Makefile,在OBJ选项中添加ffmpeg.o:viewplaincopyOBJ=ffmpeg.omotion.oconf.odraw.ojpegutils.o$(VIDEO_OBJ)cam.ocam_ftp.ocam_jpeg.ocam_wget.otrack.oalg.oevent.opicture.orotate.oweb然后继续编译motion,又报错:viewplaincopy/home/xxx/iWork/Thrid_party/ffmpeg-../libavformat/matroskadec.c::undefinedreferenceto`BZ_bzDepressInit’/home/xxx/iWork/Thrid_party/ffmpeg-../libavformat/matroskadec.c::undefinedreferenceto`BZ_bzDepress’/home/xxx/iWork/Thrid_party/ffmpeg-../libavformat/matroskadec.c::undefinedreferenceto`BZ_bzDepressEnd’这个需要libbz库,下载地址编译安装libbz后将-lbz加入motion的Makefile的LIBS选项:viewplaincopyLIBS=-lpthread-ljpeg-L/usr/lib-lavformat-lavcodec-lavutil-lm-lz-lbz

  ⑹ios怎么配置编译ffmpeg

  ⑺MACOSXMountainLion..、XCode.

  ⑻下载ffmpeg..版本代码,并解压。

  ⑼下载并解压gas-preprocessor.pl(附件中有,zip格式,因网易博客不能上传zip后缀的文件,故加了个.rar

  ⑽在终端中使用cp命令将它复制到/usr/sbin/目录,并赋予可执行权限。

  ⑾sudocp-fgas-preprocessor/gas-preprocessor.pl/usr/sbin/chmod+x/usr/sbin/gas-preprocessor.pl

  ⑿在ffmpeg目录下创建一个config.sh脚本

  ⒀#!/bin/bashSDKVERSION=“.“ARCHS=“armvarmvsi“DEVELOPER=`xcode-select-print-path`cd“`dirname“$“`“REPOROOT=$(pwd)#wherewewillstoreintermediarybuildsINTERDIR=“${REPOROOT}/built“mkdir-p$INTERDIR#########################################ExitthescriptifanerrorhappensforARCHin${ARCHS}doif;thenPLATFORM=“iPhoneSimulator“EXTRA_CONFIG=“--arch=i--disable-asm--enable-cross-pile--target-os=darwin--cpu=i“EXTRA_CFLAGS=“-archi“EXTRA_LDFLAGS=“-I${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer/SDKs/${PLATFORM}${SDKVERSION}.sdk/usr/lib“elsePLATFORM=“iPhoneOS“EXTRA_CONFIG=“--arch=arm--target-os=darwin--enable-cross-pile--cpu=cortex-a--disable-armvte“EXTRA_CFLAGS=“-w-arch${ARCH}“fimkdir-p“${INTERDIR}/${ARCH}“

  ⒁SDKVERSION是XCode的版本,通过`xcode-select-print-path`来获取XCode的安装路径,ARCHS是编译的三种模式,接下来在终端中cd到ffmpeg目录,执行就可以编译了。等到编译完成后,在ffmpeg目录下会多出一个built目录,里面分别是armvarmvsi及三个合并的universal版本了。

  ⒂如何将ffmpeg在windows编译和使用

  ⒃如下:.配置编译环境.下载FFMPEG的代码.编译,获取FFMPEG库(头文件,lib,和DLL.在VC下配置,测试.配置编译环境安装MSys下载文件:bash-.-MSYS-..-snapshot.tar.bzmsysCORE-..-.tar.gz解压msysCORE-..-.tar.gz,比如解压到X:msys(以下内容都使用该路径描述,X为你安装的盘符。解压bash-.-MSYS-..-snapshot.tar.bz,产生一个名为bash-.的目录,在该目录下有一个子目录名为bin,其他的目录不需要关心。复制bin目录中的所有文件到D:msysbin,提示是否要覆盖sh.exe的时候,选择是。到“D:msyspostinstall”目录下执行pi.bat,在出现的提示中输入n回车后(这个不搞错了),按任意键退出即可。安装MinGW下载文件:binutils-.--mingw-bin.tar.gz(binutils-..-mingw-bin.tar.gz)g-core-..--.tar.gzg-g++-..--.tar.gzwapi-.-mingw-dev.tar.gzmingwrt-.-mingw-dev.tar.gz(mingwrt-..-mingw-dev.tar.gz)mingwrt-.-mingw-dll.tar.gz(mingwrt-..-mingw-dll.tar.gz)把它们全部解压到X:msysmingw。修改“msys.bat”用文本器打开D:msysmsys.bat,由于打算用MSVC++编译程序,所以需要有.lib文件才能链接到FFmpeg的库,这些.lib文件可以使用微软的工具链中lib命令产生。为此,机器上必须已经安装了微软的VisualStudio或是VisualC++。把下面一行加到msys.bat的最前面,把路径替换成机器上vcvars.bat实际存在的路径,比如我的在“D:programfilesMicrosoftVisualStudioVCbin”,于是就添加:call“D:programfilesMicrosoftVisualStudioVCbin“系统整合复制D:msysetcfstab.sample为X:msysetcfstab,用文本器打开D:msysetcfstab。(需要使用一个支持Unix换行风格的器,比如Notepad++,把下面这行:D:/mingw/mingw改为:D:/msys/mingw/mingw注意:改的这个目录为mingw你所安装的目录,所以按本文来讲是这个目录。如果你安装不目录不同,就要改成你所安装的目录。完成以上步骤,MSys+MinGW系统就配置完成了。.下载FFMPEG的代码下载代码的办法由两个,一个就是用svn下载下来。我觉得哪怕你知道svn是啥,也不用这个方法,因为太慢了。一个文件一个文件下,最关键SVN对应的地址是国外,都不知道什么才能全部下完。另外一个直接下一个代码的压缩包。

  ⒄怎么编译ffmpegrelease版本

  ⒅FFmpeg在Windows系统下的编译过程,分四步:如下:.配置编译环境.下载FFMPEG的代码.编译,获取FFMPEG库(头文件,lib,和DLL.在VC下配置,测试.配置编译环境安装MSys下载文件:bash-.-MSYS-..-snapshot.tar.bzm

  ⒆如何使用ndk编译ffmpeg静态库

  ⒇如何使用ndk为ffmpeg编译rtmp+polarssl静态库?这个问题花了我整整一天时间。其中遇到很多小问题,这里记录一下,方便自己也方便其他人。、编译polarssl,查看其Readme文件即可,不需要configure,只需要make时带上必要的参数即可,不过要记得在每一次执行make命令时都带上的参数(指向你的armg,因为我试过在makeinstall时没有带上的参数,虽然能编译出polarssl但是未能正确被rtmp引用到。、因为前面我用的polarssl是当前最新(..版本,而librtmp使用的好像是polarssl..以下版本的api,所以需要修改rtmp部分源码,让其调用新版polarssl的api,这里的修改可以参照《MigratingfromPolarSSL-.tothePolarSSL.branch》和《branchmasterupdated.aacFixpatwithPolarSSL》=..》。、出现undefinedreferenceto`havege_random’错误,这里是因为polarssl默认关闭了havege模块,需要你手动开启,主要就是修改include/polarssl/config.h,去掉POLARSSL_HAVEGE_C前的注释,也就是要定义POLARSSL_HAVEGE_C,如下:#definePOLARSSL_HAVEGE_C、在编译出上面两个库之后,可以开始编译ffmpeg(..版本了,如果遇到下面的问题check_pkg_configlibrtmplibrtmp/rtmp.hRTMP_SocketERROR:librtmpnotfound这里有三种解决方法:第一种,因为是网络上传播最多的,算是比较简便的方法,就是修改ffmpeg的configure,将以下一行:enabledlibrtmp&&require_pkg_configlibrtmplibrtmp/rtmp.hRTMP_Socket改为:enabledlibrtmp&&requirelibrtmplibrtmp/rtmp.hRTMP_Socket-lrtmp-lpolarssl-lz或者直接注释掉&&***部分,然后再自己加上librtmp的库路径也行第二种,(比较推荐,因为解决了这个会顺带解决大部分找不到库的错误!因为这里使用了pkg-config工具查找库,而这个工具ndk并没有附带提供,而出现check_pkg_config相关错误的话,只要稍加注意,会发现在使用configure配置ffmpeg的交叉编译时,已经有相应的pkg-config不存在的警告了。我对这个工具不熟悉,所以我只是简单地加上了一个软链接到系统的pkg-config,如下:ln-s/usr/bin/pkg-config/home/cidy/android-ndk-rd/toolchains/arm-linux-androideabi-./prebuilt/linux-x_/bin/arm-linux-androideabi-pkg-config这个时候重新configure的话可能会出现找不到polarssl库的错误提示,需要修改一下librtmp安装目录里的librtmp.pc,把以下内容:Libs:-L${libdir}-lrtmp-lz改为:Libs:-L${libdir}-lrtmp-lz-lpolarssl至此,就可以正确编译出ffmpeg了转载

  ⒈手动编译FFmpeg静态库详细过程

  ⒉编译FFmpeg用作二次开发音视频,得提前安装好Ubutu!!!解压出来后进入ffmpeg解压目录,可以看到里面有各种文件、文档。需要关注的是configure文件。这个文件本身就是一个shell脚本,作用为生成makfile文件,然后使用make执行。、进入目录、打包编译好的文件、导出打包好的的tar包(导出保存在桌面)、解压之后

  ⒊FFmpeg编译参数简单整理

  ⒋以下参数使用--enable-foo启用或使用--disable-foo禁用时使用--e/d-代替。

  ⒌其他的可更改优化方案:AltiVec、DNow!、MMX、MMX、SSE、SSE、armvte、armv、armvt、ARMVFP、iwmmxt、MMI、neon、VIS

  ⒍使用--enable-foo启用或使用--disable-foo禁用需要的功能插件,使用--e/d-代替。某些部件(如decoderenable时需要明确指明,例:--enable-decoder=libdavs。

  ⒎注:打开与启用非等同

  ⒏其他默认开启但可以关闭的部分:ffmpeg、ffprobe、ffplay、ffserver、avdevice、avcodec、avcore、avformat、swscale、特定部件(如某个编解码器等

  ⒐可选择禁用的编码:AANDCT、DCT、Golomb、FFT、Golomb、LPC、MDCT、RDFT、VAAPI、VDPAU、DXVA

您可能感兴趣的文章:

相关文章