OSDN Git Service

add chinese README
authorMichael Chen <omxcodec@gmail.com>
Tue, 23 Apr 2013 15:08:42 +0000 (23:08 +0800)
committerMichael Chen <omxcodec@gmail.com>
Tue, 23 Apr 2013 15:08:42 +0000 (23:08 +0800)
README.cn [new file with mode: 0644]

diff --git a/README.cn b/README.cn
new file mode 100644 (file)
index 0000000..9779066
--- /dev/null
+++ b/README.cn
@@ -0,0 +1,156 @@
+================================================================================
+Stagefright插件
+================================================================================
+
+1. 基于Android多媒体框架提供额外的插件给用户集成
+2. FFmpeg提供demux和音视频解码器
+3. NamExtractor属于Stagefright的一个demux(extractor)插件,它将随着Stagefright的
+   启动而加载。NamExtractor后续会加载FFmpegExtractor插件做真正的demux操作,它将
+   Stagefright的智能指针DataSource传给FFmpeg,FFmpeg基于此指针封装URLProtocol,
+   便于兼容FFmpeg本身的框架,同时,Stagefright的所有Source都可以这样导入FFmpeg
+   便于扩展。FFmpegExtractor是参考ffmpeg官方代码ffplay.c文件实现
+4. libstagefright_soft_ffmpegvdec是一个视频解码器插件
+5. libstagefright_soft_ffmpegadec是一个音频解码器插件
+6. 任何FFmpegExtractor demux后的视频都优先选用视频硬件解码,充分发挥硬件特性
+
+================================================================================
+为何起名为nam[NamExtractor]?
+================================================================================
+
+纳木措是西藏三大圣湖之一,是每一个去西藏的旅行者不容错过的景点。在藏语中,
+"纳木措"是“天上之湖”的意思。纳木错以其高海拔和令人窒息的美景而声名远扬。
+
+我曾经于2011年9月到过此湖,于是便起此名
+
+================================================================================
+需要条件
+================================================================================
+
+CyanogenMod 9.x (Ice Cream Sandwich)
+http://wiki.cyanogenmod.com/wiki/Galaxy_Nexus_(GSM):_Compile_CyanogenMod_(Linux)
+
+FFMPEG-1.0 release
+http://ffmpeg.org
+ref: git://android.git.linaro.org/platform/external/ffmpeg.git
+
+================================================================================
+如何编译
+================================================================================
+
+1. 获取源码
+   从CyanogenMod git仓库中克隆cm-9.1.0代码
+       repo init -u git://github.com/CyanogenMod/android.git -b cm-9.1.0
+   请参考: http://wiki.cyanogenmod.com/wiki/Galaxy_Nexus_(GSM):_Compile_CyanogenMod_(Linux)
+
+   从我的 omxcodec{github} 仓库中克隆代码!
+   进入你的Android源码目录 "android/external", 运行如下命令:
+   stagefright-plugins:
+       git clone git@github.com:omxcodec/stagefright-plugins.git stagefright-plugins
+   ffmpeg:
+       git clone git@github.com:omxcodec/android_external_ffmpeg.git ffmpeg -b omxcodec-1.0
+
+   进入"android/external" 目录, 运行如下命令:
+   cp stagefright-plugins/repo/local_manifest.xml ../.repo
+   cd ..      // 进入Android源码根目录
+   repo sync  // 同步我的 "frameworks_base" 代码!
+
+   这里的"repo sync"命令负责同步我的 "frameworks_base"仓库! 当然,你也可以对比我的代码,
+   通过对比,你也很容易合并入我修改部分的代码,因为,修改部分很少,而且非常有规律,需要
+   使用"USES_NAM"这个宏定义区分原有代码。修改的代码仅仅在"android/frameworks/base"目录
+2. 编译
+   Android系统:
+   增加"USES_NAM"标识到Android编译系统中的编译参数"COMMON_GLOBAL_CFLAGS"
+       编辑 vendor/samsung/maguro/BoardConfigVendor.mk 增加如下几行
+           USES_NAM := true
+           ifdef USES_NAM
+               COMMON_GLOBAL_CFLAGS += -DUSES_NAM
+           endif
+
+   ffmpeg:
+       进入android/external/ffmpeg
+       mm ffmpeg  // 不是命令"mm", FIXME
+
+   stagefright-plugins:
+       进入android/external/stagefright-plugins
+       mm
+
+3. 安装
+   adb root
+   adb remount
+   adb sync // 与手机或者平板同步系统,一般系统会选择更改的文件或库进行同步
+   reboot   // 重启你的手机或者平板
+
+4. 运行
+   获取测试文件:
+       wget http://movies.apple.com/media/us/ipad/2012/tv-spots/apple-ipad-this_good-us-20120307_848x480.mov
+       wget http://movies.apple.com/media/us/ipad/2012/80ba527a-1a34-4f70-aae8-14f87ab76eea/tours/apple-ipad-feature-us-20120307_848x480.mp4
+
+   假设你视频测试文件放在目录 "/sdcard/Movies/".
+   开启一个linux终端,运行:
+       adb logcat -c //清空先前所有的log
+       adb logcat
+   开启另外一个linux终端, 分情况运行:
+   测试 NamExtractor 和 FFmpegExtractor 插件:
+       adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-this_good-us-20120307_848x480.mov -t video/*
+       adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-feature-us-20120307_848x480.mp4 -t video/*
+   测试 SoftFFmpegVideo 视频解码器插件:
+       进入目录android/external/stagefright-plugins/tools, 运行:
+       adb root
+       ./install // 安装测试脚本
+       adb root && adb shell set-vdec-sw1 // 让Stagefright优先选用视频软件解码器
+       adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-this_good-us-20120307_848x480.mov -t video/*
+       adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-feature-us-20120307_848x480.mp4 -t video/*
+
+   希望你一切顺利
+
+================================================================================
+功能
+================================================================================
+输入格式:
+    MP4 / MOV / 3GP
+    TS / PS
+    AVI
+    ASF / WMV / WMA
+    Matroska (MKV)
+    Real(RM,RMVB)
+    WAV
+    FLV(H.264+AAC)
+
+视频格式:
+    MPEG-1/2
+    MPEG-4
+    H.263
+    H.264 / MPEG-4 AVC
+    WMV 1/2
+    WMV 3 / WMV-9 / VC-1
+    Real Video
+
+音频格式:
+    MPEG Layer 1/2
+    MP3 - MPEG Layer 3
+    AAC - MPEG-4 part3
+    AC3 - A/52 (Dolby Digital)
+    WMA 1/2
+    WMA 3
+    Real Audio
+    AMR (3GPP)
+    APE
+    DTS
+    FLAC
+    
+================================================================================
+存在问题
+================================================================================
+1. 一些mov文件,当seek后,音视频不能迅速同步
+2. 一些文件正在seek时,退出程序
+3. 需要集成更多的音视频编解码器
+4. 更多集成更多的文件格式解析器
+
+如果这个项目对您有帮助,或者您想讨论跟此相关相关的话题,请联系本人:
+Michael Chen (omxcodec@gmail.com)
+
+================================================================================
+一些视频采样测试文件或链接
+================================================================================
+1. http://www.flv.cn