FFmpeg4droid动态库及测试项目
c4droid吧
全部回复
仅看楼主
level 9
Fallenworlder 楼主
一楼防偷窥,发完前禁止插楼
2013年09月05日 10点09分 1
level 9
Fallenworlder 楼主
FFmpeg是什么?FFmpeg是一个开源的视频音频处理库。
以下是百科的简介:
FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。
百度百科ffmpeg: baike.baidu.com/view/856526.htm
2013年09月05日 10点09分 2
http//:pan.baidu.com/share/link?shareid=3701955174&uk=1261767571
2015年07月14日 05点07分
level 9
Fallenworlder 楼主
动态库及测试文件下载地址:
pan.baidu.com/share/link?shareid=3701955174&uk=1261767571
声明一下,这些库不是我编译的,是从goolecode上一个叫javacv的项目上下载下来的。
javacv项目地址: code.google.com/p/javacv/
(此楼禁止回复,用作修复)
2013年09月05日 10点09分 3
pan.baidu.com/share/link?shareid=3701955174&uk=1261767571
2015年07月14日 05点07分
level 9
Fallenworlder 楼主
【使用方法】
从三楼的给的地址中下载"ffmpeg4droid.zip",解压。将解压出的ffmpeg4droid文件夹放到sdcard根目录下,即/sdcard/ffmpeg4droid/(注:放到sd卡根目录是因为压缩包中ffmpegtest测试代码的需要)。
接着将ffmpeg4droid/include/中所有的文件夹(其中放着ffmpeg的头文件)复制到gcc的include文件夹下,也就是说,如果你的gcc安装到手机内置存储了,就复制到/data/data/com.n0n3m4.droidc/files/gcc/arm-linux-androideabi/include/目录下;如果gcc安装到sd卡了,就复制到/sdcard/Android/data/com.n0n3m4.droidc/files/gcc/arm-linux-androideabi/include目录下。
然后将ffmpeg4droid/libs/中所有的.so文件复制到gcc的lib文件夹下,也就是说,如果你的gcc安装到手机内置存储了,就复制到/data/data/com.n0n3m4.droidc/files/gcc/arm-linux-androideabi/lib/目录下;如果安装到sd卡了,就复制到/sdcard/Android/data/com.n0n3m4.droidc/files/gcc/arm-linux-androideabi/lib/文件夹下(然后最好改下权限,保证可读)。
然后是很重要的一步!用re文件管理器把/system/“挂载为读写”,然后把刚才复制过的.so文件再复制一份到/system/lib/中
OK,万事大吉了!
2013年09月05日 11点09分 4
差点忘了……还有非常重要的一步:打开c4,点开设置(Preferance)中的g++ argument,在倒数第二还是第三行的"-l(c4droid:CURSRCDIR)"之前加入:
2013年09月05日 11点09分
(接上)加入: -lavcodec -lavdevice -lavfilter -lavformat -lavutil -lpostproc -lswresample -lswscale 注意前后要有空格和其余的参数分隔开。加入这些就是为了编译的时候能够用那些.so动态库
2013年09月05日 11点09分
如果你将来是用的c语言写代码并且编译器选的是gcc不是g++的话,还要在gcc arguments中像前面一样加入加入那些-l参数。关于-l参数的具体作用,请自行搜索“gcc -l参数”
2013年09月05日 12点09分
这个是数字1,这个是字母l(L的小写),大家看清楚了
2013年09月05日 14点09分
level 9
Fallenworlder 楼主
真的完事大吉了么?其实是骗你的,如果你这样做完后编译测试项目,会发现报错说"UINT64_C未定义"。
解决方法:把gcc目录(gcc目录在哪请参考四楼)中的/arm-linux-androideabi/lnclude/libavutil/common.h用文本编辑软件打开,向里面加入如下代码:
#ifndef UINT64_C
#define UINT64_C(value) __CONCAT(value,ULL)
#endif
注意第三行CONCAT前面是2个下划线,而且后面的就是ULL不是NULL(我估计意思就是unsigned long long)
其实就是加入一个宏定义。
另外还要注意如果用的C++,包含ffmpeg头文件的时候要用extern "C"{}括起来(具体请参考测试代码)。测试代码请用g++编译
2013年09月05日 11点09分 5
level 9
Fallenworlder 楼主
测试项目截图:
2013年09月05日 11点09分 6
level 9
Fallenworlder 楼主
截图2
2013年09月05日 11点09分 7
level 9
Fallenworlder 楼主
截图3
2013年09月05日 11点09分 8
level 9
Fallenworlder 楼主
关于测试项目的补充:如果你想不对代码做任何修改就能编译运行成功的话,还需要下载三楼地址中的op.mpg这个视频,然后把这个视频文件放到/sdcard/ffmpeg4droid/ffmpegtest/文件夹中,然后编译运行就可以播放这个视频了。如果编译成功,运行出错闪退,查看/sdcard/ffmpeg4droid/ffmpegtest/error.txt中的错误信息。修改代码中的filename变量就可以播放任何视频了。注意:视频没有声音属于正常情况!因为我没有写音频流的代码
2013年09月05日 11点09分 9
怎么写入音频流啊[乖]
2014年08月17日 05点08分
level 9
Fallenworlder 楼主
好了发完了,吧主求精
2013年09月05日 12点09分 10
level 9
帮顶,留名
2013年09月05日 13点09分 11
level 9
Fallenworlder 楼主
有问题可以在楼下回复
2013年09月05日 14点09分 12
level 9
顶一下…
2013年09月05日 14点09分 13
level 12
跪大神......
2013年09月05日 15点09分 15
level 12
支持
2013年09月07日 01点09分 17
level 9
libav.....放av的吗?adult video。。。。
2013年09月07日 06点09分 18
无聊
2014年04月10日 15点04分
level 10
大神请看出现这种情况是怎么回事[汗]
2013年12月02日 05点12分 19
四楼楼中楼说的步骤做了没
2013年12月02日 11点12分
回复 Fallenworlder :做了。。[汗]。。
2013年12月02日 23点12分
level 12
mark
2013年12月02日 13点12分 20
level 12
SDL2.0的mixer目前播放不了MP3,官方说是bug,只能先用这个解码了
2014年03月11日 12点03分 21
这是啥时候的老物了..
2014年03月11日 14点03分
level 13
哇哦!
2014年03月11日 13点03分 22
1 2 尾页