0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux下播放器開發(fā)-交叉編譯Mplayer

DS小龍哥-嵌入式技術(shù) ? 來(lái)源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2022-08-14 09:12 ? 次閱讀

1. 前言

MPlayer是一款開源多媒體播放器,在主流的Linux、windows、Mac OS 都能運(yùn)行,主要廣泛用在Linux系統(tǒng)上; Mplayer不僅支持圖形界面、也支持命令行播放。這篇文章就介紹如何將MplayerJ交叉編譯移植到嵌入式開發(fā)板上運(yùn)行,在命令行上正常的播放視頻,LCD屏采用的幀緩沖驅(qū)動(dòng)框架渲染圖像。

開發(fā)板采用友善之臂的Tiny4412開發(fā)板,MCU三星的EXYNOS4412,板子上接的LCD分辨率為800*480,幀緩沖驅(qū)動(dòng)框架接口,Linux內(nèi)核版本是3.5,系統(tǒng)不帶圖形界面,文件系統(tǒng)是采用busybox制作的最小根文件系統(tǒng),整個(gè)系統(tǒng)比較精簡(jiǎn)。交叉編譯器采用arm-linux-gcc 4.5.1版本。

在命令行運(yùn)行Mplayer時(shí),支持主模式和從模式兩種運(yùn)行模式,主模式就是正常模式,Mplayer會(huì)監(jiān)聽鍵盤事件,根據(jù)鍵盤上的快捷鍵完成靜音、音量加減、字幕控制、快進(jìn)、快退等操作。如果想要主進(jìn)程通過(guò)代碼控制播放器完成指定一些播放操作,就可以使用從模式播放,在從模式下可以通過(guò)管道與mplayer進(jìn)行通信,完成視頻播放加載、暫停、停止、快進(jìn)、快退等功能。

image-20220120102015443

2. 移植libmad庫(kù)

默認(rèn)情況下Mplayer采用自帶的mp3lib庫(kù)來(lái)進(jìn)行mp3解碼,但是ARM系列的cpu,一般都沒浮點(diǎn)運(yùn)算單元,而mplayer的mp3解碼默認(rèn)使用的mp3lib是浮點(diǎn)運(yùn)算庫(kù),arm上跑不了,移植mplayer之前需要先編譯libmad庫(kù)。

libmad是一個(gè)開源的高精度 MPEG 音頻解碼庫(kù)。LIBMAD提供24-bit的PCM 輸出,完全是定點(diǎn)計(jì)算,非常適合沒有浮點(diǎn)支持的平臺(tái)上使用。使用 libmad 提供的一系列 API,就可以非常簡(jiǎn)單地實(shí)現(xiàn) MP3數(shù)據(jù)解碼工作。在libmad 的源代碼文件目錄下的 mad.h文件中,可以看到絕大部分該庫(kù)的數(shù)據(jù)結(jié)構(gòu)和 API 等。

下載地址: www.linuxfromscratch.org/blfs/view/s…

image-20220120102405749

(1) 解壓

[root@xiaolong video]# tar xvf libmad-0.15.1b.tar.gz 
[root@xiaolong video]# cd libmad-0.15.1b

(2) 配置生成Makefile

[root@xiaolong libmad-0.15.1b]# ./configure CC=arm-linux-gcc --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=$(pwd)/_install
--prefix=$(pwd)/_

install 指定最終生成的庫(kù)文件的安裝路徑。

(3) 修改Makefile

刪除Makefile大約29行處的-fforce-mem。

image-20220120102554440

或者直接使用命令修改:

sed -i 's/-fforce-mem/ /g'  Makefile

查找文檔中的-fforce-mem,然后替換成空。

(4) 編譯安裝

[root@xiaolong libmad-0.15.1b]# make && make install
復(fù)制代碼

(5) 查看編譯成功的文件

[root@xiaolong libmad-0.15.1b]# cd _install/
[root@xiaolong _install]# ls
include  lib

include和lib兩個(gè)文件夾,對(duì)應(yīng)文件夾中生成mad.h和libmad.a文件,這兩個(gè)文件供mplayer編譯用。

3. 交叉編譯MPlayer-1.3.0

下載地址: www.mplayerhq.hu/design7/new…

image-20220120102818768

(1) 解壓安裝

[root@xiaolong video]# tar xvf MPlayer-1.3.0.tar.gz 
[root@xiaolong MPlayer-1.3.0]# cd MPlayer-1.3.0

(2) 配置生成config.mak文件

