免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1275 | 回复: 0
打印 上一主题 下一主题

Mplayer在2410上移植与添加mp3解码库的总结 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-14 16:56 |只看该作者 |倒序浏览

Mplayer在2410上移植与添加mp3解码库的总结2008-07-31 11:101)为支持mp3的解码,在交叉编译mplayer时,加上 –enable-mad,如果在make的时候出现了:找不到 mad.h 的错误。下面方法就是针对这个问题的解决方案)
1.交叉编译libmad
下载libmad包(libmad-0.15.1b.tar.gz);
打开一个终端,进入libmad的目录,输入配置命令:
./configure --enable-fpm=arm --host=arm-linux --disable-shared(这个选项就是说明要静态编译) --disable-debugging --prefix=/usr/local/arm/3.3.2/lib
CC=arm-linux-gcc(要保证arm-linux-gcc的路径已经有 export过,否则给出完整路径。)
make
make install
这样就可以看到 /usr/local/arm/3.3.2/lib 目录下多了include和lib目录,这些就是libmad相关的库。
2.在 configure mplayer的时候,要加上以下几个选项:
--enable-mad
--with-extraincdir=/usr/local/arm/3.3.2/lib/include(这个指明 mad.h 这个文件所在的路径)
--with-extralibdir=/usr/local/arm/3.3.2/lib/lib(这个指明libmad相关链接库所在的路径)
通过以上两个步骤,就可以把libmad交叉编译到 mplayer中。
2)mplayer在2410上的移植
首先到网上http://www.mplayerhq.hu/design7/dload.html
下载MPlayer-1.0rc1.tar.bz2,解压后生成MPlayer-1.0rc1。
接下来主要的是配置了,参考ERIC为mplayer播放流媒体的配置,现把ERIC的配置修改成如下所示。
如果要看哪一项的作用,参考./configure --help
##########################################begin##################
./configure \
--enable-cross-compile \
--cc=/usr/local/arm/3.3.2/arm-linux/bin/gcc \
--as=/usr/local/arm/3.3.2/arm-linux/bin/as \
--host-cc=gcc \
--target=arm-linux \
--with-extraincdir=/usr/local/arm/3.3.2/arm-linux/sys-include/:/usr/local/arm/3.3.2/lib/include \
--with-extralibdir=/usr/local/arm/3.3.2/arm-linux/lib:/usr/local/arm/3.3.2/lib/lib \
--enable-static \
      \
--enable-ftp \
--enable-radio \
--enable-network \
--enable-libavutil \
--enable-libavcodec \
--enable-libavformat \
--enable-libavcodec_mpegaudio_hp \
--enable-mp3lib \
--disable-debug \
--disable-crash-debug \
--enable-alsa \
\
--disable-libfame \
--disable-mencoder \
--disable-gui \
--disable-largefiles \
--disable-linux-devfs \
--disable-termcap \
--disable-termios \
--disable-iconv \
--disable-langinfo \
--disable-lirc \
--disable-lircc \
--disable-joystick \
--disable-vm \
--disable-xf86keysym \
--disable-radio-capture \
--disable-radio-v4l2 \
--disable-tv \
--disable-tv-v4l1 \
--disable-tv-v4l2 \
--disable-tv-bsdbt848 \
--disable-pvr \
--disable-rtc \
--disable-winsock2 \
--disable-smb \
--disable-live \
--disable-dvdnav \
--disable-dvdread \
--disable-mpdvdkit \
--disable-cdparanoia \
--disable-bitmap-font \
--disable-freetype \
--disable-fontconfig \
--disable-unrarlib \
--disable-menu \
--disable-sortsub \
--disable-fribidi \
--disable-enca \
--disable-macosx \
--disable-maemo \
--disable-macosx-finder-support \
--disable-macosx-bundle \
--disable-inet6 \
--disable-gethostbyname2 \
--disable-vstream \
--disable-ass \
--disable-rpath \
--disable-gif \
--disable-png \
--disable-jpeg \
--disable-libcdio \
--disable-liblzo \
--disable-win32 \
--disable-qtx \
--disable-xanim \
--disable-real \
--disable-xvid \
--disable-x264 \
--disable-nut \
--disable-libpostproc \
--disable-libavutil_so \
--disable-libavcodec_so \
--disable-libavformat_so \
--disable-libpostproc_so \
--disable-tremor-internal \
--disable-tremor-low \
--disable-tremor-external \
--disable-libvorbis \
--disable-speex \
--disable-theora \
--disable-faad-external \
--disable-faad-internal \
--disable-faad-fixed \
--disable-faac \
--disable-ladspa \
--disable-libdv \
--enable-mad \
--disable-toolame \
--disable-twolame \
--disable-xmms \
--disable-liba52 \
--disable-libdts \
--disable-libmpeg2 \
--disable-musepack \
--disable-amr_nb \
--disable-amr_nb-fixed \
--disable-amr_wb \
\
--disable-vidix-internal \
--disable-vidix-external \
--disable-gl \
--disable-dga \
--disable-vesa \
--disable-svga \
--disable-sdl \
--disable-aa \
--disable-caca \
--disable-ggi \
--disable-ggiwmh \
--disable-directx \
--disable-dxr2 \
--disable-dxr3 \
--disable-ivtv \
--disable-dvb \
--disable-dvbhead \
--disable-mga \
--disable-xmga \
--disable-xv \
--disable-xvmc \
--disable-vm \
--disable-xinerama \
--disable-x11 \
--disable-xshape \
--disable-fbdev \
--disable-mlib \
--disable-3dfx \
--disable-tdfxfb \
--disable-s3fb \
--disable-directfb \
--disable-zr \
--disable-bl \
--disable-tdfxvid \
--disable-tga \
--disable-pnm \
--disable-md5sum \
\
--enable-ossaudio \
--disable-arts \
--disable-esd \
--disable-polyp \
--disable-jack \
--disable-openal \
--disable-nas \
--disable-sgiaudio \
--disable-sunaudio \
--disable-win32waveout \
--disable-select \
\
--disable-mmx \
--disable-mmxext \
--disable-3dnow \
--disable-3dnowext \
--disable-sse \
--disable-sse2 \
--disable-altivec \
--disable-fastmemcpy \
--disable-profile \
--disable-sighandler \
--disable-dynamic-plugins
##########################################end##################
其中,下面":"后面的路径是libmad的路径。
--with-extraincdir=/usr/local/arm/3.3.2/arm-linux/sys-include/:/usr/local/arm/3.3.2/lib/include \
--with-extralibdir=/usr/local/arm/3.3.2/arm-linux/lib:/usr/local/arm/3.3.2/lib/lib \
还要记得 --enable-mad
ERIC的配置中,编译出来的mplayer没有声音,是因为他把ossaudio给disable掉了,所以还应该记得
--enable-ossaudio
3)移植结果及用法
1.查看音频输出的驱动
# ./mplayer -ao help
MPlayer 1.0rc1-3.3.2 (C) 2000-2006 MPlayer Team
CPU: ARM
Available audio output drivers:
        oss OSS/ioctl audio output
        mpegpes Mpeg-PES audio output
        null Null audio output
        pcm RAW PCM/WAVE file writer audio output
