android 編譯mp4v2 2.0.0產生動態庫

來源:互聯網
上載者:User

最近要錄製h264+aac的mp4視頻,使用mp4v2來實現,下面就是編譯的方法

1、下載源碼,到官網http://code.google.com/p/mp4v2/downloads/list 下載,現在最新的是mp4v2 2.0.0

2、解壓下載的mp4v2-2.0.0.tar.bz2,然後進入mp4v2-2.0.0,將裡面的檔案以及檔案夾拷貝的新建立的jni目錄中,目錄結構例如:/home/zhangjie/mp4v2-2.0.0/jni

3、進入jni目錄,將include目錄中的mp4v2檔案夾拷貝出來放到jni目錄下面,例如:/home/zhangjie/mp4v2-2.0.0/jni/mp4v2

4、在jni目錄下建立Application.mk,內容如下:

APP_ABI := armeabiAPP_PLATFORM := android-8APP_STL := stlport_staticAPP_CPPFLAGS += -fno-rtti

5、建立Android.mk檔案,內容如下:

LOCAL_PATH:=$(call my-dir)include $(CLEAR_VARS)NDK=/opt/android-ndk-r8dLOCAL_SRC_FILES:= \src/3gp.cpp src/atom_ac3.cpp \src/atom_amr.cpp src/atom_avc1.cpp src/atom_avcC.cpp \src/atom_chpl.cpp src/atom_colr.cpp src/atom_d263.cpp \src/atom_dac3.cpp src/atom_damr.cpp src/atom_dref.cpp \src/atom_elst.cpp src/atom_enca.cpp src/atom_encv.cpp \src/atom_free.cpp src/atom_ftyp.cpp src/atom_ftab.cpp \src/atom_gmin.cpp src/atom_hdlr.cpp src/atom_hinf.cpp \src/atom_hnti.cpp src/atom_href.cpp src/atom_mdat.cpp \src/atom_mdhd.cpp src/atom_meta.cpp src/atom_mp4s.cpp \src/atom_mp4v.cpp src/atom_mvhd.cpp src/atom_nmhd.cpp \src/atom_ohdr.cpp src/atom_pasp.cpp src/atom_root.cpp \src/atom_rtp.cpp src/atom_s263.cpp src/atom_sdp.cpp \src/atom_sdtp.cpp src/atom_smi.cpp src/atom_sound.cpp \src/atom_standard.cpp src/atom_stbl.cpp src/atom_stdp.cpp \src/atom_stsc.cpp src/atom_stsd.cpp src/atom_stsz.cpp \src/atom_stz2.cpp src/atom_text.cpp src/atom_tfhd.cpp \src/atom_tkhd.cpp src/atom_treftype.cpp src/atom_trun.cpp \src/atom_tx3g.cpp src/atom_udta.cpp src/atom_url.cpp \src/atom_urn.cpp src/atom_uuid.cpp src/atom_video.cpp \src/atom_vmhd.cpp src/atoms.h src/cmeta.cpp \src/descriptors.cpp src/descriptors.h src/exception.cpp \src/exception.h src/enum.h src/enum.tcc src/impl.h \src/isma.cpp src/log.h src/log.cpp src/mp4.cpp src/mp4array.h \src/mp4atom.cpp src/mp4atom.h src/mp4container.cpp \src/mp4container.h src/mp4descriptor.cpp src/mp4descriptor.h \src/mp4file.cpp src/mp4file.h src/mp4file_io.cpp \src/mp4info.cpp src/mp4property.cpp src/mp4property.h \src/mp4track.cpp src/mp4track.h src/mp4util.cpp src/mp4util.h \src/ocidescriptors.cpp src/ocidescriptors.h src/odcommands.cpp \src/odcommands.h src/qosqualifiers.cpp src/qosqualifiers.h \src/rtphint.cpp src/rtphint.h src/src.h src/text.cpp \src/text.h src/util.h src/bmff/bmff.h src/bmff/impl.h \src/bmff/typebmff.cpp src/bmff/typebmff.h \src/itmf/CoverArtBox.cpp src/itmf/CoverArtBox.h \src/itmf/Tags.cpp src/itmf/Tags.h src/itmf/generic.cpp \src/itmf/generic.h src/itmf/impl.h src/itmf/itmf.h \src/itmf/type.cpp src/itmf/type.h \src/qtff/ColorParameterBox.cpp src/qtff/ColorParameterBox.h \src/qtff/PictureAspectRatioBox.cpp \src/qtff/PictureAspectRatioBox.h src/qtff/coding.cpp \src/qtff/coding.h src/qtff/impl.h src/qtff/qtff.h \libplatform/endian.h libplatform/impl.h \libplatform/io/File.cpp libplatform/io/File.h \libplatform/io/FileSystem.cpp libplatform/io/FileSystem.h \libplatform/number/random.h libplatform/platform.h \libplatform/platform_base.h libplatform/platform_posix.h \libplatform/process/process.h \libplatform/prog/option.cpp libplatform/prog/option.h \libplatform/sys/error.cpp libplatform/sys/error.h \libplatform/time/time.cpp libplatform/time/time.h \libplatform/warning.h libplatform/io/File_posix.cpp \libplatform/io/FileSystem_posix.cpp \libplatform/number/random_posix.cpp \libplatform/process/process_posix.cpp \libplatform/time/time_posix.cpp \libutil/Database.cpp \libutil/Database.h libutil/Timecode.cpp libutil/Timecode.h \libutil/TrackModifier.cpp libutil/TrackModifier.h \libutil/Utility.cpp libutil/Utility.h libutil/crc.cpp \libutil/crc.h libutil/impl.h libutil/other.cpp libutil/other.h \libutil/util.hLOCAL_ARM_MODE := armLOCAL_CFLAGS := -fexceptionsLOCAL_LDFLAGS := \        $(NDK)/sources/cxx-stl/gnu-libstdc++/4.4.3/libs/armeabi-v7a/libsupc++.aLOCAL_LDLIBS := -llogLOCAL_SHARED_LIBRARIES := \    libutils \    libbinder \    libcutilsLOCAL_CXXFLAGS :=-fexceptions -Wno-write-stringsLOCAL_MODULE:= libCameraShootingLOCAL_CPPFLAGS := -O2 -fexceptions -DHAVE_SOCKLEN_T -DHAVE_STRUCT_IOVECLOCAL_MODULE_TAGS := optionalinclude $(BUILD_SHARED_LIBRARY)

