移植MPlayer

本文出自 “LINUX && ANDROID” 博客,請務必保留此出處http://tianxiaolin.blog.51cto.com/1810342/409019


軟件移植MPlayer

在文件系統中使用mplayer進行音頻和視頻播放。本文講述瞭如何移植mplayer及移植過程中需要的各種庫。

一、 開發環境

*         虛擬機 vmware 7.0.0

*         系統:Ubuntu 9.10

*         交叉編譯工具鏈:arm-2009q1

*         開發板CPU:am3217

*         交叉編譯工具鏈安裝路徑/opt/Tools/arm-2009q1

*         移植源碼存放路徑:/opt/transplants

二、移植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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章