[root@xiaolong MPlayer-1.3.0]# ./configure --prefix=$PWD/mplayer_installdir --cc=arm-linux-gcc --host-cc=gcc --target=arm-linux --enable-cross-compile --enable-mad  --disable-gui --disable-menu  --disable-x11 --yasm=""  --extra-cflags=-I/work/video/libmad-0.15.1b/_install/include --extra-ldflags=-L/work/video/libmad-0.15.1b/_install/lib/  2>&1 |tee logfile

上面-I和-L指定的路徑是libmad庫(kù)編譯安裝生成的路徑,根據(jù)自己的libmad庫(kù)路徑填寫。

(3) 修改config.mak文件

去掉config.mak 33行處的-s參數(shù)。

[root@xiaolong MPlayer-1.3.0]# gedit config.mak +33

image-20220120103021322

(4) 編譯安裝

[root@xiaolong MPlayer-1.3.0]# make && make install

編譯安裝成功之后,會(huì)得到一個(gè)mplayer可執(zhí)行文件,這個(gè)就是播放器的命令行程序,運(yùn)行即可播放視頻。

4. 部署運(yùn)行環(huán)境

(1). 拷貝依賴庫(kù)

拷貝依賴就是需要將mplayer命令運(yùn)行時(shí),需要的所有庫(kù)文件找齊,拷貝到開發(fā)板的/lib目錄下。

然后再將mplayer可執(zhí)行文件命令拷貝到開發(fā)板的/bins目錄下。

[root@xiaolong MPlayer-1.3.0]# cp mplayer /work/rootfs/bin/ -fv

[root@xiaolong /]#
cp /work/arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib/libncurses*.so* /work/rootfs/lib/ -rf

[root@xiaolong /]#
cp /work/arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib/libpng*.so* /work/rootfs/lib/ -rf

[root@xiaolong /]#
cp /work/arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib/libasound*.so* /work/rootfs/lib/ -rf


[root@xiaolong /]#
cp /work/arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib/libz.so*  /work/rootfs/lib/ -rf

[root@xiaolong /]#
cp /work/arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib/libjpeg.so*  /work/rootfs/lib/ -rf

[root@xiaolong /]#
cp /work/arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib/libfreetype.so*  /work/rootfs/lib/ -rf

(2) 測(cè)試播放視頻

[root@XiaoLong /]# mplayer xiaomaolv.mp4 -zoom -x 800 -y 480

mplayer :是mplayer生成的視頻播放命令 xiaomaolv.mp4 : 播放的視頻的文件。 -zoom -x 800 -y 480 : 視頻縮放的尺寸

后臺(tái)播放:

[root@XiaoLong /]# mplayer -slave -quiet -fs /video_mp3/xiaomaolv.mp4 &

(3). 修改mplayer默認(rèn)的播放位置

修改源碼:

