GithubHelp home page GithubHelp logo

isabella232 / android_external_stagefright-plugins Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cyanogenmod/android_external_stagefright-plugins

0.0 0.0 0.0 13 MB

License: Apache License 2.0

Shell 0.05% C++ 95.19% C 1.98% Makefile 2.79%

android_external_stagefright-plugins's Introduction

================================================================================
Stagefright Plugins for Android
================================================================================

1. Enhance the Android multimedia framework providing additional Plugins for
   user interaction
2. FFmpeg provides demuxers and av codecs;
3. FFmpegExtractor is a extractor plugin.
4. libstagefright_soft_ffmpegvdec plugin is video decoder
5. libstagefright_soft_ffmpegadec plugin is audio decoder

================================================================================
Why is named nam[NamExtractor]?
================================================================================

Namtso, or Lake Nam, is one of the three holy lakes in Tibet Autonomous Region
and should not be missed by any traveler to Tibet. In Tibetan, Namtso means
"Heavenly Lake." It is famous for its high altitude and imposing scenery.

I used to travel there in 2011 Sep.

================================================================================
Requirements
================================================================================

1. android_frameworks_native:
https://github.com/omxcodec/android_frameworks_native.git
branch: cm_maguro-10.1

2. android_frameworks_av:
https://github.com/omxcodec/android_frameworks_av.git
branch: cm_maguro-10.1

3. android_external_ffmpeg
[email protected]:omxcodec/android_external_ffmpeg
branch: cm_maguro-10.1

================================================================================
How to build
================================================================================

1. Get the Source
   in your "android/external" folder, run:
   stagefright-plugins(branch: master):
       git clone [email protected]:omxcodec/stagefright-plugins.git stagefright-plugins
   ffmpeg(branch: cm_maguro-10.1):
       git clone [email protected]:omxcodec/android_external_ffmpeg.git ffmpeg -b cm_maguro-10.1

   android_frameworks_native and android_frameworks_av:
       you should merge my android_frameworks_native(branch: cm_maguro-10.1) and
   android_frameworks_av(branch: cm_maguro-10.1) code. once you do, you should pay attention to
   the "USES_NAM" flag, it is only in the "android/frameworks/native" and "android/frameworks/av"
   directories.
 
2. Compile
   add USES_NAM flag to COMMON_GLOBAL_CFLAGS in your android build system(e.g. my device: maguro)
   vi vendor/samsung/maguro/BoardConfigVendor.mk and add this line to it
       COMMON_GLOBAL_CFLAGS += -DUSES_NAM
   then compile your android source tree again!

3. Install
   adb root
   adb remount
   adb sync // sync your android build system to your phone or pad
   reboot   // reboot your phone or pad

4. Run
   get test media files:
       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
       wget http://ftp.kw.bbc.co.uk/hevc/hm-10.0-anchors/bitstreams/i_main/BQMall_832x480_60_qp22.bin

   let us suppose your media files locate at "/sdcard/Movies/" folder.
   one console window, you should run:
       adb logcat -c  //clears (flushes) the entire log and exits.
       adb logcat
   and other cosole window, you should run:
   test FFmpegExtractor plugins:
       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/*
   test SoftFFmpegVideo decoder plugin:
       cd android/external/stagefright-plugins/tools folder, run:
       adb root
       ./install // install my scripts
       adb root && adb shell set-vdec-sw1 // let omxcodec choose software decoder
       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/*

   test HEVC(H.265) decoder:
       cd android/external/stagefright-plugins/tools folder, run:
       adb root
       ./install // install my scripts
       adb root && adb shell set-vdec-drop // disable drop video frames
	   adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/BQMall_832x480_60_qp22.bin -t video/*

   run it and enjoy!

================================================================================
Features
================================================================================
Input formats:
    MP4 / MOV / 3GP
    TS / PS
    AVI
    ASF / WMV / WMA
    Matroska (MKV)
    Real(RM,RMVB)
    WAV
    FLV
    SWF
    APE
    DTS
    FLAC
    WAV
    OGG
    Raw HEVC(H.265) bitstreams

Video decoders:
    MPEG-1/2
    MPEG-4
    H.263
    H.264 / MPEG-4 AVC
    WMV 1/2
    WMV 3 / WMV-9 / VC-1
    RV (Real Video)
    VP8
    FLV1
    DIVX
    HEVC(H.265)

Audio decoder:
    MP2 (MPEG Layer 2)
    MP3 (MPEG Layer 3)
    AAC (MPEG-4 part3)
    AC3
    WMA 1/2
    WMA 3
    RA (Real Audio)
    APE
    DTS
    FLAC
    VORBIS
    
================================================================================
Known issues
================================================================================
1. some .mov movies do not av resync when seeking
2. some video stream ended while seeking
3. more video and audio codecs codec to be integrated
4. more formats to be integrated

If you need help with the library, or just want to discuss nam related issues, 
you can contact me: Michael Chen ([email protected])

android_external_stagefright-plugins's People

Contributors

aftershock009 avatar crpalmer avatar cwhuang avatar cyanogen avatar defer avatar intervigilium avatar jcsullins avatar lucize avatar omxcodec avatar pawitp avatar rmcc avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.