6、最後在jni目錄下的終端中輸入ndk-build,結果如下:

root@zhangjie:/home/zhangjie/mp4v2-2.0.0/jni# ndk-buildAndroid NDK: WARNING: Unsupported source file extensions in /home/zhangjie/mp4v2-2.0.0/jni/Android.mk for module CameraShooting    Android NDK:   AppCameraShooting.h src/atoms.h src/descriptors.h src/exception.h src/enum.h src/enum.tcc src/impl.h src/log.h src/mp4array.h src/mp4atom.h src/mp4container.h src/mp4descriptor.h src/mp4file.h src/mp4property.h src/mp4track.h src/mp4util.h src/ocidescriptors.h src/odcommands.h src/qosqualifiers.h src/rtphint.h src/src.h src/text.h src/util.h src/bmff/bmff.h src/bmff/impl.h src/bmff/typebmff.h src/itmf/CoverArtBox.h src/itmf/Tags.h src/itmf/generic.h src/itmf/impl.h src/itmf/itmf.h src/itmf/type.h src/qtff/ColorParameterBox.h src/qtff/PictureAspectRatioBox.h src/qtff/coding.h src/qtff/impl.h src/qtff/qtff.h libplatform/endian.h libplatform/impl.h libplatform/io/File.h libplatform/io/FileSystem.h libplatform/number/random.h libplatform/platform.h libplatform/platform_base.h libplatform/platform_posix.h libplatform/process/process.h libplatform/prog/option.h libplatform/sys/error.h libplatform/time/time.h libplatform/warning.h libutil/Database.h libutil/Timecode.h libutil/TrackModifier.h libutil/Utility.h libutil/crc.h libutil/impl.h libutil/other.h libutil/util.h    Compile++ arm    : CameraShooting <= 3gp.cppCompile++ arm    : CameraShooting <= atom_ac3.cppCompile++ arm    : CameraShooting <= atom_amr.cppCompile++ arm    : CameraShooting <= atom_avc1.cppCompile++ arm    : CameraShooting <= atom_avcC.cppCompile++ arm    : CameraShooting <= atom_chpl.cppCompile++ arm    : CameraShooting <= atom_colr.cppCompile++ arm    : CameraShooting <= atom_d263.cppCompile++ arm    : CameraShooting <= atom_dac3.cppCompile++ arm    : CameraShooting <= atom_damr.cppCompile++ arm    : CameraShooting <= atom_dref.cppCompile++ arm    : CameraShooting <= atom_elst.cppCompile++ arm    : CameraShooting <= atom_enca.cppCompile++ arm    : CameraShooting <= atom_encv.cppCompile++ arm    : CameraShooting <= atom_free.cppCompile++ arm    : CameraShooting <= atom_ftyp.cppCompile++ arm    : CameraShooting <= atom_ftab.cppCompile++ arm    : CameraShooting <= atom_gmin.cppCompile++ arm    : CameraShooting <= atom_hdlr.cppCompile++ arm    : CameraShooting <= atom_hinf.cppCompile++ arm    : CameraShooting <= atom_hnti.cppCompile++ arm    : CameraShooting <= atom_href.cppCompile++ arm    : CameraShooting <= atom_mdat.cppCompile++ arm    : CameraShooting <= atom_mdhd.cppCompile++ arm    : CameraShooting <= atom_meta.cppCompile++ arm    : CameraShooting <= atom_mp4s.cppCompile++ arm    : CameraShooting <= atom_mp4v.cppCompile++ arm    : CameraShooting <= atom_mvhd.cppCompile++ arm    : CameraShooting <= atom_nmhd.cppCompile++ arm    : CameraShooting <= atom_ohdr.cppCompile++ arm    : CameraShooting <= atom_pasp.cppCompile++ arm    : CameraShooting <= atom_root.cppCompile++ arm    : CameraShooting <= atom_rtp.cppCompile++ arm    : CameraShooting <= atom_s263.cppCompile++ arm    : CameraShooting <= atom_sdp.cppCompile++ arm    : CameraShooting <= atom_sdtp.cppCompile++ arm    : CameraShooting <= atom_smi.cppCompile++ arm    : CameraShooting <= atom_sound.cppCompile++ arm    : CameraShooting <= atom_standard.cppCompile++ arm    : CameraShooting <= atom_stbl.cppCompile++ arm    : CameraShooting <= atom_stdp.cppCompile++ arm    : CameraShooting <= atom_stsc.cppCompile++ arm    : CameraShooting <= atom_stsd.cppCompile++ arm    : CameraShooting <= atom_stsz.cppCompile++ arm    : CameraShooting <= atom_stz2.cppCompile++ arm    : CameraShooting <= atom_text.cppCompile++ arm    : CameraShooting <= atom_tfhd.cppCompile++ arm    : CameraShooting <= atom_tkhd.cppCompile++ arm    : CameraShooting <= atom_treftype.cppCompile++ arm    : CameraShooting <= atom_trun.cppCompile++ arm    : CameraShooting <= atom_tx3g.cppCompile++ arm    : CameraShooting <= atom_udta.cppCompile++ arm    : CameraShooting <= atom_url.cppCompile++ arm    : CameraShooting <= atom_urn.cppCompile++ arm    : CameraShooting <= atom_uuid.cppCompile++ arm    : CameraShooting <= atom_video.cppCompile++ arm    : CameraShooting <= atom_vmhd.cppCompile++ arm    : CameraShooting <= cmeta.cppCompile++ arm    : CameraShooting <= descriptors.cppCompile++ arm    : CameraShooting <= exception.cppCompile++ arm    : CameraShooting <= isma.cppCompile++ arm    : CameraShooting <= log.cppCompile++ arm    : CameraShooting <= mp4.cppCompile++ arm    : CameraShooting <= mp4atom.cppCompile++ arm    : CameraShooting <= mp4container.cppCompile++ arm    : CameraShooting <= mp4descriptor.cppCompile++ arm    : CameraShooting <= mp4file.cppCompile++ arm    : CameraShooting <= mp4file_io.cppCompile++ arm    : CameraShooting <= mp4info.cppCompile++ arm    : CameraShooting <= mp4property.cppCompile++ arm    : CameraShooting <= mp4track.cppCompile++ arm    : CameraShooting <= mp4util.cppCompile++ arm    : CameraShooting <= ocidescriptors.cppCompile++ arm    : CameraShooting <= odcommands.cppCompile++ arm    : CameraShooting <= qosqualifiers.cppCompile++ arm    : CameraShooting <= rtphint.cppCompile++ arm    : CameraShooting <= text.cppCompile++ arm    : CameraShooting <= typebmff.cppCompile++ arm    : CameraShooting <= CoverArtBox.cppCompile++ arm    : CameraShooting <= Tags.cppCompile++ arm    : CameraShooting <= generic.cppCompile++ arm    : CameraShooting <= type.cppCompile++ arm    : CameraShooting <= ColorParameterBox.cppCompile++ arm    : CameraShooting <= PictureAspectRatioBox.cppCompile++ arm    : CameraShooting <= coding.cppCompile++ arm    : CameraShooting <= File.cppCompile++ arm    : CameraShooting <= FileSystem.cppCompile++ arm    : CameraShooting <= option.cppCompile++ arm    : CameraShooting <= error.cppCompile++ arm    : CameraShooting <= time.cppCompile++ arm    : CameraShooting <= File_posix.cppCompile++ arm    : CameraShooting <= FileSystem_posix.cppCompile++ arm    : CameraShooting <= random_posix.cppCompile++ arm    : CameraShooting <= process_posix.cppCompile++ arm    : CameraShooting <= time_posix.cppCompile++ arm    : CameraShooting <= Database.cppCompile++ arm    : CameraShooting <= Timecode.cppCompile++ arm    : CameraShooting <= TrackModifier.cppCompile++ arm    : CameraShooting <= Utility.cppCompile++ arm    : CameraShooting <= crc.cppCompile++ arm    : CameraShooting <= other.cppPrebuilt       : libstlport_static.a <= <NDK>/sources/cxx-stl/stlport/libs/armeabi/SharedLibrary  : libCameraShooting.soInstall        : libCameraShooting.so => libs/armeabi/libCameraShooting.so

7、成功編譯出mp4v2庫。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.