ffmpeg移植android中 測試成功

來源:互聯網
上載者:User

經過兩天努力 終於成功移植FFMPEG0.7.6到 ADNROID中 下面是在移植過程遇到的問題 ,歡迎轉載 請註明出處

tools:  

ffmpeg-0.7.6
   android-ndk-r4b
   ubuntu 10.11
路徑:root\android\android-ndk-r4b\samples\FFMPEG\jni\ffmpeg-0.7.6
移植過程需要注意幾點 :
 1 :修改libavutil/libm.h中靜態方法 前面的static全部去掉
 2:修改ffmpeg-0.7.6中./config.sh執行後的config.h檔案中的 一些標誌 如下:
  sed -i 's/HAVE_LRINT 0/HAVE_LRINT 1/g' config.h
  sed -i 's/HAVE_LRINTF 0/HAVE_LRINTF 1/g' config.h
  sed -i 's/HAVE_ROUND 0/HAVE_ROUND 1/g' config.h
  sed -i 's/HAVE_ROUNDF 0/HAVE_ROUNDF 1/g' config.h  
  sed -i 's/HAVE_TRUNCF 0/HAVE_TRUNCF 1/g' config.h
  sed -i 's/HAVE_SYMVER 1/HAVE_SYMVER 0/g' config.h
  sed -i 's/HAVE_TRUNC 0/HAVE_TRUNC 1/g' config.h
  sed -i 's/#define restrict restrict/#define restrict  /g' config.h
 3: 出現如下錯誤
  /home/chf0001/android-ndk/android-ndk-r5/samples/ffmpeg/obj/local/armeabi/libavutil.a(inverse.o):(.rodata+0x0): multiple definition of `ff_inverse'
/home/chf0001/android-ndk/android-ndk-r5/samples/ffmpeg/obj/local/armeabi/libavcodec.a(inverse.o):(.rodata+0x0): first defined here
 直接修改libavcodec/Makefile,把下面一行刪掉:
 OBJS-$(!CONFIG_SMALL)                  += inverse.o
 4:分別把libavutil、libavcodec、libavformat、libavfilter、libpostproct和libswscale下的Makefile檔案中下面兩行刪除掉:
 include $(SUBDIR)../subdir.mak
 include $(SUBDIR)../config.mak
 5:需要記住在ffmpeg-0.7.6下面建立av.mk
 6:若用ndk-r4b 最後產生的ffmpeg.so是 1.6k,則需要在build/core/build-binary.mk中的添加whole_satatic_libraries定義
 7:以上各點必需正確做到準確無誤,有一個出錯編繹不會成功,正常的ffmpeg.so>=3.2M.上述原因就不多說了.這是我這一兩天來出現問題的總結 希望對大家有所協助,下面我將上傳各目錄下面的 Android.mk.如果你的環境和我一樣 可以直接用.

Android.mk檔案地址
 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.