第一个问题:
1 2 3 4 |
error: undefined reference to 'av_register_all()' error: undefined reference to 'avcodec_register_all()' error: undefined reference to 'avformat_network_init()' ^^^^^^^^^^ |
这类错误,解决方法:继续阅读
原创文章,转载请注明: 转载自贝壳博客
根据上一篇交叉编译支持多线程的Android版X264库
编译出了armv7 neon指令优化并开启多线程的x264执行程序
结果怎么样呢
测试环境:
MT6589, 联发科的4核处理器,比红米手机 MT6589T在CPU频率上低一点,这款是1.2GHz的继续阅读
原创文章,转载请注明: 转载自贝壳博客
本文链接地址: Android环境 多核CPU x264编码性能测试
第一步,制作独立交叉编译链,我使用ndkr9制作的, 使用API 9平台,gcc4.6
进入ndk目录,执行
1 |
$ ./build/tools/make-standalone-toolchain.sh --platform=android-9 --install-dir=/home/aliang/arm-linux-androideabi |
第二部,修改x264的configure继续阅读
原创文章,转载请注明: 转载自贝壳博客
本文链接地址: 交叉编译支持多线程的Android版X264库
之前有个基于java和jni共同实现的版本,juv需要授权,语音数据在java层和jni层不停互转。
这个版本,完全在jni层实现,java只处理方法调用和事件回调。
OpenSL ES,从API 9开始支持的技术,通过这个标准,Android已经完全可以在native层采集和播放音频。继续阅读
原创文章,转载请注明: 转载自贝壳博客
今天解决了一个需求,通过TCP拉取数据包后按一个私有协议解包封包后得到标准H264.
按以前的方法,在已知高宽的情况下手动注册AVCodecContext,填充AVFrame,解码。。。。 非常繁琐,如果连高宽都不确定的话 :<
但仔细想想这种没有封入容器的裸数据如果是一个文件,据依然可以通过file协议使用avformat_open_input打开并自动解析等。
那么这种场景完全可以用管道来代替,果然ffmpeg是支持pipe的。
我的试验环境是Android,ffmpeg版本1.0.6, NDK8d
流程如下
创建有名管道继续阅读
原创文章,转载请注明: 转载自贝壳博客
本文链接地址: 使用FFmpeg解码私有传输协议标准H264流
之前在公司一个项目中一直使用 http://www.cnblogs.com/mcodec/articles/1780598.html 提供的H264 Android解码库
但是经常崩溃,最终定位到mc_dir_part函数中的
1 |
qpix_op[luma_xy](dest_y, src_y, s->linesize); //FIXME try variable height perhaps? |
尝试了一晚上也没修复好这个问题,于是打算自己移植FFmpeg
mcodec 兄所做的工作是将H264解码的代码从ffmpeg中提取出来做了深度优化,而本人对FFmpeg?还不甚了解,无法做到提取,而且新版本相互依赖太重,于是将整个FFmpeg?移植过来使用。
在配置时关闭了所有特性,只开启了所需的H264解码库,arm汇编特性,其余全部关闭。
以下是我的配置代码继续阅读
原创文章,转载请注明: 转载自贝壳博客
本文链接地址: 使用Android NDK8 移植FFmpeg 0.11.1
本例严重过期,并且使用了不开源且收费的库
请尝试最新开源版:
Android基于OpenSL ES,Speex,RTMP的Voip客户端实现
iOS版:
iOS基于Audio Queues,Speex,Rtmp的Voip客户端
—————-仅供参考请勿用于项目———————–
先说下实现原理,手机采集到语音后进过Speex编码,通过juv以直播形式发布自己的语音流到red5,也是通过juv播放对方的直播流,经过Speex解码后输出到扬声器,如下图:
Android端采集编码和解码播放Speex,参考android-recorder,至于他用的red5客户端,看了下,没看明白。。。
核心代码如下:
1 |
public class AudioCenter extends AbstractMicrophone |
原创文章,转载请注明: 转载自贝壳博客
自kernel.org遭受攻击,android.git.kernel.org梦见了电子羊,到kernel.org linux.com?linux.org 停机维护,android.git.kernel.org直接连域名解析都关了
这导致repo拼命想连接android.git.kernel.org,然后一次一次失败
但是repo还得继续用啊,默认情况下 都是从 android.git.kernel.org ?下载全套的repo工具集到.repo/repo目录下,再用这套工具集去下载git服务器上的源码库。
网上有个办法 http://carltao.blog.51cto.com/856514/667469 但我确实没找出作者修改了什么地方
于是继续google,总算被我找到完美的解决办法了继续阅读
原创文章,转载请注明: 转载自贝壳博客
一台老爷机 ASUS s200 详细资料看这里
内存大点256的 硬盘40G 够老爷了吧? 装个Android发挥余热
原创文章,转载请注明: 转载自贝壳博客
本文链接地址: ASUS S200 上安装 Android X86 经历