2.播放mp3文件
./mplayer -ac mad file.mp3
指定解码库为mad,CPU使用率只有20-30%。否则mplayer默认调用mp3lib,此时CPU的使用率为2000%左右,根本无法播放声音。
3.播放wma文件
./mplayer ./mplayer song/wma1/mono_32kbps_44khz.wma.wma
下面是海滨的在优化后的测试结果
4.制作一些具有不同属性的wma音频文件进行测试,得到的数据如下:
(说明:文件名中每个“_”分开的部分为相应wma文件的一些关键属性。Stereo代表双通道,mono代表单通道;
cbr即constant bit rate encoding,vbr即variable bit rate encoding,
这两种编码方式会调用wma解码程序中的不同分支。××kbps这个是指码率。××khz这个代表采样率。
带测试的文件时间长度为20秒。)
文件名 实际解码耗时(包含初始化时间) 说明
stereo_cbr_63kbps_48khz.wma 23.35 秒 流畅,但声音有点慢放的感觉
stereo_cbr_64kbps_48khz.wma 28.32 秒 有点卡
stereo_cbr_95kbps_48khz.wma 23.99 秒 流畅,但声音有点慢放的感觉
stereo_cbr_96kbps_48khz.wma 28.88秒 有点卡
stereo_cbr_127kbps_48khz.wma 23.14秒 流畅,但声音有点慢放的感觉
stereo_cbr_128kbps_48khz.wma 23.98秒 流畅,但声音有点慢放的感觉
stereo_cbr_160kbps_48khz.wma 26.84秒 有点卡
stereo_cbr_191kbps_48khz.wma 24.10秒 流畅,但声音有点慢放的感觉
stereo_cbr_192kbps_48khz.wma 25.91秒 有点卡
stereo_vbr_10_44khz.wma 26.79秒 有点卡
stereo_vbr_98_44khz.wma 26.08秒 有点
stereo_cbr_96kbps_44khz.wma 25.70秒 有点卡
stereo_cbr_80kbps_44khz.wma 27.93秒 有点卡
stereo_cbr_64kbps_44khz.wma 27.69秒 有点卡
stereo_cbr_48kbps_44khz.wma 27.05秒 有点卡
stereo_cbr_32kbps_44khz.wma 28.77秒 有点卡
stereo_cbr_320kbps_44khz.wma 25.00秒 有点卡
stereo_cbr_192kbps_44khz.wma 25.72秒 有点卡
stereo_cbr_160kbps_44khz.wma 25.95秒 有点卡
stereo_cbr_128kbps_44khz.wma 25.32秒 有点卡
mono_48kbps_44khz.wma 21.47秒 流畅
mono_20kbps_44khz.wma 21.36秒 流畅



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/64106/showart_1415035.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP