OSDN Git Service

Merge branch 'jb-x86' of https://github.com/omxcodec/stagefright-plugins into jb-x86
[android-x86/external-stagefright-plugins.git] / README
1 ================================================================================
2 Stagefright Plugins for Android
3 ================================================================================
4
5 1. Enhance the Android multimedia framework providing additional Plugins for
6    user interaction
7 2. FFmpeg provides demuxers and av codecs;
8 3. FFmpegExtractor is a extractor plugin.
9 4. libstagefright_soft_ffmpegvdec plugin is video decoder
10 5. libstagefright_soft_ffmpegadec plugin is audio decoder
11
12 ================================================================================
13 Why is named nam[NamExtractor]?
14 ================================================================================
15
16 Namtso, or Lake Nam, is one of the three holy lakes in Tibet Autonomous Region
17 and should not be missed by any traveler to Tibet. In Tibetan, Namtso means
18 "Heavenly Lake." It is famous for its high altitude and imposing scenery.
19
20 I used to travel there in 2011 Sep.
21
22 ================================================================================
23 Requirements
24 ================================================================================
25
26 1. android_frameworks_native:
27 https://github.com/omxcodec/android_frameworks_native.git
28 branch: cm_maguro-10.1
29
30 2. android_frameworks_av:
31 https://github.com/omxcodec/android_frameworks_av.git
32 branch: cm_maguro-10.1
33
34 3. android_external_ffmpeg
35 git@github.com:omxcodec/android_external_ffmpeg
36 branch: cm_maguro-10.1
37
38 ================================================================================
39 How to build
40 ================================================================================
41
42 1. Get the Source
43    in your "android/external" folder, run:
44    stagefright-plugins(branch: master):
45        git clone git@github.com:omxcodec/stagefright-plugins.git stagefright-plugins
46    ffmpeg(branch: cm_maguro-10.1):
47        git clone git@github.com:omxcodec/android_external_ffmpeg.git ffmpeg -b cm_maguro-10.1
48
49    android_frameworks_native and android_frameworks_av:
50        you should merge my android_frameworks_native(branch: cm_maguro-10.1) and
51    android_frameworks_av(branch: cm_maguro-10.1) code. once you do, you should pay attention to
52    the "USES_NAM" flag, it is only in the "android/frameworks/native" and "android/frameworks/av"
53    directories.
54  
55 2. Compile
56    compile your android source tree again!
57
58 3. Install
59    adb root
60    adb remount
61    adb sync // sync your android build system to your phone or pad
62    reboot   // reboot your phone or pad
63
64 4. Run
65    get test media files:
66        wget http://movies.apple.com/media/us/ipad/2012/tv-spots/apple-ipad-this_good-us-20120307_848x480.mov
67        wget http://movies.apple.com/media/us/ipad/2012/80ba527a-1a34-4f70-aae8-14f87ab76eea/tours/apple-ipad-feature-us-20120307_848x480.mp4
68        wget http://ftp.kw.bbc.co.uk/hevc/hm-10.0-anchors/bitstreams/i_main/BQMall_832x480_60_qp22.bin
69
70    let us suppose your media files locate at "/sdcard/Movies/" folder.
71    one console window, you should run:
72        adb logcat -c  //clears (flushes) the entire log and exits.
73        adb logcat
74    and other cosole window, you should run:
75    test FFmpegExtractor plugins:
76        adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-this_good-us-20120307_848x480.mov -t video/*
77        adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-feature-us-20120307_848x480.mp4 -t video/*
78    test SoftFFmpegVideo decoder plugin:
79        cd android/external/stagefright-plugins/tools folder, run:
80        adb root
81        ./install // install my scripts
82        adb root && adb shell set-vdec-sw1 // let omxcodec choose software decoder
83        adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-this_good-us-20120307_848x480.mov -t video/*
84        adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-feature-us-20120307_848x480.mp4 -t video/*
85
86    test HEVC(H.265) decoder:
87        cd android/external/stagefright-plugins/tools folder, run:
88        adb root
89        ./install // install my scripts
90        adb root && adb shell set-vdec-drop // disable drop video frames
91            adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/BQMall_832x480_60_qp22.bin -t video/*
92
93    run it and enjoy!
94
95 ================================================================================
96 Features
97 ================================================================================
98 Input formats:
99     MP4 / MOV / 3GP
100     TS / PS
101     AVI
102     ASF / WMV / WMA
103     Matroska (MKV)
104     Real(RM,RMVB)
105     WAV
106     FLV
107     SWF
108     APE
109     DTS
110     FLAC
111     WAV
112     OGG
113     Raw HEVC(H.265) bitstreams
114
115 Video decoders:
116     MPEG-1/2
117     MPEG-4
118     H.263
119     H.264 / MPEG-4 AVC
120     WMV 1/2
121     WMV 3 / WMV-9 / VC-1
122     RV (Real Video)
123     VP8
124     FLV1
125     DIVX
126     HEVC(H.265)
127
128 Audio decoder:
129     MP2 (MPEG Layer 2)
130     MP3 (MPEG Layer 3)
131     AAC (MPEG-4 part3)
132     AC3
133     WMA 1/2
134     WMA 3
135     RA (Real Audio)
136     APE
137     DTS
138     FLAC
139     VORBIS
140     
141 ================================================================================
142 Known issues
143 ================================================================================
144 1. some .mov movies do not av resync when seeking
145 2. some video stream ended while seeking
146 3. more video and audio codecs codec to be integrated
147 4. more formats to be integrated
148
149 If you need help with the library, or just want to discuss nam related issues, 
150 you can contact me: Michael Chen (omxcodec@gmail.com)