mplayer finish

 

Mplayerlinux下安装

 

1.       开发环境:

red hat 5

内核2.6.18

Gcc –v 4.1.2

 

2.       Mplayer资源包:  http://www.mplayerhq.hu/MPlayer/releases/

   下载sourcecodecsskins以及font文件(注意sourcecodecs要同版本,即开发日期)

MPlayer-1.0rc1.tar.bz2      # source

essential-20061022.tar.bz2   #codecs

windows-all-20061022.zip   # codecs

Blue-1.7.tar.bz2           #skin

gb2312-ming.tar.bz2       #font

 

下载live555流媒体库:http://www.live555.com/liveMedia/public/live555-latest.tar.gz

 

 

3.       linux下安装:

1)      编译live555:

# tar zxvf live555-latest.tar.gz

# mv live /usr/local/lib/

# cd live

#./genMakefiles linux

# make

 

2)      解压 codecs

# tar jxvf essential-20061022.tar.bz2

# mv essential-20061022 /usr/local/lib/codecs

# unzip windows-all-20061022.zip

# mv windows-all-20061022 /usr/local/lib/wincodecs

 

3)      编译MPlayer-1.0rc1

# tar jxvf MPlayer-1.0rc1.tar.bz2

# cd MPlayer-1.0rc1

# ./configure --prefix=/usr/local/mplayer --enable-gui  --enable-live --enable-menu --enable-largefiles --language=zh_CN --with-codecsdir=/usr/local/lib/codecs --with-win32libdir=/usr/local/lib/wincodecs --with-livelibdir=/usr/local/lib/live 

# make

# make install

 

安装完成后,执行文件在/usr/local/mplayer/bin

注意:./configure参数分析如下

重要参数说明:
--prefix=                               安装路径为/usr/local/mplayer

--enable-gui           
        使用图形界面,mplayer有命令行和图形界面两种运行方式
--enable-live           
                     使用流媒体支持

--enable-largefiles                        使用大文件支持
--language=zh_CN    
                    mplayer界面的格式为中文
--with-codecsdir=/usr/local/lib/codecs        
指定解码器搜索路径

--with-win32libdir=/usr/local/lib/codecs       
指定win32解码器搜索路径

--with-livelibdir=/usr/local/lib/live                
指定live解码器搜索路径

 

4)  安装skinfont

注意:MPlayer默认的skin是在../default 目录下的。

# tar jxvf Ater-1.2.tar.bz2

# mv Ater-1.2/* /usr/local/mplayer/share/mplayer/skin/default/

安装font:

# tar jvxf gb2312-ming.tar.bz2

# cd gb2312-ming/gbsn00lp16/

# cp * /usr/local/mplayer/share/mplayer/font/

 

5)  运行mplayer/gmplayer

使用MPlayer 时,在终端输入mplayer 是文本界面播放器,gmplayer 打开图形界面。

 

Mplayer移植到ARM9

由于MPlayer中默认的mp3解码器是mp3lib,使用的是浮点数运算,相当占用CPU 资源,故在编译的时候可以使用libmad 进行音频输出,使用之前需要自己手动编译libmad,保证交叉编译器能够找到libmad库以及头文件,编译时增加--enable-mad就可以了。利用mad解码mp3文件,可以看到CPU占用率降低到了20%左右。

(1).交叉编译libmad (arm-linux-gcc 3.3.2)

