浅谈基于MPLAYER 的RTSP客户端设计与实现论文
RTSP即实时流传输协议,是一种控制实时流传输的应用级协议。RTSP协议控制流媒体数据的传输,此协议主要应用于IPTV(交互式网络电视)系统。以下是学习啦小编为大家精心准备的:浅谈基于MPLAYER 的RTSP客户端设计与实现相关论文。内容仅供参考,欢迎阅读!
浅谈基于MPLAYER 的RTSP客户端设计与实现全文如下:
近年来,流媒体技术越来越多的被用到诸如视频会议、视频监控等诸多领域。尽管流媒体技术在PC 领域的发展已经较为成熟,但是在嵌入式领域,仍然有着重要的研究意义。
文章在arm-linux 上,通过移植开源库LIVE555 和开源播放器MPLAYER,并将两者联合编译,实现了RTSP 的客户端软件设计。实现通过IP 地址接受服务器端传输过来的RTSP 码流,并解码播放。
1 需求分析
RTSP 协议,即实时流传输协议,定义了一对多应用程序如何有效地通过IP 网络传送多媒体数据。RTSP 协议以客户端和服务器方式工作,要实现RTSP 的控制功能,需要有专门的媒体播放器(mediaplayer)和媒体服务器(media server)。媒体服务器与媒体播放器的关系是服务器与客户端的关系。
文章系统针对的是RTSP 客户端软件设计。需要能接收到网络传过来的码流数据,并进行RTP 解包,H264 解码,并实时播放。考虑到实际情况,采用了LIVE555+MPLAYER 的方案。
2 LIVE555 及其移植
LIVE555 是一个为流媒体技术提供解决方案的跨平台开源项目,它采用了C/S 架构,能够支持广播、单播和组播等通信模式,同时支持RTP/RTCP,RTSP 等高效流媒体传输协议,它是目前实现rtsp协议最高效的开源代码,能很方便的移植到各种嵌入式系统中,而且该开源项目更新速度很快,所以文章选择了LIVE555 作为解决方案。
本系统在设计时使用LIVE555 的官方源代码live.2015.02.01.tar.gz,下面介绍LIVE555 的配置、安装、移植步骤:
(1)下载LIVE555 源文件live.2015.04.01.tar.gz,并解压到/usr/local/lib/目录中。(2)修改编译器。修改config.armlinux 文件,替换为ARM 版本的编译器,CROSS_COMPILE=arm-none-linux-gnueabi-。(3)生成makefile。./genMakefile config.armlinux.(4)Make。可以看到开发包中多了很多新文件,至此,移植完成。编译完成后,找到Test-Progs 文件夹中的文件openrtsp 和testRTSPclient,将其拷贝到ARM中。
ARM 上电后,执行./openrtsp rtsp://192.168.1.100/Stream1.h264,可以看到能接收到服务器端发送过来的视频流,并将接收到的视频流的帧率,时间戳等信息打印到了屏幕上。
执行./openRTSP -F microcreat- rtsp://192.168.196.100/1.h264,可以看到LIVE555 将接收到的码流以H264 格式将数据保存了下来,此H264 文件是可以直接播放的。
3 MPLAYER 及其移植
文章选择了用开源播放器对RTSP 码流进行RTP 拆包的设计方案。而作为目前最优秀的播放器之一的MPLAYER,能够播放大部分流行的音视频格式文件,如MP3,WMV,RM,MPEG,VOB,AVI 等,同时支持嵌入式linux 系统,可移植性强,占用资源少,播放效果佳,因此文章选择了MPLAYER 作为解决方案。
本系统在设计时使用Mplayer 最新的官方源代码MPlayer-1.Orc2.tar.bz2,下面介绍Mplayer 的配置、安装、移植步骤:
(1)下载压缩文件,并解压MPlaye:源文件MPlayer-1.Orc2.tar.bz2。
(2)在MPlayer-1.Orc2 文件夹下执行如下配置文件,如下:
./configure-host-cc=gcc-cc=arm-none-linux-gnueabi-gcc-target=arm-linux-enable-static l-disable-dvdnav-disable-libdvdcss-internal-enable-fbdev-enaable-live-enable-x264-prefix==/opt/arm_mplayerdisable-ivtv-codecsdir= /home/mplayer/essential-20071007
其中:-cc=arm-none-linux-gnueabi-gcc 是用来指定编译器的,-target=arm-linux 是用来指出所编译的是目标版本是ARM-LINUX版本的,需要特别指出的是,enable-x264 是用来使能X264 编码库的,如果不使能则不能播放H264 视频,-enaable-live 这个选项是用来使能LIVE555 库的,一定不能少,否则不能接受码流。同时注意查看是否支持LIVE555,如果不支持,则需要执行:
./configure -extracflags=-I
(3)执行命令:make。至此,得到了mplayer 可执行文件。将其拷贝到目标版arm 上即可。
由于mplayer 默认使用fb0 进行播放,而本课题系统标清显示接口所对应的驱动为fb2,所以在运行示例程序前需要告知mplayer使用哪个fb 驱动,执行命令修改fb 默认使用通道,如下:
#export FRAMEBUFFER=/dev/fb2
#./mplayer -vo lbdev <播放文件名> //播放本地视频文件
#./mplayer -vo lbdev rtsp://192.168.196.100/1.h264 //接收网络码流并播放
通过以上方法,就得到了RTSP 的客户端软件,可以通过以上命令播放本地视频文件。同时也通过url(rtsp://192.168.196.100/1.h264)接收网络传过来的码流,并进行RTP 解包播放。
4 结束语
RTSP 的客户端设计有各种各样的方法,但是大部分都是针对不同的平台有着不同的解决方案,而文章所设计的系统具有很强的移植性,所有的ARM-LINUX 均可以采用文章所设计的系统建立RTSP 客户端,为相关应用提供了参考解决方案,有着重要的研究和应用意义。
相关文章: