使用 NDK 编译 libyuv

官方源码:http://code.google.com/p/libyuv/
简介:

YUV层的缩放,色彩空间转换(nv21/nv12 to i420,i420 to rgb565/rgb888),针对ARMv7使用NEON指令集优化.实际项目使用中测试,缩放/转换性能秒杀ffmpeg的libswscale
按官方的编译方法太麻烦,需要装depot tools,ninja
这里直接用android make 方便的多.
继续阅读“使用 NDK 编译 libyuv”

支持H.264,Speex编码的Red5 Publisher

安装配置Red5 Server 1.0 RC1 (一)中提到过一个Publisher 工具,非常好用。但是Red5官方一直没更新,只能使用flv和nellymoser编码。而现在大多使用H.264和Speex了。
近期为了方便调试,修改了下源码,可以在https://github.com/illuspas/Red5-Publisher找到。
直接使用Flash builder 4.6导入项目即可。
也可以直接下载release.zip使用
直接打开:http://www.nodemedia.cn/uploads/files/Red5-Publisher.swf

使用FFmpeg连接rtmp时发送自定义AMF DATA

在使用flash cs/builder开发rtmp视频应用时,我们时常会在nc.connect的时候再传递一个对象作为连接信息发送给服务端。用于验证,确认连接用户,获取用户信息等等操作。
当我们使用ffmpeg来开发android,ios,pc版的rtmp应用时,已经为我们提供了非常方便的传参来实现。
先来看源代码:定位到libavformat/rtmpproto.c文件 继续阅读“使用FFmpeg连接rtmp时发送自定义AMF DATA”

Android,IOS平台上x264编码实时视频参数设置与优化

移动设备上的H.264实时视频编码,需要考虑到cpu占用与带宽这2个限制因素,使用X264软编码,开启neon指令集优化,即使是在arm处理器下,依然可以通过优化配置达到满意的性能.
以下测试环境 一段352×288@15fps的视频,模拟摄像头采集到的数据。ipod touch4 和昨天编译出的X264:
Touch-future:~ root# ./x264 -o video_1.h264 video_1.y4m –profile baseline –preset ultrafast –fps 15

baseline
ultrafast
encoded 467 frames, 48.17 fps, 865.45 kb/s 3368054(压缩后的文件大小,单位字节) 继续阅读“Android,IOS平台上x264编码实时视频参数设置与优化”

开启neon编译iOS版X264

我的测试环境 Xcode 4.6 iPod Touch 4

设置环境变量

配置

编译 继续阅读“开启neon编译iOS版X264”

使用C++进行Android NDK开发,引入FFmpeg头文件的注意事项

第一个问题:

这类错误,解决方法: 继续阅读“使用C++进行Android NDK开发,引入FFmpeg头文件的注意事项”

Android环境 多核CPU x264编码性能测试

根据上一篇交叉编译支持多线程的Android版X264库
编译出了armv7 neon指令优化并开启多线程的x264执行程序
结果怎么样呢
测试环境:
MT6589, 联发科的4核处理器,比红米手机 MT6589T在CPU频率上低一点,这款是1.2GHz的 继续阅读“Android环境 多核CPU x264编码性能测试”

交叉编译支持多线程的Android版X264库

第一步,制作独立交叉编译链,我使用ndkr9制作的, 使用API 9平台,gcc4.6
进入ndk目录,执行

第二部,修改x264的configure 继续阅读“交叉编译支持多线程的Android版X264库”

FFmpeg 生成.h264文件

今天编译了raspberry pi 的一个例子hello_video
可以解码.h264文件输出到显示器
使用ffmpeg生成这种无容器的 raw H.264格式

就是将mp4这类 length prefixed mode 转为 start code prefixed mode

另外,pi的硬解码性能确实不错,播放1080P的视频非常流畅,GPU加速,几乎不占CPU