日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MPlayer在ARM上的移植(S5PV210开发板)

發布時間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MPlayer在ARM上的移植(S5PV210开发板) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?MPlayer 1.0已經把大部分解碼庫都自帶了,如ffmpeg,但是自帶的音頻庫在S5PV210下效果非常不好.換成使用libmad效果不錯.因此MPlayer 在ARM-Linux的最簡單的移植只需要移植這兩個即可.移植后即進行字符界面的播放.
??????移植之前先做好移植前準備,安裝好arm-linux交叉編譯器,并下載 MPlayer-1.0rc2.tar.bz2 和libmad包(libmad-0.15.1b.tar.gz)

1.安裝libmad
(1)解壓libmad
解壓libmad包(libmad-0.15.1b.tar.gz);
$??tar???zxvf???libmad-0.15.1b.tar.gz??-C???libmad

(2)進入libmad的目錄,輸入配置命令:
$??cd libmad
$??./configure --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=/home/bamboo/testcode/libmad/lib CC=/opt/caozhudong/bin/armv4tl-caozhudong-linux-gnueabi-gcc(要保證arm-linux-gcc的路徑已經有 export過,否則給出完整路徑。)

(3)交叉編譯libmad(運行)
$??make
$??make install
這樣就可以看到 /usr/local/arm/3.3.2/lib 目錄下多了include和lib目錄,這些就是libmad相關的庫。


2.安裝MPlayer
(1)解壓 MPlayer
解壓 MPlayer包( MPlayer-1.0rc2.tar.bz2)
$??tar???jxvf ???MPlayer-1.0rc2.tar.bz2 ??-C ??mplayer

(2)進入mplayer的目錄,輸入配置命令:
$??cd??mplayer
?./configure關鍵就是后面的配置參數了。rc2版本的配置參數相比pre版本而言有些微的改變,配置參數如下:
$??./configure --cc=/opt/caozhudong/bin/armv4tl-caozhudong-linux-gnueabi-gcc --host-cc=gcc --target=arm-linux --enable-static --disable-win32dll --disable-dvdread??--enable-fbdev --disable-mencoder --disable-live --disable-mp3lib --enable-mad --enable-libavcodec_a --language=zh_CN??--disable-armv5te --disable-armv6 --with-extraincdir=/home/bamboo/testcode/libmad/lib/include??--with-extralibdir=/home/bamboo/testcode/libmad/lib/lib

?--cc : 交叉編譯工具,如果沒添加到環境變量,就要指定完整路徑
?--target : 在pre版本中,對于--target和這個配置參數是這樣描述的:
===============================================
?--target=arm- armv4l-linux這個參數要注意的是一個分三部分,第一部分的arm是指arch,這里設定為arm;第二部分的armv4l是指具體的版本,這 個要注意了,一定要跟libavcodec目錄下的平臺目錄名一致,否則為這個平臺的優化代碼沒辦法編譯進去(據我觀察是這樣的);第三部分是系統平臺。
===============================================
?但是在rc2版本中,只需要--target=arm-linux這樣指定就好了。

??--enable-static : 是設定靜態連接,不需要一堆亂七八糟的動態庫,尤其對我們這些新手來說省了很多的麻煩。如果設置了這個參數就不用設置--prefix了,另外也不用執行 make install。
??--prefix=/tmp/mplayer-rc2 : make install后,可執行程序就安裝在/tmp/mplayer-rc2目錄下,不寫則可執行程序安裝在當前目錄下面。
??--disable-win32dll : 禁用win32動態鏈接庫支持。在pre版本中該參數為
??--disable-dvdread : 禁用libdvdread.
??--enable-fbdev : 支持fbdev,這個一定要選上。
??--disable-mp3lib 和 --enable-mad : arm系列的cpu,一般都沒 浮點運算 單元,而mplayer的mp3解碼默認使用mp3lib,這個是 浮點運算 庫,在arm上肯定跑不了,使用ffmp3或者libmad(需要外部庫libmad支持)應該就沒問題了。所以這里需要禁止掉mencoder和使能 libmad。
??--disable-mencoder : 禁止編碼功能。項目上不需要此功能,禁掉以縮小尺寸。而且聽說在這里編譯mencoder會有問題,聽說而已,沒試過。
??--disable-live : 禁止live 555流媒體。(不知道干啥用)
??--enable-libavcodec_a : 啟用靜態的libavcodec解碼。在pre版本中該參數為--enable-libavcodec。
??--disable-armv5te --disable-armv6 : 禁用armv5te、armv6指令擴展。
??--with-extraincdir和-with-extralibdir : 指定libmad和mad.h的路徑。mad的路徑被添加到編譯參數-I和-L后面,替換libmad后需要指定(此路徑就是第一步交叉編譯libmad時生成的include和lib目錄,很關鍵,第一次交叉編譯時就是這里沒有指定,出現錯誤的)。
??注:在pre版本中需要指定--host-cc=gcc配置參數。用來編譯一些需要在host上執行的中間文件的,如codec-cfg,切記不能缺少。但在rc2版本中該參數可以省略掉。

(3).交叉編譯MPlayer(運行)
./configure 之后就開始make了。
$??make
編譯過程中會出現很多錯誤,以下是我編譯時出現的錯誤及其解決方法
錯誤(1)
./codec-cfg ./etc/codecs.conf > codecs.conf.h
./codec-cfg: 1: Syntax error: word unexpected (expecting ")")
解決方法:在configure時添加 --host-cc=gcc就可以解決

錯誤(2)
make[1]: *** [armv4l/dsputil_arm_s.o] Error 1
make[1]: Leaving directory `/root/MPlayer-1.0rc2/libavcodec'
make: *** [libavcodec/libavcodec.a] 錯誤 2
錯誤原因是pld指令只在armv5te以上版本有效,在2440(armv4l)無效
預讀取PLD指令
功能:cache預讀取(PLD,PreLoad),使用PLD指示存儲系統從后面幾條指令所指定的存儲器地址讀取,存儲系統可使用這種方法加速以后的存 儲器訪問。
解決方法:修改MPlayer-1.0rc2/libmpeg2/motion_comp_arm_s.S和MPlayer-1.0rc2 /libavcodec/armv4l/dsputil_arm_s.S這兩個報錯文件,在前面添加上:
#ifndef HAVE_PLD
.macro pld reg
.endm
#endif
然后再make

(4)交叉編譯生成可執行程序mplayer,用NFS文件系統掛載啟動開發板,MPlayer支持播放視頻文件MP4,avi,ASF,我自己板子的LCD屏是320×240,所以用視頻轉換器轉換一下視頻的分辨率。
開始運行mplayer。
?$??./mplayer test.avi -framedrop -quiet -vf rotate=1,scale=320:240

轉載于:https://www.cnblogs.com/sankye/p/4648192.html

總結

以上是生活随笔為你收集整理的MPlayer在ARM上的移植(S5PV210开发板)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。