一、環境說明
主機系統:Linux系統,內核版本:2.6.18-164.el5
開發板:Mini2440
Gcc版本:gcc (GCC) 4.1.2 20080704
交叉編譯器:arm-linux-gcc 版本:4.4.3
二、資源:
arm-linux-gcc-4.4.3.tar.gz
MPlayer-1.0rc3.tar.bz2 (第三版本)
libstdc++.so.6.0.10
一個wmv格式的小視頻
三、搭建環境:
a) 首先搭建交叉編譯環境
i. 將arm-linux-gcc-4.4.3.tar.gz解壓到一個空文件夾中
#tar zvxf arm-linux-gcc-4.4.3.tar.gz –C / (C的後面有空格)
ii. 改變環境
#gedit /root/.bashrc
iii. 將路徑改為/opt/FriendlyARM/toolschain/4.4.3/bin
export PATH=$PATH:/ opt/FriendlyARM/toolschain/4.4.3/bin
上面兩行是同一條命令!
保存退出之後,要重啟一下機子命令如下
#reboot
iv. 重啟之後查看是否編譯成功
# arm-linux-gcc –v
在最後一行如果出現了版本號就是編譯成功了
b) 修改編譯調用的庫鏈接
i. # strings /usr/lib/libstdc++.so.6 | grep GLIBC
結果的最後一句話:
GLIBCXX_3.4 沒有GLIBCXX_3.4.9
ii. # ls -l /usr/lib/libstdc++.so.6
結果鏈接(快捷方式)為
/usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.8
iii. # rm –rf /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.8
iv. #ls -l /usr/lib/libstdc++.so.6
出現:/usr/lib/libstdc++.so.6:沒有那個文件或目錄
v. 把(資源)libstdc++.so.6.0.10放入/usr/lib中
vi. 重新做鏈接
#ln -s /usr/lib/libstdc++.so.6.0.10 /usr/lib/libstdc++.so.6
四、移植過程:
1、在根目錄中新建一個文件夾
#mkdir mywork
#cd mywork
#mkdir myplayer
2、將播放器的原壓縮包放入myplayer中並解壓
#tar jxvf MPlayer-1.0rc3.tar.bz2
3、配置
進入MPlayer-1.0rc3文件夾
#cd MPlayer-1.0rc3
#./configure --host-cc=gcc --cc=arm-linux-gcc --target=arm --enable-static --disable-win32dll --disable-dvdread --disable-dvdread-internal --disable-dvdnav --disable-libdvdcss-internal --enable-fbdev --disable-mencoder --disable-live --disable-mp3lib --disable-mad --enable-libavcodec_a --language=zh_CN --disable-live 2>&1 | tee logfile
注:上面七行是同一條命令。
4、修改文件再make
修改MPlayer-1.0rc2/libmpeg2/motion_comp_arm_s.S文件
和MPlayer-1.0rc2/libavcodec/armv4l/dsputil_arm_s.S文件中的
pld [r1] (中間有空格)
pld [r1]替換為空格,執行make即可(技巧可以使用替換)
5、make成功之後就自動生成了mplayer了
6、將生成的mplayer文件和.wmv格式的視頻文件使用tftp軟件或其他的方式(U盤)放到開發板的/usr/bin文件夾中
tftp的使用方法:在PC機上面打開tftp軟件
進入開發板要下載的文件夾
輸入命令如下:
#tftp –g –r 要下載的文件 PC的IP
然後給播放器增加777權限
#chmod 777 mplayer
7、播放視頻
在/usr/bin文件夾中輸入命令:
#./mplayer test.wmv -framedrop -quiet -vf rotate=1,scale=240:320
即可看到視頻了
(注:上面的命令中test.wmv是下載視頻名稱,操作者可以改為視頻存放的具體位置如:/temp/test.wmvà/temp是視頻所處的文件夾)