android全格式多媒體播放器(一:ffmpeg移植)-轉載

來源:互聯網
上載者:User

好文章轉載下,出處http://blog.csdn.net/fgwf1/archive/2011/01/05/6118686.aspx

 

為了能在android平台上播放全格式的多媒體檔案,我們需要自己做一個多媒體播放器。android內建的opencore系統解碼格式較少,只支援
mp4和ogg,並且結構不是很好理解。如果要加其他的解碼方式實在太費勁。經過考慮,基於ffmpeg實現全功能的播放器比較容易並且成本比較低。
(ffmpeg移植後的內容我已經放到git@github.com:windsome/ffmpeg-android.git上,有興趣的可以直接下
載,在android2.1上編過,不知道在其他android版本上能不能編過)
  本文討論製作全格式多媒體播放器的第一步:ffmpeg 移植。

  第一步:得到別人已經移植過的一個比較舊的android平台上的ffmpeg。地址為 http://gitorious.org/~olvaffe/ffmpeg/ffmpeg-android ,我們將使用其*.mk 檔案。我將此源碼放到一個臨時目錄中。

  第二步:得到新版本的ffmpeg。地址為 http://ffmpeg.org/download.html 。一般用git clone 得到。我將源碼放到了android源碼樹的external/目錄下。

  第三步:configure ffmpeg ,目的是得到android平台上的config.mak和config.h檔案。所以只需要configure成功即可,不必編譯,稍候我們會在android源碼樹下編譯。
export PREBUILT=/home/Dev/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0
./configure --target-os=linux
--arch=armv41
--enable-cross-compile
--cc=$PREBUILT/bin/arm-eabi-gcc
--cross-prefix=$PREBUILT/bin/arm-eabi-
--nm=$PREBUILT/bin/arm-eabi-nm
--extra-cflags="-fPIC -DANDROID"
--enable-static
--disable-shared
--disable-asm
--disable-yasm
--prefix=`pwd`/android_bin
--extra-ldflags="-Wl,-T,$PREBUILT/arm-eabi/lib/ldscripts/armelf.x
-Wl,-rpath-link=/home/Dev/android/out/target/product/generic/obj/lib
-L/home/Dev/android/out/target/product/generic/obj/lib -nostdlib
$PREBUILT/lib/gcc/arm-eabi/4.4.0/crtbegin.o
$PREBUILT/lib/gcc/arm-eabi/4.4.0/crtend.o -lc -lm -ldl"
解釋一下,PREBUILT為我的android編譯器路徑,我使用的是android源碼樹下的tool-chian。configure命令中除了目錄可能不一樣外,其他的應該不需要做改動。

  第四步:將臨時目錄中的ffmpeg-android下的*.mk拷貝到android源碼樹的external/ffmpeg目錄下。這樣就完成了移植。(這一步中,可能需要做修改,我將需要修改的檔案打了個包,放在附件中)

  第五步:在android目錄下make libavutil libavcodec libavformat libswscale。

註:我已經基於最新的ffmpeg(0.6版本-git-6157eab)做的改動上傳了。你只需要將附件解壓,並替換源ffmpeg中相應的檔案,即可直接執行第五步。

相關文章

聯繫我們

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