关键词:
mplayer , s3c2410 , 播放器
作者:武汉华嵌嵌入式培训中心 讲师 冯勇
一、s3c2410移植alsa及相关工具使用
相关源码文件
ncurses-5.6.tar.gz
alsa-lib-1.0.17.tar.bz2
alsa-utils-1.0.17.tar.bz2
1. 设置环境变量
export media_install_dir=http://www.eechina.com/home/linux/driver/mplay/media_install
2. 编译ncurses
tar zxvf ncurses-5.6.tar.gz
cd ncurses-5.6
./configure --host=arm-linux --target=arm-linux --build=i686-linux --with-softfloat --prefix=http://www.eechina.com/usr --without-ada cc=http://www.eechina.com/opt/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc
make
make install destdir=$media_install_dir
2. 编译alsa-lib
tar jxvf alsa-lib-1.0.17.tar.bz2
cd alsa-lib-1.0.17
./configure --host=arm-linux --target=arm-linux --build=i686-linux --with-softfloat --prefix=http://www.eechina.com/usr --disable-python cc=http://www.eechina.com/opt/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc
修改makefile,删除掉aserver和alsalisp所有部分(各2处 );因为运行configure设置了--with-softfloat ,不然会出错。
make
make install destdir=$media_install_dir
3.编译alsa-util
tar jxvf alsa-utils-1.0.17.tar.bz2
cd alsa-utils-1.0.17
./configure --host=arm-linux --target=arm-linux --build=i686-linux --with-softfloat --prefix=http://www.eechina.com/usr --with-alsa-prefix=$media_install_dir/usr/lib --with-alsa-inc-prefix=$media_install_dir/usr/include cc=http://www.eechina.com/opt/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc
make
make install destdir=$media_install_dir
4.相关工具使用
(1)
由于alsa util工具访问音频alsa设备目录在/dev/snd下,可先创建一个脚本:create_snd_dev.sh
mkdir /dev/snd
ln -s /dev/controlc0 /dev/snd/controlc0
ln -s /dev/pcmc0d0c /dev/snd/pcmc0d0c
ln -s /dev/pcmc0d0p /dev/snd/pcmc0d0p
ln -s /dev/mixer /dev/snd/mixer
ln -s /dev/timer /dev/snd/timer
(2) 使用aplay直接播放wav文件
./aplay xxx.wav
二、s3c2410上mp3库及madplay移植
相关源码文件
zlib-1.2.3.tar.gz
libid3tag-0.15.1b.tar.gz
libmad-0.15.1b.tar.gz
madplay-0.15.2b.tar.gz
1.编译zlib-1.2.3
tar zxvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure --prefix=http://www.eechina.com/home/linux/driver/mplay/media_install/usr
修改makefile
cc=http://www.eechina.com/opt/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc
ar=http://www.eechina.com/opt/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-ar rc
ranlib=http://www.eechina.com/opt/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-ranlib
make
make install
2. 编译libid3tag
tar zxvf libid3tag-0.15.1b.tar.gz
cd libid3tag-0.15.1b
./configure --prefix=http://www.eechina.com/home/linux/driver/mplay/media_install/usr --host=arm-linux --disable-debugging cc=http://www.eechina.com/opt/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc cppflags=-i/home/linux/driver/mplay/media_install/usr/include ldflags=-l/home/linux/driver/mplay/media_install/usr/lib
make
make install
3. 编译libmad
tar zxvf libmad-0.15.1b.tar.gz
cd libmad-0.15.1b
./configure --prefix=http://www.eechina.com/home/linux/driver/mplay/media_install/usr --host=arm-linux --disable-debugging cc=http://www.eechina.com/opt/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc cppflags=-i/home/linux/driver/mplay/media_install/usr/include ldflags=-l/home/linux/driver/mplay/media_install/usr/lib
make
出现:cc1: error: unrecognized command line option -fforce-mem
修改makefile
在makefile中找到包含fforce-mem字符串,将其删除即可;原因:gcc3.4或更高版本中,已将将该选项去除了。
再重新make即可
make install
4. 编译madplay
tar zxvf madplay-0.15.2b.tar.gz
cd madplay-0.15.2b
./configure --prefix=http://www.eechina.com/home/linux/driver/mplay/media_install/usr --host=arm-linux --disable-debugging --with-alsa cc=http://www.eechina.com/opt/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc cppflags=-i/home/linux/driver/mplay/media_install/usr/include ldflags=-l/home/linux/driver/mplay/media_install/usr/lib
make
编译出错:
/opt/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc -wall -o2 -fomit-frame-pointer -o madplay madplay.o getopt.o getopt1.o version.o resample.o filter.o tag.o crc.o rgain.o player.o audio.o audio_aiff.o audio_cdda.o audio_hex.o audio_null.o audio_raw.o audio_snd.o audio_wave.o audio_alsa.o-l/media/linuxworks/p760/multimedia/myworks/media_install/usr/lib /usr/lib/libasound.so -ldl -lpthread -lrt /media/linuxworks/p760/multimedia/myworks/media_install/usr/lib/libmad.so /media/linuxworks/p760/multimedia/myworks/media_install/usr/lib/libid3tag.so -lz -lm -wl,--rpath -wl,/media/linuxworks/p760/multimedia/myworks/media_install/usr/lib -wl,--rpath -wl,/media/linuxworks/p760/multimedia/myworks/media_install/usr/lib
直接修改最后一步:
/opt/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc -wall -o2 -fomit-frame-pointer -o madplay madplay.o getopt.o getopt1.o version.o resample.o filter.o tag.o crc.o rgain.o player.o audio.o audio_aiff.o audio_cdda.o audio_hex.o audio_null.o audio_raw.o audio_snd.o audio_wave.o audio_alsa.o-l/media/linuxworks/p760/multimedia/myworks/media_install/usr/lib /media/linuxworks/p760/multimedia/myworks/media_install/usr/lib/libasound.so -ldl -lpthread -lrt /media/linuxworks/p760/multimedia/myworks/media_install/usr/lib/libmad.so /media/linuxworks/p760/multimedia/myworks/media_install/usr/lib/libid3tag.so -lz -lm -wl,--rpath -wl,/media/linuxworks/p760/multimedia/myworks/media_install/usr/lib -wl,--rpath -wl,/media/linuxworks/p760/multimedia/myworks/media_install/usr/lib
make install
5.相关工具使用
./madplay tears.mp3
三、mplayer在s3c2410上移植(软解码)
tar jxvf mplayer-1.0rc2.tar.bz2
cd mplayer-1.0rc2
./configure --cc=http://www.eechina.com/opt/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc --host-cc=gcc --target=armv4l-linux --prefix=http://www.eechina.com/home/linux/driver/mplay/media_install/usr --disable-w32threads --disable-dvdread --disable-mencoder --disable-live --disable-mp3lib --disable-tv --disable-tv-v4l1 --disable-tv-v4l2 --disable-tv-bsdbt848 --disable-radio-v4l2 --disable-dvdnav --disable-cdparanoia --disable-bitmap-font --disable-ftp --disable-vstream --disable-ass --disable-network --enable-xv --enable-mad --enable-alsa --with-extraincdir=http://www.eechina.com/home/linux/driver/mplay/media_install/usr/include --with-extralibdir=http://www.eechina.com/home/linux/driver/mplay/media_install/usr/lib
make
在目录中就会生成mplayer可执行文件
mplayer软件对mpeg4解码还比较流畅;但h264的格式解码性能不够,音视频会不同步。
mplayer tears.mp3 //可以播放mp3文件
mplayer harrypotter.avi //mpeg4格式480 x 272格式
temi机器人打造行业专属的智能助手
英飞凌FP100R12KT4 IGBT模块内部拆解分析
无线路由器在油田监控组网系统的应用
多晶硅产量大幅上涨,电池片转化效率有所提升
LG化学在成都设材料技术中心,以期进军中国OELD材料市场
S3C2410下mplayer音视频播放器移植
三星发布全球最高分辨率笔记本产品
广汽埃安的弹匣电池技术是商业炒作还是黑科技?
使用MAX1848为4个白光LED高效供电
SMB15F系列具有成本效益的解决方案
电池交流阻抗和直流内阻的介绍
解密vivo发展之路:从颜值至上到内外兼修
射频器件概述 射频器件的挑战与创新
A 5G Odyssey :2021北京漫游
5G智能手机关键组成技术——天线技术
采用RTD的高EMC性能精密温度测量解决方案
电池材料:新能源汽车带动锂钴需求
高通Snapdragon Elite Gaming可变分辨率渲染技术加持
中兴已成为极致5G网络建设的中坚力量
基于恒虚警处理技术实现噪声或杂波平均电平的监测系统设计