下载libmad包(libmad-0.15.1b.tar.gz

网址:http://www.linuxfromscratch.org/blfs/view/6.1/multimedia/libmad.html

http://sourceforge.net/project/showfiles.php?group_id=12349

将其解压后,进入libmad的目录,输入配置命令

 

./configure --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=/usr/local/arm/3.3.2/lib

make

make install

这样就可以看到在/usr/local/arm/3.3.2/lib 目录下多了include lib 目录,

这些就是libmad相关的库文件。

(2)交叉编译MPlayer-1.0rc1 (arm-linux-gcc 3.3.2)

./configure --cc=arm-linux-gcc --host-cc=gcc --enable-cross-compile --target=arm-armv4l-linux --enable-linux-devfs --disable-win32 --disable-dvdread --enable-fbdev --disable-mencoder --enable-libavcodec --disable-liba52 --enable-mp3lib --enable-static --disable-live --disable-armv5te --disable-iconv --charset=noconv --enable-mad --enable-ossaudio --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

make

:在交叉编译MPlayer-1.0rc1,由于redhat 5 gcc版本太高,编译会出现错误.但编译MPlayer-1.0rc2,不会出现错误.所以,本人在redhat 9下编译MPlayer-1.0rc1.

 

利用NFS,挂载到目标机上.

以下为测试结果:

1)FS2410

./mplayer nosound /home/menony/happy.avi 视频顺利播放,声音没

./mplayer  /home/menony/happy.avi 视频卡,声音没

./mplayer ac mad /home/menony/happy.avi 视频顺利播放,声音没,听说是音频驱动问题.

./mplayer ac mad /home/menony/happy.avi 根据<MPlayer研究报告>修改libao/ao_oss.c内容后测试, 视频卡,声音没

 

2)mini2440(友善)

能够解决FS2410的问题

./mplayer ac mad /home/menony/happy.avi 视频顺利播放,声音可以.很好.

 

3)pxa270(亿道实验箱,实验室)

./mplayer nosound /home/menony/happy.avi 视频很卡,声音没

./madplay /home/menony/love.mp3 只播放mp3都很慢.

这个问题原因现在不知道.内核是2.6.

 

下面在移植mplayer时添加对流媒体live的支持(redhat 9)

(确保export PATH=/usr/local/arm/3.3.2/bin:$PATH)

1.交叉编译live555.(先删掉支持mplayerPC上运行的live)

tar zxvf live555-latest.tar.gz

cd live

vim config.armlinux

修改如下:

CROSS_COMPILE=        arm-linux-

LINK =      $(CROSS_COMPILE)g++ -o

LIBRARY_LINK =      $(CROSS_COMPILE)ld o

LIBRARY_LINK_OPTS =       $(LINK_OPTS) r Bstatic

保存后退出

./genMakefiles armlinux

Make

 

2.交叉编译mplayer

./configure --cc=arm-linux-gcc --host-cc=gcc --enable-cross-compile --target=arm-armv4l-linux --enable-linux-devfs --disable-win32 --disable-dvdread --enable-fbdev --disable-mencoder --enable-libavcodec --disable-liba52 --disable-mp3lib --enable-static --enable-live --disable-armv5te --disable-iconv --charset=noconv --enable-mad --enable-ossaudio --with-livelibdir=/usr/local/lib/live --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

 

make

 

使用nfs挂载测试mplayer

在终端上测试移植到ARM9mplayer(已经支持live555)

命令:./mplayer rtsp://192.168.1.103/sample_100kbit.mp4

效果和在PC上运行一样.mp3也不行.

 

:编译好的mplayerredhat 5 /home/save/1_27.

1.       redhat 9下交叉编译live555(/usr/local/lib/live),交叉编译libmad(/usr/local/arm/3.3.2/lib/).

最后交叉编译mplayer(/home/mpl ayer/)

2.       先在redhat 9下编译mplayer,再共享到redhat 5.因为DSS服务器安装在redhat 5.

 

 

有待解决问题:

1.       mp3无法播放.PC上和在FS2410上使用流媒体播放形式都播放不了.

2.       在使用流媒体播放视频时,只能播放(3gpmp4mov)格式.如果使用mplayer播放本地文件.avi是可以的.rtsp时不可以.这就需要把.avi格式转换成.mp4格式.即使用Xvid编码器制作MPEG-4压缩视频.

3.       FS2410在使用mplayer播放音频时,还不可以.和音频驱动有关.在友善mini2440,音频是没有问题的.

4.      移植到ARM9mplayer还没有皮肤,所以应该使用QT4制作界面.虽然QT4所占空间大,

但功能强大,对以后工作有帮助.

5.  PClinux下的流媒体服务器(Darwin Streaming Server(DSS)live555 media server)是网上的源代码.所以,有能力,要自己动手写一个流媒体服务器(RTSP.RTP.RTCP协议)

6.  由于在测试过程中都是使用NFS挂载mplayer.在后期应该做成文件系统,一起烧写到指flash

 

 

 

 

 

 

 

 

mencoder

.avi转为.mp4

/usr/local/mplayer/bin,

./mencoder -of mpeg –vf scale=320:240 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=500 -oac copy /home/menony/happy.avi -o /usr/local/movies/happy.mp4

 

测试: ./mplayer /usr/local/movies/happy.mp4 能正常

参数说明:

# -vf scale=320:240,调整视频尺寸到320x240

# -oac copy,指定音频编码器,copy是指不压缩,直接使用源文件里的音频。copy换成 MP3lame,即压缩成mp3

# -ovc lavc,指定视频编码器,使用libavcodec编码器;

# -lavcopts vcodec=mpeg4:vbitrate=500,指定libavcodec的参数,vcodec=mpeg4指使用mpeg4压缩,就是DivXvbitrate=500500kbps的比特率。

 

测试:./mplayer rtsp://192.168.1.103/happy.mp4出错,播放不了.错误如下:

librtsp: server responds: 'RTSP/1.0 415 Unsupported Media Type'

rtsp_session: unsupported RTSP server. Server type is 'DSS/5.5.5 (Build/489.16; Platform/Linux; Release/Darwin; state/beta; )'.

STREAM_LIVE555, URL: rtsp://192.168.1.103/happy.mpg

Stream not seekable!

检测到  文件格式。

Failed to get a SDP description from URL "rtsp://192.168.1.103/happy.mpg": cannot handle DESCRIBE response: RTSP/1.0 415 Unsupported Media Type

分析:DSS是没问题的.出现的错误和下面测试结果一样.应该是和流媒体格式有关.

测试:./mplayer rtsp://192.168.1.103/happy.avi出错,播放不了,错误如上.

 

如何将自己的视频转换为流媒体格式?

 

研究这个东西费了我好大的劲,一开始不知道视频还有专门针对流媒体的,以为只要用

MediaCoder 将视频转换成合适的格式,如:MPEG4 + AAC + MP4 / MPEG4 + AAC +

3GP 就可以放了,反复放到服务器上面去测试,VLC QuickTime 都没法打开。于是

又用工具打开 DSS 自带的几个示例视频看它们的格式,反复转换试不同的视频和音频编

码和外壳,还是不行...郁闷死我了

 

DSS 的邮件列表里面找了找相关的文章,发现有讲好像要用特别的工具对视频

hint一下,然后就可以在 RTSP 上面用了,说可以用 QuickTime Pro VLC 来转换,我用 VLC 试了一下,文件菜单一个叫“流(s)”的功能,但试了还是不行,没看到文件有变动过。

 

于是再沿着 Hint 关键词在 Google 上面找文章,找到了 Nokia 论坛里面,看到这

篇文章:http://discussion.forum.nokia.com/forum/showthread.php?t=125540 里面有说可以使用 Mp4box 对视频进行 hint

 

于是我在 http://www.videohelp.com/tools/mp4box 这里下载到了mp4box

(不用下载GUI的,直接用命令行操作就好了,只用一条命名)

 

下载到到解压出后会有个叫 mp4box.exe ,用它在命令行下面运行

 

C:/Program Files/Darwin Streaming Server/Movies>mp4box mymovie.mp4 -hint

 

出现结果:

 

Hinting file with Path-MTU 1450 Bytes

Hinting track ID 201 - Type "mp4v:mp4v" (MP4V-ES) - BW 33 kbps

Hinting track ID 101 - Type "mp4a:mp4a" (mpeg4-generic) - BW 64 kbps

