從網路上接收視頻時首先要解協議(RTSP/RTMP/HTTP),然後是解格式(MKV,RMVB),之後才是將視頻(H264)和音頻(AAC)格式數據分別解碼為圖像(RGB/YUV)和聲音(PCM),再根據時間戳同步播放。
RTSP+RTP主要用於IPTV,原因是傳輸數據使用的是UDP,在網路環境比較穩定的情況下,傳輸效率是比較高的;
RTMP主要用於互聯網音視頻傳輸,它使用的是TCP傳輸,因為互聯網環境相對較差,採用RTMP保證了視頻的傳輸質量,但是其傳輸延遲相對較高,傳輸效率相對較低。
使用RTMP技術的流媒體系統有一個非常明顯的特點:使用 Flash Player 作為播放器客戶端,而Flash Player 現在已經安裝在了全世界將近99%的PC上,因此一般情況下收看RTMP流媒體系統的視音頻是不需要安裝插件的。用戶只需要打開網頁,就可以直接收看流媒體,十分方便。直播服務普遍採用了RTMP作為流媒體協議,FLV作為封裝格式,H.264作為視頻編碼格式,AAC作為音頻編碼格式。FLV是RTMP使用的封裝格式,H.264是當今實際應用中編碼效率最高的視頻編碼標準,AAC則是當今實際應用中編碼效率最高的音頻編碼標準。
librtmp是RTMP協議的實現,可以使用librtmp來實現協議的解析和數據的收發。直播伺服器可以基於nginx+rtmp實現;直播客戶端方面採用librtmp負責推流,FFmpeg負責編碼;收看客戶端採用VLC即可,因為VLC本身既可以解析RTMP流,又可以解析編碼後的視頻數據。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/225165.html