[root@xiaolong MPlayer-1.3.0]# vim libmpcodecs/vf_vo.c +184
image-20220120103635701
審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 播放器
    +關(guān)注

    關(guān)注

    5

    文章

    387

    瀏覽量

    37258
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207910
  • mplayer
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    2444
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux驅(qū)動(dòng)開發(fā)_mplayer播放器開發(fā)

    介紹mplayer播放器的安裝、使用、以及兩個(gè)模式的使用;然后介紹廣告機(jī)項(xiàng)目的要求,實(shí)現(xiàn)辦法。 USB wifi (360) : 如何從官網(wǎng)下載源碼進(jìn)行代碼移植、安裝相關(guān)無(wú)線工具、讓嵌入式設(shè)備支持WIFI。
    的頭像 發(fā)表于 09-17 15:50 ?1310次閱讀
    <b class='flag-5'>Linux</b>驅(qū)動(dòng)<b class='flag-5'>開發(fā)</b>_<b class='flag-5'>mplayer</b><b class='flag-5'>播放器</b><b class='flag-5'>開發(fā)</b>

    ubuntumplyer播放器源碼移植

    MPlayer是一款開源多媒體播放器,以GNU通用公共許可證發(fā)布。此款軟件可在各主流操作系統(tǒng)使用,例如Linux和其他類Unix系統(tǒng)、Windows及Mac OS X系統(tǒng)。
    的頭像 發(fā)表于 09-29 14:45 ?1101次閱讀
    ubuntu<b class='flag-5'>下</b>mplyer<b class='flag-5'>播放器</b>源碼移植

    Linux系統(tǒng)交叉編譯工具鏈的安裝方法

    今天主要和大家聊一聊,如何使用Linux系統(tǒng)交叉編譯工具鏈的方法。
    發(fā)表于 11-21 09:30 ?3063次閱讀

    [轉(zhuǎn)帖]移植mplayer到迅為itop4412開發(fā)

    測(cè)試我提供了兩個(gè)測(cè)試代碼是移植的友善之臂的兩個(gè)項(xiàng)目(本來(lái)是qt4的我修改了以下qt5可以編譯構(gòu)建)1. 廣告機(jī):adsdemo2. 播放器:myplayer運(yùn)行:將編譯好的程序和mplaye
    發(fā)表于 02-17 14:30

    非常詳細(xì)的(Ubuntu16.04) QT移植mplyer播放器

    入一個(gè)mp4文件在opt然后運(yùn)行mplayer -vo fbdev test.mp4OK,mplayer已經(jīng)交叉編譯成功,放在板子上正常運(yùn)
    發(fā)表于 12-09 18:26

    【NanoPi NEO2試用體驗(yàn)】移植mplayer

    編譯成功后,會(huì)在./build/bin目錄中生成mplayer可執(zhí)行文件,把mplayer拷貝到板端/usr/local/bin目錄。3.測(cè)試mplayer是一款音視頻
    發(fā)表于 07-23 15:57

    視頻播放器linux環(huán)境的應(yīng)用

    推薦一款linux環(huán)境下好用的視頻播放器mplayer沒有圖形化界面smplayer是mplayer的有圖形化界面的軟件
    發(fā)表于 07-19 06:51

    移植mplayer到mini2440播放rm只有聲音該怎么辦?

    系統(tǒng) :Ubuntu 9.04編譯器:友善4.3.2早以前下了個(gè)MPlayer的源碼包,現(xiàn)在拿出來(lái)想移植到mini2440上,版本是MPlayer1.0rc2解壓后這樣配置./configure
    發(fā)表于 11-06 05:45

    嵌入式媒體播放器

    嵌入式設(shè)備中的廣泛使用,Linux系統(tǒng)上多媒體技術(shù)應(yīng)用要求更為凸顯。因而研制一種基于Linux、能支持各種媒體文件格式和傳輸協(xié)議的嵌入式媒體播放器,成為當(dāng)前媒體播放器的重要研究方向。
    發(fā)表于 11-05 06:49

    MPla<x>yer播放器最新版下載1.2(2008-2-20)

    MPlayer被評(píng)為Linux的最佳媒體播放工具又成功地移植到Windows.它能播放幾乎所
    發(fā)表于 02-22 11:14 ?0次下載

    S3C2410mplayer音視頻播放器移植

    關(guān)鍵詞:mplayer , S3C2410 , 播放器 作者:武漢華嵌嵌入式培訓(xùn)中心 講師 馮勇 一、s3c2410移植ALSA及相關(guān)工具使用 相關(guān)源碼文件 ncurses-5.6.tar.gz
    發(fā)表于 02-24 12:34 ?880次閱讀

    嵌入式Linux開發(fā)環(huán)境搭建-3-安裝交叉編譯工具鏈

    嵌入式Linux開發(fā)環(huán)境搭建-安裝交叉編譯工具鏈1、下載2、解壓3、設(shè)置環(huán)境變量參考文檔ubuntu安裝
    發(fā)表于 11-02 13:21 ?12次下載
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>開發(fā)</b>環(huán)境搭建-3-安裝<b class='flag-5'>交叉</b><b class='flag-5'>編譯</b>工具鏈

    Linux播放器開發(fā)-Mplayer命令行使用介紹

    前面文章介紹了LinuxMplayer播放交叉編譯、移植,在命令行上成功運(yùn)行了
    的頭像 發(fā)表于 08-14 09:10 ?6575次閱讀

    Linux交叉編譯選項(xiàng)與源碼與目標(biāo)文件分離

    交叉編譯選項(xiàng) 編譯Linux,通常只需要運(yùn)行 make menuconfig 配置要編譯的模塊,然后運(yùn)行 make 。
    的頭像 發(fā)表于 09-27 11:48 ?654次閱讀

    基于Linuxmp3播放器的研究實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《基于Linuxmp3播放器的研究實(shí)現(xiàn).doc》資料免費(fèi)下載
    發(fā)表于 10-25 10:13 ?0次下載
    基于<b class='flag-5'>Linux</b><b class='flag-5'>下</b>mp3<b class='flag-5'>播放器</b>的研究實(shí)現(xiàn)