1 ================================================================================
2 Stagefright Plugins for Android
3 ================================================================================
5 1. Enhance the Android multimedia framework providing additional Plugins for
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
12 ================================================================================
13 Why is named nam[NamExtractor]?
14 ================================================================================
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.
20 I used to travel there in 2011 Sep.
22 ================================================================================
24 ================================================================================
26 1. android_frameworks_native:
27 https://github.com/omxcodec/android_frameworks_native.git
28 branch: cm_maguro-10.1
30 2. android_frameworks_av:
31 https://github.com/omxcodec/android_frameworks_av.git
32 branch: cm_maguro-10.1
34 3. android_external_ffmpeg
35 git@github.com:omxcodec/android_external_ffmpeg
36 branch: cm_maguro-10.1
38 ================================================================================
40 ================================================================================
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
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"
56 add USES_NAM flag to COMMON_GLOBAL_CFLAGS in your android build system(e.g. my device: maguro)
57 vi vendor/samsung/maguro/BoardConfigVendor.mk and add this line to it
58 COMMON_GLOBAL_CFLAGS += -DUSES_NAM
59 then compile your android source tree again!
64 adb sync // sync your android build system to your phone or pad
65 reboot // reboot your phone or pad
69 wget http://movies.apple.com/media/us/ipad/2012/tv-spots/apple-ipad-this_good-us-20120307_848x480.mov
70 wget http://movies.apple.com/media/us/ipad/2012/80ba527a-1a34-4f70-aae8-14f87ab76eea/tours/apple-ipad-feature-us-20120307_848x480.mp4
71 wget http://ftp.kw.bbc.co.uk/hevc/hm-10.0-anchors/bitstreams/i_main/BQMall_832x480_60_qp22.bin
73 let us suppose your media files locate at "/sdcard/Movies/" folder.
74 one console window, you should run:
75 adb logcat -c //clears (flushes) the entire log and exits.
77 and other cosole window, you should run:
78 test FFmpegExtractor plugins:
79 adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-this_good-us-20120307_848x480.mov -t video/*
80 adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-feature-us-20120307_848x480.mp4 -t video/*
81 test SoftFFmpegVideo decoder plugin:
82 cd android/external/stagefright-plugins/tools folder, run:
84 ./install // install my scripts
85 adb root && adb shell set-vdec-sw1 // let omxcodec choose software decoder
86 adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-this_good-us-20120307_848x480.mov -t video/*
87 adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-feature-us-20120307_848x480.mp4 -t video/*
89 test HEVC(H.265) decoder:
90 cd android/external/stagefright-plugins/tools folder, run:
92 ./install // install my scripts
93 adb root && adb shell set-vdec-drop // disable drop video frames
94 adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/BQMall_832x480_60_qp22.bin -t video/*
98 ================================================================================
100 ================================================================================
116 Raw HEVC(H.265) bitstreams
144 ================================================================================
146 ================================================================================
147 1. some .mov movies do not av resync when seeking
148 2. some video stream ended while seeking
149 3. more video and audio codecs codec to be integrated
150 4. more formats to be integrated
152 If you need help with the library, or just want to discuss nam related issues,
153 you can contact me: Michael Chen (omxcodec@gmail.com)