|
gstreamer 提供了教全面的網(wǎng)絡(luò)協(xié)議相關(guān)插件,要在broncho中實(shí)現(xiàn)其對(duì)流媒體播放的支持, 首先對(duì)其這些網(wǎng)絡(luò)協(xié)議相關(guān)的插件進(jìn)行了解,有些術(shù)語(yǔ)還不是太明白,先記錄下來(lái)以備后用。 DCCP: 數(shù)據(jù)報(bào)擁塞控制協(xié)議(Datagram Congestion Control Protocol) 是一種面向信息的傳輸協(xié)議:DCCP提供雙向單播連接的擁塞控制不可靠數(shù)據(jù)報(bào)。 DCCP實(shí)施可靠的連接建立,拆卸, ECN,擁塞控制,和功能協(xié)商。 DCCP是適合傳輸大量數(shù)據(jù)的應(yīng)用程序, 其能從及時(shí)性和可靠性之間的權(quán)衡取舍中受益。 gstreamer 中其插件描述如下(gst-plugins-bad): dccpclientsink:Send data as a client over the network via DCCP dccpclientsrc:Receive data as a client over the network via DCCP dccpserversink:Send data as a server over the network via DCCP dccpserversrc:Receive data as a server over the network via DCCP 示例: gst-launch -v dccpclientsrc host=localhost port=9011 ccid=2 ! decodebin ! alsasink gst-launch -v filesrc location=music.mp3 ! mp3parse ! dccpserversink port=9011 ccid=2 Send a MP3 stream to the client using DCCP. The client will decode the MP3 and play it. RTSP: 實(shí)時(shí)流傳輸協(xié)議(Real Time Streaming Protocol). RTSP是用來(lái)控制聲音或影像的多媒體串流協(xié)議,并允許同時(shí)多個(gè)串流需求控制,傳輸時(shí)所用的網(wǎng)絡(luò)通訊協(xié)定 并不在其定義的范圍內(nèi),服務(wù)器端可以自行選擇使用TCP或UDP來(lái)傳送串流內(nèi)容,它的語(yǔ)法和運(yùn)作跟HTTP 1.1類似, 但并不特別強(qiáng)調(diào)時(shí)間同步,所以比較能容忍網(wǎng)絡(luò)延遲。而前面提到的允許同時(shí)多個(gè)串流需求控制. 協(xié)議支持的操作如下: 從媒體服務(wù)器上檢索媒體: 媒體服務(wù)器邀請(qǐng)進(jìn)入會(huì)議: 將媒體加到現(xiàn)成講座中: gstreamer 中其插件描述如下(gst-plugins-good): rtpdec: Accepts raw RTP and RTCP packets and sends them forward rtspgoogle Extends RTSP so that it can handle Google setup rtspsrc: Receive data over the network via RTSP (RFC 2326) 示例: gst-launch rtspsrc location=rtsp://some.server/url ! fakesink TCP:傳輸控制協(xié)議(Transmission Control Protocol) 是一種面向連接的、可靠的、基于字節(jié)流的運(yùn)輸層通信協(xié)議。 gstreamer 中其插件描述如下(gst-plugins-base): multifdsink: Send data to multiple filedescriptors tcpclientsink: Send data as a client over the network via TCP tcpclientsrc:Receive data as a client over the network via TCP tcpserversink: Send data as a server over the network via TCP tcpserversrc: Receive data as a server over the network via TCP UDP: 用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol). 是 OSI 參考模型中一種無(wú)連接的傳輸層協(xié)議,提供面向事務(wù)的簡(jiǎn)單不可靠信息傳送服務(wù) gstreamer 中其插件描述如下(gst-plugins-good): dynudpsink: Send data over the network via UDP multiudpsink: Send data over the network via UDP udpsink: Send data over the network via UDP udpsrc: Receive data over the network via UDP 示例: read from the default port and dump the udp packets. gst-launch -v udpsrc ! fakesink dump=1。 SOUP:libsoup HTTP client src. 用來(lái)直接播放HTTP網(wǎng)絡(luò)媒體文件有較大用途。 souphttpsrc: Receive data as a client over the network via HTTP using SOUP example: Read and decode and play an mp3 file from a web server using the HTTP protocol: gst-launch -v souphttpsrc user-agent="FooPlayer 0.99 beta" automatic-redirect=false proxy=http://ranet.local:8080 location=http://XXX.com/demo.mp3 ! ffdemux_mp3 ! ffdec_nmp3 ! audioconvert ! audioresample ! alsasink |
|
|
來(lái)自: rookie > 《技術(shù)帖》