资源描述
使用vlc作为视频流测试的服务器端,mplayer作为客户端。Vlc使用其官网发布的vlc-1.0.5版本,mplayer使用修改支持IPv6的版本:mplayer-export-2009-04-14.tar.gz
Vlc的安装
1. 从vlc官网下载vlc源码。http://www.videolan.org/vlc/download-sources.html
如果直接在线安装,则因为vlc默认禁止root用户使用,所以使用源码安装
2. 为了能够正确编译vlc源码,需要下载和编译相关的库,不然在编译过程中会出错,
需要以下库:libmad、libavcodec、swscale、libpostproc、a52、fribidi、QT4、libdvbpsi
1) 编译libmad库
按照提示,下载:
./configure
make 提示错误
cc1: error: unrecognized command line option "-fforce-mem"
make[2]: *** [version.lo] Error 1
make[2]: Leaving directory `/home/izhier/download/libmad-0.15.1b'
google之,说是gcc版本太高,修改Makefile,删除-fforce-mem
即可make,然后make install
2) 编译libavcodec、swscale、libpostproc库
下载,编译:http://www.ffmpeg.org/download.html
或者直接用svn下载最新版:svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
./configure --enable-swscale --enable-postproc --enable-gpl
make
编译过程极其漫长
完成之后输入make install即OK
3) 编译a52库
按照提示,从地址 下载,
./configure
make
make install
4) 编译fribidi库
从网址:http://fribidi.org/下载fribidi,然后编译安装。
[root@tsong fribidi-0.10.9]# ./configure
make
make install
5) 编译qt4库
下载QT4, 这又是一个大家伙,编译大概需要3个多小时,
./configure
Make
Make install
指定pkg-config,让pkg-config可以找到qt4就可以了(/usr/local/Trolltech/Qt-4.7.1)
另一种方法:
chmod u+x qt-sdk-linux-x86-opensource-2010.05.1.bin
You should now be able to execute the file as normal. You can do this from the command line by typing:
./qt-sdk-linux-x86-opensource-2010.05.1.bin
让pkg-config可以找到qt4就可以了(/opt/qtsdk-2010.05/qt/lib/pkgconfig)
6) 编译libdvbpsi库
下载地址:http://download.videolan.org/pub/libdvbpsi/
。/configure make make install
3. 如果不安装libdvbpsi库,则在vlc作为视频流输出服务端时出错:
[root@localhost vlc-1.0.5]# vlc 1.avi --sout '#duplicate{dst=std{access=udp,mux=ts,dst=[2001:da8:215:1800:20c:29ff:fead:1792]:1234}}'
VLC media player 1.0.5 Goldeneye
[0x9d775b8] main interface error: no interface module matched "globalhotkeys,none"
[0x9d775b8] main interface error: no suitable interface module
[0x9ccd8e0] main libvlc error: interface "globalhotkeys,none" initialization failed
[0x9ccd8e0] main libvlc: 正在以默认界面运行 vlc,使用 'cvlc' 将 vlc 运行在无界面的状态下。
[0x9d88178] main mux error: no sout mux module matched "ts"
[0x9d83c78] stream_out_standard stream out error: no suitable sout mux module for `udp/ts://[2001:da8:215:1800:20c:29ff:fead:1792]:1234'
[0x9d813a8] stream_out_duplicate stream out error: no destination given
[0x9d81b28] main stream output error: stream chain failed for `duplicate{dst=std{access=udp,mux=ts,dst=[2001:da8:215:1800:20c:29ff:fead:1792]:1234}}'
[0xb5d17db0] main input error
7) export PKG_CONFIG_PATH="/usr/lib/pkgconfig: /usr/local/lib/pkgconfig: /usr/local/Trolltech/Qt-4.7.1 /lib/pkgconfig"
或export PKG_CONFIG_PATH="/usr/lib/pkgconfig: /usr/local/lib/pkgconfig: /opt/qtsdk-2010.05/qt/lib/pkgconfig "
可以测试一下:
[root@tsong vlc-1.0.6]# pkg-config --modversion qt*
4. 为了让root用户可以执行VLC,我们需要加上 --enable-run-as-root
(ps:可以执行如下:[root@tsong vlc-1.0.6]# ./configure --help|grep root )查看该命令怎么写
编译命令:./configure --enable-run-as-root
不加—prefix选项的默认安装路径为/usr/local/lib
Make
Make intall
5. 使用vlc作为服务端命令如下:
vlc -vvv 1.avi --file-caching 5000 --sout-ts-pcr 50 --sout-display '#duplicate{dst=std{access=udp,mux=ts,dst=[2001:da8:215:1800:20c:29ff:fead:1792]:1234},dst=display}'
注:用vlc播放*.m2v, *.ts的文件,vlc界面上可能会出现如下错误:
main decoder error: no suitable decoder module for fourcc `mpgv'.
同时,console中还会出现如下警告:
重定位后无法恢复段 prot: 权限不够
一度以为是自己没有将libmpeg2给安装上, 后来弄了半天才发现是selinux把插件给禁止了, 所以vlc没有把这些插件给加载进去,当然就找不到mpgv的解码器libmpeg2, 执行setenforce 0把selinux关闭。
安装mplayer
1. 下载如下这些软件:
解码包:all-20071007.tar.bz2、windows-all-20071007.zip
皮肤(可选):Blue-1.7.tar.bz2
主程序:mplayer-export-2009-04-14.tar.gz
2. 将all-20071007.tar.bz2解压到/usr/lib/codecs中(如果没有相应目录就自己建一个),命令如下:
tar -xjvf all-20071007.tar.bz2
cd all-20071007
cp -r * /usr/lib/codecs
3. 将windows-all-20071007.zip解压到/usr/lib/win32中(如果没有相应目录就自己建一个),命令如下:
unzip windows-all-20071007.zip
cd windows-all-20071007
cp -r * /usr/lib/win32
4. 解压MPlayer后 configure,命令步骤如下:
tar –xjvf mplayer-export-2009-04-14.tar.gz
cd MPlayer
./configure –enable-gui –enable-freetype –codecsdir=/usr/lib/codecs/ –win32codecsdir=/usr/lib/win32/
此处的–prefix和–codecsdir和–win32codecsdir都是可以自定义的。但建议非高手不要自己改,按默认即可。
enable-gui用于安装mplayer的图形界面。如果你只在命令行工作,那么当然可以省去这个选项。
5. 编译、安装,命令如下:
make
make install
6. 作为客户端播放视频
export LD_LIBRARY_PATH=/usr/local/lib:$ LD_LIBRARY_PATH 解决gmplayer: error while loading shared libraries: libfribidi.so.0: cannot open shared object file: No such file or directory
视频播放前一定要把防火墙关掉,不然mplayer接收不到视频流
[root@localhost src]# mplayer udp://[2001:da8:215:1800:20c:29ff:fe85:54da]:1234
附:可能出现问题:找不到libmad.so.0共享库,解决方法:建立符号链接ln –s /usr/local/lib/libmad.so.0 /usr/lib/libmad.so.0
展开阅读全文