本文出自 「LINUX && ANDROID」 博客,請務必保留此出處http://tianxiaolin.blog.51cto.com/1810342/409019php
軟件移植MPlayerhtml
在文件系統中使用mplayer進行音頻和視頻播放。本文講述瞭如何移植mplayer及移植過程當中須要的各類庫。python
1、 開發環境linux
虛擬機 vmware 7.0.0ide
系統:Ubuntu 9.10工具
交叉編譯工具鏈:arm-2009q1測試
開發板CPU:am3217網站
交叉編譯工具鏈安裝路徑/opt/Tools/arm-2009q1url
移植源碼存放路徑:/opt/transplantsspa
2、移植MPlayer
2.1 移植ALSA
2.1.1 獲取源碼
從網站http://www.alsa-project.org/main/index.php/Download下載alsa-lib-1.0.23.tar.bz2源碼,拷貝到/opt/transplants目錄下。
2.1.2 修改並配置源碼
解壓源碼包
Host# cd /opt/transplants
Host# tar jxvf alsa-lib-1.0.23.tar.bz2
解壓後生成目錄alsa-lib-1.0.23。
進入目錄後進行配置
Host# ./configure --host=arm-none-linux-gnueabi --target=arm-linux --prefix=/alsa-lib --enable-shared --disable-python --with-configdir=/alsa --with-plugindir=/usr/lib/alsa-lib
--host 配置交叉編譯工具鏈;--prefix配置編譯生成庫的存放目錄。--with-configdir配置庫在開發板文件系統中的存放目錄
2.1.3 編譯並安裝源碼
編譯安裝
Host#make
Host#make install
成功後在系統根目錄下生成/alsa-lib目錄;在/usr/share/目錄下生成alsa目錄。
將/alsa-lib目錄下全部文件拷貝到/opt/Tools/arm-2009q1/arm-none-linux-gnueabi/libc/usr目錄下,爲編譯mplayer作準備。
Host# cp /alsa-lib/** /opt/Tools/arm-2009q1/arm-none-linux-gnueabi/libc/usr -raf
將/alsa-lib目錄下全部文件拷貝到開發板文件系統/usr目錄下
將/usr/share/alsa目錄拷貝到開發板文件系統/usr/share目錄下
在開發板文件系統/etc/profile添加以下內容
mkdir /dev/snd
ln -s /dev/pcmC0D0c /dev/snd/pcmC0D0c
ln -s /dev/pcmC0D0p /dev/snd/pcmC0D0p
ln -s /dev/controlC0 /dev/snd/controlC0
ln -s /dev/pcmC1D0c /dev/snd/pcmC1D0c
ln -s /dev/pcmC1D0p /dev/snd/pcmC1D0p
ln -s /dev/controlC1 /dev/snd/controlC1
ln -s /dev/seq /dev/snd/seq
ln -s /dev/timer /dev/snd/timer
ALSA庫移植完畢。
NOTE:開發板文件系統沒有的目錄請用戶根據須要自行建立。
2.2 移植LIBMAD庫
播放mp3文件須要libmad庫支持。
2.2.1 獲取源碼
去網站http://sourceforge.net/projects/mad/files/下載libmad-0.12.1b.tar.gz源碼,拷貝到/opt/transplants目錄下。
2.2.2 修改並配置源碼
解壓源碼包
Host# cd /opt/transplants
Host# tar jxvf libmad-0.12.1b.tar.bz2
解壓後生成目錄libmad-0.12.1b。
進入目錄後進行配置
Host# ./configure --host=arm-none-linux-gnueabi --prefix=/opt/libmad
--host 配置交叉編譯工具鏈;--prefix配置編譯生成庫的存放目錄。
2.2.3 編譯並安裝源碼
編譯安裝
Host#make
Host#make install
NOTE:編譯過程遇到與」-fforce-mem」相關的錯誤,打開Makefile找到CFLAGS變量,將它的-fforce-mem選項去掉便可。
成功後生成/opt/libmad目錄。
將/opt/libmad目錄下全部文件拷貝到/opt/Tools/arm-2009q1/arm-none-linux-gnueabi/libc/usr目錄下,爲編譯mplayer作準備。
Host# cp /opt/libmad/** /opt/Tools/arm-2009q1/arm-none-linux-gnueabi/libc/usr -raf
將/opt/libmad目錄下全部文件拷貝到開發板文件系統/usr目錄下。
NOTE:開發板文件系統沒有的目錄請用戶根據須要自行建立。
2.3 移植MPlayer
2.3.1 獲取源碼
到網站http://www.mplayerhq.hu/design7/dload.html下載mplayer-export-snapshot.tar.bz2源碼,拷貝到/opt/transplants目錄下。
2.3.2 修改並配置源碼
解壓源碼包
Host# cd /opt/transplants
Host# tar jxvf mplayer-checkout-2010-09-26.tar.bz2
解壓後生成目錄mplayer-checkout-2010-09-26。
NOTE:源碼解壓生成的目錄名隨更新日期的變化而變化。
進入目錄後進行配置
Host# cd mplayer-checkout-2010-09-26
Host# ./configure --host-cc=gcc --cc=arm-none-linux-gnueabi-gcc --target=arm-armv4-linux --prefix=/tmp/mplayer --disable-win32dll --disable-dvdread --enable-fbdev --disable-mencoder --enable-mad
2.3.3 編譯並安裝源碼
編譯安裝
Host# make
成功後本目錄下mplayer可執行文件。
將mplayer文件拷貝到開發板文件系統/opt目錄下。
NOTE:開發板文件系統沒有的目錄請用戶根據須要自行建立。
2.3.4 測試驗證
上述操做結束,拷貝幾個mp3和mpg格式的文件,放在開發板文件系統/opt目錄下。
啓動板卡進入系統。
Target# cd /opt
播放mp3文件。
Target# ./mplayer –ao alsa xxx.mp3
耳機會聽到音樂,測試成功。
本文出自 「LINUX && ANDROID」 博客,請務必保留此出處http://tianxiaolin.blog.51cto.com/1810342/409019