Saving mymovie.mp4: 0.500 secs Interleaving

 

流媒体视频就转换好了,现在文件大小就会有变动,变大了一些。

 

然后,再用 VLC   QuickTime 打开 rtsp://127.0.0.1:554/mymovie.mp4

试能否播放吧!如果你有3G手机,可以直接用手机打开这个地址试一下。

 

linux mp4box 安装 (没有实现,编译错误,要安装包)

===========================================================

作者: joy129(http://joy129.itpub.net)
发表于: 2009.06.26 10:42
分类: Linux应用
出处: http://joy129.itpub.net/post/39024/486505
---------------------------------------------------------------

yum -y install freeglut
yum -y install freeglut-devel
wget
http://downloads.sourceforge.net/gpac/gpac-0.4.5.tar.gz
wget
http://downloads.sourceforge.net/gpac/gpac_extra_libs-0.4.5.tar.gz
tar zxvf gpac-0.4.5.tar.gz
tar zxvf gpac_extra_libs-0.4.5.tar.gz

cd gpac

cp -r ../gpac_extra_libs/* extra_lib/
chmod +x configure
./configure
make lib
make apps
make install
cp bin/gcc/libgpac.so /usr/lib

再安装完MP4Box之后同样要执行一次ldconfig命令,然后执行MP4Box -version命令后可以看到如下内容

# MP4Box -version
MP4Box - GPAC version 0.4.5 (build 33)
GPAC Copyright: (c) Jean Le Feuvre 2000-2005
(c) ENST 2005-200X

这样一来所有的工作就都做完了,剩下的就是按照自己的需要写ffmpeg的转码脚本了

问题解决:

在安装MP4Box的时候可能会出现下面的问题

/usr/bin/ld: skipping incompatible /usr/lib/libGL.so when searching for -lGL/usr/bin/ld: cannot find -lGLcollect2: ld returned 1 exit statusmake[1]: *** [libgpac.so] Error 1make[1]: Leaving directory `/root/gpac/src’make: *** [lib] Error 2

原因是mesa-libGL-devel这个包可能不完整,直接使用yum -y install mesa-libGL-devel命令把这个包安装一下,然后在make的时候就正常了

1 .由于mp4boxlinux安装出现问题.所以我下载一个在windows下运行的mp4box.exe(目录: E:/FS2410/Linux/MP4Box-v0.4.6-dev_20091013).

2. 由于mp4box在转换.mp4为流媒体格式时,其用的编码库是xvid. 因此如果用mplayer中的mencoder编码时,要使用xvid编码库.mencoder自身的 lavc (libavcodec)时会出错,无法识别.

 

3.所以要添加xvidcoremplayer,否则编码时无法识别.解决如下节

 

 

 

xvidcore-1.1.3安装(xvid对视频进行MPEG编码)

tar xvfz xvidcore-1.1.3.tar.gz

cd xvidcore-1.1.3.tar.gz

cd build/generic

./configure –prefix=/usr/local/lib

make

make install

/usr/local/lib目录下出现includelib

 

重新编译mplayer-1.0rc1,添加对xvid的支持。确保这时的live库是在PC上编译,不是交叉编译的。

./configure --prefix=/usr/local/mplayer --enable-gui  --enable-xvid --enable-live --enable-menu --enable-largefiles --language=zh_CN --with-codecsdir=/usr/local/lib/codecs --with-win32libdir=/usr/local/lib/wincodecs --with-livelibdir=/usr/local/lib/live --with-xvidlibdir=/usr/local/lib/lib/

make

make install

 

使用xvid编码.avi.mp4格式:

cd /usr/local/mplayer/bin

./mencoder -of mpeg -vf scale=240:320 -ovc xvid -xvidencopts bitrate=500

-oac copy /home/menony/happy.avi -o /usr/local/movies/2.mp

虽然是用xvid编码转换的。但在windows下,使用mp4box.exe-hint时,同样无法

识别。不知什么原因。

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值