FFMPEG 流媒體協議

HLS-M3U8服務器

HLS(HTTP Live Streaming)是蘋果公司針對iPhone、iPod、iTouch和iPad等移動設備而開發的基於HTTP協議的流媒體解決方案。在 HLS 技術中 Web 服務器向客戶端提供接近實時的音視頻流。但在使用的過程當中是使用的標準的 HTTP 協議,因此這時,只要使用 HLS 的技術,就能在普通的 HTTP 的應用上直接提供點播和直播。在App Store中的視頻相關的應用,基本都是應用的此種技術。該技術基本原理是將視頻文件或視頻流切分紅小片(ts)並創建索引文件(m3u8)。支持的視頻流編碼爲H.264,音頻流編碼爲AAC。網絡

 

HLS視頻架構架構

    HLS視頻切片結構決定其播放延時會比較大,其延時在10S級別。併發

FFmpeg是一套能夠用來記錄、轉換數字音頻、視頻,並能將其轉化爲流的開源計算機程序。編碼

 

RTMP.net

RTMP(Real Time Messaging Protocol)實時消息傳送協議是Adobe Systems公司爲Flash播放器和服務器之間音頻、視頻和數據傳輸 開發的開放協議。視頻

它有三種變種:對象

1)工做在TCP之上的明文協議,使用端口1935;blog

2)RTMPT封裝在HTTP請求之中,可穿越防火牆;索引

3)RTMPS相似RTMPT,但使用的是HTTPS鏈接;

      RTMP協議(Real Time Messaging Protocol)是被Flash用於對象,視頻,音頻的傳輸.這個協議創建在TCP協議或者輪詢HTTP協議之上.

      RTMP協議就像一個用來裝數據包的容器,這些數據既能夠是AMF格式的數據,也能夠是FLV中的視/音頻數據.一個單一的鏈接能夠經過不一樣的通道傳輸多路網絡流.這些通道中的包都是按照固定大小的包傳輸的.

    RTMP協議延時在1-3秒左右,好的能夠作到1S如下。

 

RTSP

 

    RTSP(Real-TimeStream Protocol )是一種基於文本的應用層協議,在語法及一些消息參數等方面,RTSP協議與HTTP協議相似。RTSP被用於創建的控制媒體流的傳輸,它爲多媒體服務扮演「網絡遠程控制」的角色。儘管有時能夠把RTSP控制信息和媒體數據流交織在一塊兒傳送,但通常狀況RTSP自己並不用於轉送媒體流數據。媒體數據的傳送可經過RTP/RTCP等協議來完成。

    rtsp中定義的方法有:OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, SCALE, GET_PARAMETER ,SET_PARAMETER。@link

    一次基本的RTSP操做過程是:首先,客戶端鏈接到流服務器併發送一個RTSP描述命令(DESCRIBE)。流服務器經過一個SDP描述來進行反饋,反饋信息包括流數量、媒體類型等信息。客戶端再分析該SDP描述,併爲會話中的每個流發送一個RTSP創建命令(SETUP),RTSP創建命令告訴服務器客戶端用於接收媒體數據的端口。流媒體鏈接創建完成後,客戶端發送一個播放命令(PLAY),服務器就開始在UDP上傳送媒體流(RTP包)到客戶端。 在播放過程當中客戶端還能夠向服務器發送命令來控制快進、快退和暫停等。最後,客戶端可發送一個終止命令(TERADOWN)來結束流媒體會話。@link

    該協議用於C/S模型, 是一個基於文本的協議, 用於在客戶端和服務器端創建和協商實時流會話。

 

@link

 

RTCP實時傳輸控制協議(Real-time Transport Control Protocol或RTP Control Protocol或簡寫RTCP)是實時傳輸協議(RTP)的一個姐妹協議。RTCP爲RTP媒體流提供信道外(out-of-band)控制。

RTCP自己並不傳輸數據,但和RTP一塊兒協做將多媒體數據打包和發送。RTCP按期在流多媒體會話參加者之間傳輸控制數據。RTCP的主要功能是爲RTP所提供的服務質量(Quality of Service)提供反饋。

RTCP收集相關媒體鏈接的統計信息,例如:傳輸字節數,傳輸分組數,丟失分組數,jitter,單向和雙向網絡延遲等等。網絡應用程序能夠利用RTCP所提供的信息試圖提升服務質量,好比限制信息流量或改用壓縮比較小的編解碼器。實現實時視頻流時,先用採集設備,直接把視頻作成 H.264 的 NAL unit,然後經過 RTP打包,傳輸給客戶端。

參考:

     HLS科普1 HLS和M3U8簡介

     HLS協議介紹

     流媒體傳輸協議綜述(RTP-RTCP RTSP RTMP HTTP)

相關文章
相關標籤/搜索