polarssl编译
1. 请教如何使用cygwin编译ffmpeg静态库
如何使用ndk为ffmpeg编译rtmp+polarssl静态库?这个问题花了我整整一天时间。其中遇到很多小问题,这里记录一下,方便自己也方便其他人。
1、编译polarssl,查看其Readme文件即可,不需要configure,只需要make时带上必要的参数即可,不过要记得在每一次执行make命令时都带上CC的参数(指向你的arm gcc),因为我试过在make install时没有带上CC的参数,虽然能编译出polarssl但是未能正确被rtmp引用到。
2、因为前面我用的polarssl是当前最新(1.3.7)版本,而librtmp使用的好像是polarssl1.0.0以下版本的api,所以需要修改rtmp部分源码,让其调用新版polarssl的api,这里的修改可以参照《Migrating from PolarSSL-1.2 to the PolarSSL 1.3 branch》和《[rtmpmp] branch master updated. a312ac7 Fix compat with PolarSSL >= 1.1.0》。
3、出现 undefined reference to `havege_random’错误,这里是因为polarssl默认关闭了havege模块,需要你手动开启,主要就是修改include/polarssl/config.h,去掉POLARSSL_HAVEGE_C前的注释,也就是要定义POLARSSL_HAVEGE_C,如下:
#define POLARSSL_HAVEGE_C
4、在编译出上面两个库之后,可以开始编译ffmpeg(2.1.1版本)了,如果遇到下面的问题 check_pkg_config librtmp librtmp/rtmp.h RTMP_Socket
ERROR: librtmp not found
这里有三种解决方法:
第一种,因为是网络上传播最多的,算是比较简便的方法,就是修改ffmpeg的configure,将以下一行:
enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket
改为:
enabled librtmp && require librtmp librtmp/rtmp.h RTMP_Socket -lrtmp -lpolarssl -lz
或者直接注释掉&& *** 部分,然后再自己加上librtmp的库路径也行
第二种,(比较推荐,因为解决了这个会顺带解决大部分找不到库的错误!)因为这里使用了pkg-config工具查找库,而这个工具ndk并没有附带提供,而出现check_pkg_config相关错误的话,只要稍加注意,会发现在使用configure配置ffmpeg的交叉编译时,已经有相应的pkg-config不存在的警告了。我对这个工具不熟悉,所以我只是简单地加上了一个软链接到系统的pkg-config,如下:
ln -s /usr/bin/pkg-config /home/cidy0106/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-pkg-config
这个时候重新configure的话可能会出现找不到polarssl库的错误提示,需要修改一下librtmp安装目录里的librtmp.pc,把以下内容:
Libs: -L${libdir} -lrtmp -lz
改为:
Libs: -L${libdir} -lrtmp -lz -lpolarssl
至此,就可以正确编译出ffmpeg了
2. polarssl 与 openssl 编译出来的 a 文件怎么体积差别那么大
第一用静态编译;第二就是在算法上,尽量的减少罗嗦的代码,能写子程序的就写子程序。其他的,好像没有了吧。呵呵。
3. 求教高手:如何在NDKr5下用单独的静态库编译
何使用ndkffmpeg编译rtmp+polarssl静态库问题花我整整间其遇问题记录便自便其 一、编译polarssl查看其Readme文件即需要configure需要make带必要参数即要记每执行make命令都带CC参数(指向arm gcc)我试make install没带CC参数虽能编译polarssl未能确rtmp引用 二、前面我用polarssl前新(一.三.漆)版本librtmp使用像polarssl一.0.0版本api所需要修改rtmp部源码让其调用新版polarsslapi修改参照《Migrating from PolarSSL-一.二 to the PolarSSL 一.三 branch》《[rtmpmp] branch master updated. a三一二ac漆 Fix compat with PolarSSL >= 一.一.0》 三、现 undefined reference to `havege_random’错误polarssl默认关闭havege模块需要手启主要修改include/polarssl/config.h掉POLARSSL_HAVEGE_C前注释要定义POLARSSL_HAVEGE_C: #define POLARSSL_HAVEGE_C 四、编译面两库始编译ffmpeg(二.一.一版本)遇面问题 check_pkg_config librtmp librtmp/rtmp.h RTMP_Socket ERROR: librtmp not found 三种解决: 第种中国络传播算比较简便修改ffmpegconfigure行: enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket 改: enabled librtmp && require librtmp librtmp/rtmp.h RTMP_Socket -lrtmp -lpolarssl -lz 或者直接注释掉&& *** 部再自加librtmp库路径行 第二种(比较推荐解决顺带解决部找库错误)使用pkg-config工具查找库工具ndk并没附带提供现check_pkg_config相关错误要稍加注意发现使用configure配置ffmpeg交叉编译已经相应pkg-config存警告我工具熟悉所我简单加软链接系统pkg-config: ln -s /usr/bin/pkg-config /home/cidy0一0陆/android-ndk-r9d/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 转
4. 如何用Android NDK编译FFmpeg
如何使用ndk为ffmpeg编译rtmp+polarssl静态库?这个问题花了我整整一天时间。其中遇到很多小问题,这里记录一下,方便自己也方便其他人。1、编译polarssl,查看其Readme文件即可,不需要configure,只需要make时带上必要的参数即可,不过要记得在每一次执行make命令时都带上CC的参数(指向你的armgcc),因为我试过在makeinstall时没有带上CC的参数,虽然能编译出polarssl但是未能正确被rtmp引用到。2、因为前面我用的polarssl是当前最新(1.3.7)版本,而librtmp使用的好像是polarssl1.0.0以下版本的api,所以需要修改rtmp部分源码,让其调用新版polarssl的api,这里的修改可以参照《MigratingfromPolarSSL-1.2tothePolarSSL1.3branch》和《[rtmpmp]branchmasterupdated.a312ac7FixcompatwithPolarSSL>=1.1.0》。3、出现undefinedreferenceto`havege_random’错误,这里是因为polarssl默认关闭了havege模块,需要你手动开启,主要就是修改include/polarssl/config.h,去掉POLARSSL_HAVEGE_C前的注释,也就是要定义POLARSSL_HAVEGE_C,如下:#definePOLARSSL_HAVEGE_C4、在编译出上面两个库之后,可以开始编译ffmpeg(2.1.1版本)了,如果遇到下面的问题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/cidy0106/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-pkg-config这个时候重新configure的话可能会出现找不到polarssl库的错误提示,需要修改一下librtmp安装目录里的librtmp.pc,把以下内容:Libs:-L${libdir}-lrtmp-lz改为:Libs:-L${libdir}-lrtmp-lz-lpolarssl至此,就可以正确编译出ffmpeg了转载
5. 如何使用ndk编译ffmpeg静态库
如何使用ndk为ffmpeg编译rtmp+polarssl静态库?这个问题花了我整整一天时间。其中遇到很多小问题,这里记录一下,方便自己也方便其他人。
1、编译polarssl,查看其Readme文件即可,不需要configure,只需要make时带上必要的参数即可,不过要记得在每一次执行make命令时都带上CC的参数(指向你的arm gcc),因为我试过在make install时没有带上CC的参数,虽然能编译出polarssl但是未能正确被rtmp引用到。
2、因为前面我用的polarssl是当前最新(1.3.7)版本,而librtmp使用的好像是polarssl1.0.0以下版本的api,所以需要修改rtmp部分源码,让其调用新版polarssl的api,这里的修改可以参照《Migrating from PolarSSL-1.2 to the PolarSSL 1.3 branch》和《[rtmpmp] branch master updated. a312ac7 Fix compat with PolarSSL >= 1.1.0》。
3、出现 undefined reference to `havege_random’错误,这里是因为polarssl默认关闭了havege模块,需要你手动开启,主要就是修改include/polarssl/config.h,去掉POLARSSL_HAVEGE_C前的注释,也就是要定义POLARSSL_HAVEGE_C,如下:
#define POLARSSL_HAVEGE_C
4、在编译出上面两个库之后,可以开始编译ffmpeg(2.1.1版本)了,如果遇到下面的问题 check_pkg_config librtmp librtmp/rtmp.h RTMP_Socket
ERROR: librtmp not found
这里有三种解决方法:
第一种,因为是网络上传播最多的,算是比较简便的方法,就是修改ffmpeg的configure,将以下一行:
enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket
改为:
enabled librtmp && require librtmp librtmp/rtmp.h RTMP_Socket -lrtmp -lpolarssl -lz
或者直接注释掉&& *** 部分,然后再自己加上librtmp的库路径也行
第二种,(比较推荐,因为解决了这个会顺带解决大部分找不到库的错误!)因为这里使用了pkg-config工具查找库,而这个工具ndk并没有附带提供,而出现check_pkg_config相关错误的话,只要稍加注意,会发现在使用configure配置ffmpeg的交叉编译时,已经有相应的pkg-config不存在的警告了。我对这个工具不熟悉,所以我只是简单地加上了一个软链接到系统的pkg-config,如下:
ln -s /usr/bin/pkg-config /home/cidy0106/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-pkg-config
这个时候重新configure的话可能会出现找不到polarssl库的错误提示,需要修改一下librtmp安装目录里的librtmp.pc,把以下内容:
Libs: -L${libdir} -lrtmp -lz
改为:
Libs: -L${libdir} -lrtmp -lz -lpolarssl
至此,就可以正确编译出ffmpeg了
转载
6. ffmpeg 把avi转换flv怎么是0kb
ffmpeg版本太旧,用的7年前的版本。支持太少。换新版即可。
我自己编译的版本,为core2以上cpu优化
ffmpeg version N-57940-g1b3d3a9 Copyright (c) 2000-2013 the FFmpeg developers
built on Nov 6 2013 18:49:29 with gcc 4.7.3 (GCC)
configuration: --prefix=/mingw/i686-w64-mingw32 --enable-version3 --enable-gpl
--enable-nonfree --enable-avisynth --enable-libfaac --enable-libaacplus --enabl
e-libvo-aacenc --enable-libfdk-aac --enable-libmp3lame --enable-libx264 --enable
-librtmp --enable-libvpx --enable-libvorbis --enable-libopus --disable-runtime-c
pudetect --disable-doc --disable-manpages --disable-podpages --disable-txtpages
--enable-cross-compile --target-os=mingw32 --arch=x86 --enable-w32threads --extr
a-cflags='-Ofast -mtune=core2 -fomit-frame-pointer' --extra-libs='-lrtmp -lpolar
ssl -lwinmm -lws2_32 -lgdi32'
libavutil 52. 52.100 / 52. 52.100
libavcodec 55. 41.100 / 55. 41.100
libavformat 55. 21.100 / 55. 21.100
libavdevice 55. 5.100 / 55. 5.100
libavfilter 3. 90.102 / 3. 90.102
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
libpostproc 52. 3.100 / 52. 3.100
7. polarssl 与 openssl 编译出来的 a 文件怎么体积差别那么大
PolarSSL 1.2.0发布了,这是新的产品系列。2012-10-31 上一个版本是2012-05-31的1.1.4 。越来越多的应用已经从只支持OpenSSL到可以支持PolarSSL。 PolarSSL源码,也许是最小巧的ssl代码库。高效、便于移植和集成。尤其适合嵌入式应用。 支持了TLS 1.2 完全改进: More relevant is what this release will mean for you. First and foremost is the addition of support for TLS 1.2. On a cryptographic front Galois Counter Mode for AES was added, the Blowfish symmetric algorithm and PBKDF2. We have done a lot of internal rework and a number of changes that can impact some of your code.
