1、android的NDK开发需要在linux下进行: 因为需要把C/C++编写的代码生成能在arm上运行的.so文件,这就需要用到交叉编译环境,而交叉编译需要在linux系统下才能完成。
2、安装android-ndk开发包,这个开发包可以在google android 官网下载: 通过这个开发包的工具才能将android jni 的C/C++的代码编译成库
android应用程序开发环境: 包括eclipse、java、 android sdk、 adt等。
NDK编译步骤:
a.选择 ndk 自带的例子 hello-jni ,我的位于E:\android-ndk-r5\samples\hello-jni( 根据具体的安装位置而定 ) 。
b.运行 cygwin ,输入命令 cd /cygdrive/e/android-ndk-r5/samples/hello-jni ,进入到 E:\android-ndk-r5\samples\hello-jni 目录。
c.输入 $NDK/ndk-build ,执行成功后,它会自动生成一个 libs 目录,把编译生成的 .so 文件放在里面。 ($NDK是调用我们之前配置好的环境变量, ndk-build 是调用 ndk 的编译程序 )
d.此时去 hello-jni 的 libs 目录下看有没有生成的 .so 文件,如果有,ndk 就运行正常啦。
‘贰’ ffmpeg在window下编译和linux下编译的不同
你是哪个系统下用的?Windows和Linux下都有直接拿来用的。 另外还要看你干什么用,你的要求特殊一些的话是需要编译的,有的功能默认没有开启。一般情况下直接就用了啊,不需要编译的。Linux下也是用安装命令安装一下就好了,极其简单。
‘叁’ 如何编译ffmpeg以支持dshow设备
ffmpeg编译及使用ffmpeg编译及使用 1 ffmpeg介绍 ffmpeg是音视频的分离,转换,编码解码及流媒体的完全解决方案,其中最重要的就是libavcodec库
,
‘肆’ 如何将ffmpeg在windows编译和使用
如下:
1. 配置编译环境
2. 下载FFMPEG的代码
3. 编译,获取FFMPEG库(头文件,lib,和DLL)
4. 在VC下配置,测试
1. 配置编译环境
1)安装MSys
下载文件:
bash-3.1-MSYS-1.0.11-snapshot.tar.bz2
msysCORE-1.0.11-20080826.tar.gz
解压msysCORE-1.0.11-20080826.tar.gz,比如解压到X:\msys(以下内容都使用该路径描述,X为你安装的盘符)。
解压bash-3.1-MSYS-1.0.11-snapshot.tar.bz2,产生一个名为bash-3.1的目录,在该目录下有一个子目录名为bin,其他的目录不需要关心。复制bin目录中的所有文件到D:\msys\bin,提示是否要覆盖sh.exe的时候,选择是。
到“D:\msys\postinstall”目录下执行pi.bat,在出现的提示中输入n回车后(这个不搞错了),按任意键退出即可。
2)安装MinGW
下载文件:
binutils-2.20-1-mingw32-bin.tar.gz
(binutils-2.19.1-mingw32-bin.tar.gz)
gcc-core-3.4.5-20060117-3.tar.gz
gcc-g++-3.4.5-20060117-3.tar.gz
w32api-3.13-mingw32-dev.tar.gz
mingwrt-3.16-mingw32-dev.tar.gz
(mingwrt-3.15.2-mingw32-dev.tar.gz)
mingwrt-3.16-mingw32-dll.tar.gz
(mingwrt-3.15.2-mingw32-dll.tar.gz)
把它们全部解压到X:\msys\mingw。
3)修改“msys.bat”
用文本编辑器打开D:\msys\msys.bat,由于打算用MSVC++编译程序,所以需要有.lib文件才能链接到FFmpeg的库,这些.lib文件可以使用微软的工具链中lib命令产生。为此,机器上必须已经安装了微软的Visual Studio或是Visual C++。把下面一行加到msys.bat的最前面,把路径替换成机器上vcvars32.bat实际存在的路径,比如我的在“D:\program files\Microsoft Visual Studio 8\VC\bin”,于是就添加:
call "D:\program files\Microsoft Visual Studio 8\VC\bin"
4)系统整合
复制D:\msys\etc\fstab.sample为X:\msys\etc\fstab,用文本编辑器打开D:\msys\etc\fstab编辑。(需要使用一个支持Unix换行风格的编辑器,比如Notepad++),把下面这行:
D:/mingw /mingw
改为:
D:/msys/mingw /mingw
注意:改的这个目录为mingw你所安装的目录,所以按本文来讲是这个目录。如果你安装不目录不同,就要改成你所安装的目录。
完成以上步骤,MSys+MinGW系统就配置完成了。
2. 下载FFMPEG的代码
下载代码的办法由两个,一个就是用svn 下载下来。我觉得哪怕你知道svn是啥,也不用这个方法,因为太慢了。一个文件一个文件下,最关键SVN对应的地址是国外,都不知道什么才能全部下完。另外一个直接下一个代码的压缩包。
‘伍’ 如何在ubuntu上编译ffmpeg
下载ffmpeg源代码,解压缩。
用shell定位到目录,执行
./configure --prefix=你要安装的目录
等待结束并生成makefile文件,至于--prefix=目录,可以省略,如果省略会装到/usr下,这在很多情况下是危险的,不可控的,可能会带来麻烦,而且需要root权限来安装。
过程中如果失败结束,一般是依赖不满足,你需要按照错误提示补上需要的库,这个问题很麻烦,我没法确定你缺哪个库,也没法告诉你一个好的方法去安装这些库。但是你需要知道,流程就是如此,如果你知道缺哪个库,你可以尝试sudo apt-get install packages的方法安装或用新立德软件包安装程序。
如果成功结束,将产生Makefile文件,这是之需要
make
编译程序,如果成功结束,程序就编译好了。
安装程序使用
make install
根据你是否使用--prefix可能需要root权限。
如果你仅仅是想使用ffmpeg,那么不要编译它,很麻烦的请直接apt-get install ffmpeg
‘陆’ ios编译ffmpeg时如何添加x264的库
找到问题了编译的时候首先要连接libx264 ,le-libx264 --enable-gpl --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib 然后要打开这个编码器--enable-encoder=libx264,我就是这一步搞错了一直找不到,我在编译的时候禁掉了所有的编码器,终于可以继续走下去了 到DEVDIV.COM网站查看回答详情>>
‘柒’ 如何用vs08编译ffmpeg
1.下载最新git版本的源代码
2. 放到MSYS环境里配置,生成config.h文件。mingw gcc是能顺利编译通过整个项目的,并生成最新版的ffmpeg。
3. 建立vc6工程,把相关代码都加入到工程中。由于在vc生成的obj都在一个目录下,所以需要修改文件名,让其不重名。
4. 安装intel compiler 11编译器,单独提取其icl.exe及相关include目录,替换掉vc6自带的cl.exe, 在工程设置里加上/Qstd=c99,用于支持C99语法。
5. 安装intel compiler 10编译器,单独提取lib目录,因为此版本调试库的结构能完美支持vc6的调试信息。
6. 在vc6的options里设置include/exe/lib查找目录,指向intel编译器。
7. 开始修改代码,添加C99的相关linux头文件, 用于支持vc6
8. 添加C99和linux的相关实现代码,ffmpeg需要用到: getopt_long, strtoll, gettimeofday, atoll, usleep等
9. 修改windows的相关兼容代码,GetWindowLongPtr -> GetWindowLong, GWLP_USERDATA
10. 去除硬件加速libavcodec代码,和依赖库代码。选择所需要的模块,修改相关的allcodec.c, alldevices.c, allfilters.c, allformats.c
‘捌’ ffmpeg在嵌入式linux里面编译之后有多大
这个真的要看你的编译选项了(./configure ……)变得多了体积就大,就我来说我自己编的大概有8-9M,当然我见过人家编出来600K的
‘玖’ 怎么判断自己编译的ffmpeg是否支持rtsp了
你看看是否设置对了。默认情况下ffmpeg是支持rtsp的,一般需要选择对应muxer或者demuxer的顺序是:--disable-demuxers --enable-demuxer=rtsp --enable-demuxer=sdp