淺談基于MPLAYER 的RTSP客戶端設(shè)計與實現(xiàn)論文
淺談基于MPLAYER 的RTSP客戶端設(shè)計與實現(xiàn)論文
RTSP即實時流傳輸協(xié)議,是一種控制實時流傳輸?shù)膽?yīng)用級協(xié)議。RTSP協(xié)議控制流媒體數(shù)據(jù)的傳輸,此協(xié)議主要應(yīng)用于IPTV(交互式網(wǎng)絡(luò)電視)系統(tǒng)。以下是學習啦小編為大家精心準備的:淺談基于MPLAYER 的RTSP客戶端設(shè)計與實現(xiàn)相關(guān)論文。內(nèi)容僅供參考,歡迎閱讀!
淺談基于MPLAYER 的RTSP客戶端設(shè)計與實現(xiàn)全文如下:
近年來,流媒體技術(shù)越來越多的被用到諸如視頻會議、視頻監(jiān)控等諸多領(lǐng)域。盡管流媒體技術(shù)在PC 領(lǐng)域的發(fā)展已經(jīng)較為成熟,但是在嵌入式領(lǐng)域,仍然有著重要的研究意義。
文章在arm-linux 上,通過移植開源庫LIVE555 和開源播放器MPLAYER,并將兩者聯(lián)合編譯,實現(xiàn)了RTSP 的客戶端軟件設(shè)計。實現(xiàn)通過IP 地址接受服務(wù)器端傳輸過來的RTSP 碼流,并解碼播放。
1 需求分析
RTSP 協(xié)議,即實時流傳輸協(xié)議,定義了一對多應(yīng)用程序如何有效地通過IP 網(wǎng)絡(luò)傳送多媒體數(shù)據(jù)。RTSP 協(xié)議以客戶端和服務(wù)器方式工作,要實現(xiàn)RTSP 的控制功能,需要有專門的媒體播放器(mediaplayer)和媒體服務(wù)器(media server)。媒體服務(wù)器與媒體播放器的關(guān)系是服務(wù)器與客戶端的關(guān)系。
文章系統(tǒng)針對的是RTSP 客戶端軟件設(shè)計。需要能接收到網(wǎng)絡(luò)傳過來的碼流數(shù)據(jù),并進行RTP 解包,H264 解碼,并實時播放。考慮到實際情況,采用了LIVE555+MPLAYER 的方案。
2 LIVE555 及其移植
LIVE555 是一個為流媒體技術(shù)提供解決方案的跨平臺開源項目,它采用了C/S 架構(gòu),能夠支持廣播、單播和組播等通信模式,同時支持RTP/RTCP,RTSP 等高效流媒體傳輸協(xié)議,它是目前實現(xiàn)rtsp協(xié)議最高效的開源代碼,能很方便的移植到各種嵌入式系統(tǒng)中,而且該開源項目更新速度很快,所以文章選擇了LIVE555 作為解決方案。
本系統(tǒng)在設(shè)計時使用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??梢钥吹介_發(fā)包中多了很多新文件,至此,移植完成。編譯完成后,找到Test-Progs 文件夾中的文件openrtsp 和testRTSPclient,將其拷貝到ARM中。
ARM 上電后,執(zhí)行./openrtsp rtsp://192.168.1.100/Stream1.h264,可以看到能接收到服務(wù)器端發(fā)送過來的視頻流,并將接收到的視頻流的幀率,時間戳等信息打印到了屏幕上。
執(zhí)行./openRTSP -F microcreat- rtsp://192.168.196.100/1.h264,可以看到LIVE555 將接收到的碼流以H264 格式將數(shù)據(jù)保存了下來,此H264 文件是可以直接播放的。
3 MPLAYER 及其移植
文章選擇了用開源播放器對RTSP 碼流進行RTP 拆包的設(shè)計方案。而作為目前最優(yōu)秀的播放器之一的MPLAYER,能夠播放大部分流行的音視頻格式文件,如MP3,WMV,RM,MPEG,VOB,AVI 等,同時支持嵌入式linux 系統(tǒng),可移植性強,占用資源少,播放效果佳,因此文章選擇了MPLAYER 作為解決方案。
本系統(tǒng)在設(shè)計時使用Mplayer 最新的官方源代碼MPlayer-1.Orc2.tar.bz2,下面介紹Mplayer 的配置、安裝、移植步驟:
(1)下載壓縮文件,并解壓MPlaye:源文件MPlayer-1.Orc2.tar.bz2。
(2)在MPlayer-1.Orc2 文件夾下執(zhí)行如下配置文件,如下:
./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,如果不支持,則需要執(zhí)行:
./configure -extracflags=-I
(3)執(zhí)行命令:make。至此,得到了mplayer 可執(zhí)行文件。將其拷貝到目標版arm 上即可。
由于mplayer 默認使用fb0 進行播放,而本課題系統(tǒng)標清顯示接口所對應(yīng)的驅(qū)動為fb2,所以在運行示例程序前需要告知mplayer使用哪個fb 驅(qū)動,執(zhí)行命令修改fb 默認使用通道,如下:
#export FRAMEBUFFER=/dev/fb2
#./mplayer -vo lbdev <播放文件名> //播放本地視頻文件
#./mplayer -vo lbdev rtsp://192.168.196.100/1.h264 //接收網(wǎng)絡(luò)碼流并播放
通過以上方法,就得到了RTSP 的客戶端軟件,可以通過以上命令播放本地視頻文件。同時也通過url(rtsp://192.168.196.100/1.h264)接收網(wǎng)絡(luò)傳過來的碼流,并進行RTP 解包播放。
4 結(jié)束語
RTSP 的客戶端設(shè)計有各種各樣的方法,但是大部分都是針對不同的平臺有著不同的解決方案,而文章所設(shè)計的系統(tǒng)具有很強的移植性,所有的ARM-LINUX 均可以采用文章所設(shè)計的系統(tǒng)建立RTSP 客戶端,為相關(guān)應(yīng)用提供了參考解決方案,有著重要的研究和應(yīng)用意義。
相關(guān)文章: