實時視頻采集SDK(PC/iOS/Android)-實時CDN
(直播流的加速分發)-直播視頻播放器SDK(PC/IOS/Android)
二、音視頻處理的壹般流程:
數據采集→數據編碼→數據傳輸(流媒體服務器)→數據解碼→播放顯示。
1,數據采集:
攝像頭和拾音器采集視頻和音頻數據,此時獲得原始數據。
涉及技術或協議:
攝像頭:CCD、CMOS
拾音器:聲電轉換器件(麥克風)和音頻放大電路。
2.數據編碼:
使用相關硬件或軟件對原始音視頻數據進行編碼(數字化)和處理(如音視頻混合、打包等。)以獲得可用的音頻和視頻數據。
涉及技術或協議:
編碼模式:CBR,VBR
編碼格式
視頻:H.265,H.264,MPEG-4等。包裝容器有TS、MKV、AVI、MP4等。
音頻:G.711μ,AAC,Opus等。,與MP3、OGG、AAC等打包。
3.數據傳輸:
傳輸編碼的音頻和視頻數據。早期的音頻和視頻是通過同軸電纜等電纜傳輸的。IP網絡發展後,利用IP網絡進行優化傳輸。
涉及技術或協議:
傳輸協議:RTP和RTCP、RTSP、RTMP、HTTP、HLS(HTTPLiveStreaming)等。
控制信令:SIP、SDP、SNMP等。
4.解碼數據:
利用相關的硬件或軟件對接收到的編碼後的音頻和視頻數據進行解碼,以獲得可以直接顯示的圖像/聲音。
涉及技術或協議:
壹般對應的編碼器都會有對應的解碼器,也有壹些第三方解碼插件。
5.播放和顯示:
在顯示器(電視、監視器屏幕等)上。)或音箱(耳機、音箱等。),顯示相應的圖像或聲音。
涉及技術或協議:
顯示器、揚聲器、3D眼鏡等。
三、常見的視頻直播相關協議:
RTMP 1(實時消息協議)
RTMP是由AdobeSystems開發的壹種開放協議,用於Flash播放器和服務器之間的音頻、視頻和數據傳輸。它有三個品種:
1),明文協議工作在TCP上,使用端口1935;
2) RTMPT封裝在HTTP請求中,可以穿越防火墻;
3) RTMPS類似於RTMPT,但使用HTTPS連接;
Flash使用RTMP協議來傳輸對象、視頻和音頻。該協議基於TCP協議或輪詢HTTP協議。RTMP協議就像數據包的容器,數據包可以是AMF格式的數據,也可以是FLV的視頻和音頻數據。單個連接可以通過不同的通道傳輸多個網絡流,這些通道中的數據包都是按照固定大小的數據包傳輸的。
2.RTSP(實時流協議)
RTSP定義了壹對多應用程序如何通過IP網絡有效地傳輸多媒體數據。RTSP提供了壹個可擴展的框架,數據源可以包括實時數據和現有的存儲數據。該協議的目的是控制多個數據傳輸連接,提供壹種選擇UDP、組播UDP、TCP等傳輸通道的方式,提供壹種選擇基於RTP的傳輸機制的方法。
RTSP的語法和操作與HTTP/1.1類似,但並不特別強調時間同步,所以對網絡延遲的容忍度更高。代理服務器的緩存功能也適用於RTSP,並且由於RTSP具有重定向功能,可以根據實際負載切換提供服務的服務器,避免過多負載集中在同壹臺服務器上造成的延遲。
3.實時傳輸協議。
RTP是多媒體數據流的傳輸層協議,它詳細描述了在互聯網上傳輸音頻和視頻的標準分組格式。RTP協議常用於流媒體系統(采用RTCP協議)、視頻會議和壹鍵通系統(采用H.323或SIP),這使其成為IP電話行業的技術基礎。
RTP基於UDP協議,通常與RTCP壹起使用。RTP本身不提供按時交付機制或其他服務質量(QoS)保證,而是依靠底層服務來實現這壹過程。
RTP不保證傳輸或防止亂序傳輸,也不決定底層網絡的可靠性。它只是發送,不管傳輸是否丟失,也不管接收方是否收到數據包。RTP實現有序傳輸。RTP中的序列號允許接收方重組發送方的數據包序列,序列號也可用於確定適當的數據包位置。比如視頻解碼,不需要順序解碼。
4.RTCP(實時傳輸控制協議)
RTCP是RTP的支持協議,為RTP媒體流提供通道外控制。RTCP和RTP協同工作來打包和發送多媒體數據,並定期在多媒體流會話的參與者之間傳輸控制數據。
RTCP的主要功能是為RTP提供的服務質量(QoS)提供反饋,收集相關媒體連接的統計信息,如傳輸字節數、傳輸包數、丟包數、單向和雙向網絡延遲等。網絡應用程序可以使用RTCP提供的信息來提高服務質量,例如限制流量或切換到低壓縮比的編解碼器。