Android RTMP Live Encoder SDK

实时的摄像头采集,实时编码,实时发布到流媒体服务器,进行视频直播。视频采用H.264,音频采用AAC,可根据需求发布480×360,320×240,240×180分辨率的视频。可控帧率,码率。320×240分辨率@10fps 中等质量,码率为160kbps左右,非恒定。cpu占用30%左右。
客户端使用Flash播放,跨平台兼容性好。
也可配合使用Android iOS SDK开发手机客户端。

  • 音频编码器:AAC,nellymoser,speex
  • 视频解码器: H.264
  • 协议:RTMP,RTMPT
  • ARMV7-A Neon加速
  • 极速精简内核,so库仅2.0M

前往下载:http://www.nodemedia.cn/zh/client/NodeMediaClient-Android/

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: Android RTMP Live Encoder SDK

Android RTMP Live Player SDK

RTMP协议的实时视频播放客户端开发库,jni开发,java接口,可配合Adobe Flash Media Live Encoder 3.2或Android iOS直播发布端SDK进行实时视频直播。

  • 音频解码器:AAC,mp3,nellymoser,speex
  • 视频解码器: H.264,flv
  • 协议:RTMP,RTMPT
  • ARMV7-A Neon加速
  • 极速精简内核,so库仅1.4M

前往下载:http://www.nodemedia.cn/zh/client/NodeMediaClient-Android/

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: Android RTMP Live Player SDK

Android 4.0以上系统硬件解码RTMP流的一种方式

关于Android5.0开放的Native-codec测试一文中有提到4.0通过OpenMAX AL接口实现硬解码。可以先从分析native-media这个sample开始,可以在ndk目录中找到。

  1. 首先调用Java_com_example_nativemedia_NativeMedia_createEngine ?创建引擎和output mix 对象。
  2. Java_com_example_nativemedia_NativeMedia_setSurface 将java层的Surface对象转为NativeWindow对象用于视频显示
  3. Java_com_example_nativemedia_NativeMedia_createStreamingMediaPlayer ?初始化data source、?audio sink、image video sink、media player等对象 ,注册AndroidBufferQueueCallback?StreamChangeCallback两个回调,调用enqueueInitialBuffers预填充部分初始数据。
  4. enqueueInitialBuffers中通过读取ts文件获取足够量的buffer用于初始化
  5. AndroidBufferQueueCallback 的注释:?register the callback from which OpenMAX AL can retrieve the data to play,程序回调这里说明可以读buffer开始播放了

继续阅读“Android 4.0以上系统硬件解码RTMP流的一种方式”

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: Android 4.0以上系统硬件解码RTMP流的一种方式

来晚了的 NativeCodec

久了没更新NDK,今天下载了r10d,惊讶的发现多了个native-codec这个sample。
应该就是API 16那个JAVA版MediaCodec的native版
限制就是 最低 api 21 就是Android 5.0
这限制基本上近期都没戏了,先去刷个5.0的系统再来测试。

=============2015年2月10日,测试结果来了======================


继续阅读“来晚了的 NativeCodec”

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: 来晚了的 NativeCodec

转一段 Xcode6 下编译x264的脚本

下载最新x264源码 ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
下载gas-preprocessor https://github.com/libav/gas-preprocessor 并copy到 /usr/local/bin/gas-preprocessor.pl
继续阅读“转一段 Xcode6 下编译x264的脚本”

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: 转一段 Xcode6 下编译x264的脚本

windows下全志 A20 Android script.fex 调试工具

最近在做全志A20的Android系统开发,经常需要调试script.fex文件中的参数。
会经常用到sunxi-tools中的几个工具

后来需要在windows下工作 切换环境很麻烦 所以用cygwin编译了sunxi-tools 并写了几个脚本文件,方便多了

步骤: 继续阅读“windows下全志 A20 Android script.fex 调试工具”

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: windows下全志 A20 Android script.fex 调试工具

使用 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”

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: 使用 NDK 编译 libyuv

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编码实时视频参数设置与优化”

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: Android,IOS平台上x264编码实时视频参数设置与优化

开启neon编译iOS版X264

我的测试环境 Xcode 4.6 iPod Touch 4

设置环境变量

配置

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

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: 开启neon编译iOS版X264