1. 程式人生 > >實現RTP協議的H.264視訊傳輸系統

實現RTP協議的H.264視訊傳輸系統

前面分別討論了RTP 協議及H.264基本流的結構,那麼如何使用RTP協議來傳輸H.264視訊了?一個有效的辦法就是從H.264視訊中剝離出每個NALU,在每個NALU前新增相應的RTP包頭,然後將包含RTP 包頭和NALU 的資料包傳送出去。下面就從RTP包頭和NALU兩方面分別闡述。
      完整的 RTP 固定包頭的格式在前面圖 1 中已經指出,根據RFC3984[3],這裡詳細給出各個位的具體設定。
      V:版本號,2 位。根據RFC3984,目前使用的RTP 版本號應設為0x10。
      P:填充位,1 位。當前不使用特殊的加密演算法,因此該位設為 0。
      X:擴充套件位,1 位。當前固定頭後面不跟隨頭擴充套件,因此該位也為 0。
      CC:CSRC 計數,4 位。表示跟在 RTP 固定包頭後面CSRC 的數目,對於本文所要實現的基本的流媒體伺服器來說,沒有用到混合器,該位也設為 0x0。
       M:標示位,1 位。如果當前 NALU為一個接入單元最後的那個NALU,那麼將M位置 1;或者當前RTP 資料包為一個NALU 的最後的那個分片時(NALU 的分片在後面講述),M位置 1。其餘情況下M 位保持為 0。 
       PT:載荷型別,7 位。對於H.264 視訊格式,當前並沒有規定一個預設的PT 值。因此選用大於 95 的值可以。此處設為0x60(十進位制96)。
      SQ:序號,16 位。序號的起始值為隨機值,此處設為 0,每傳送一個RTP 資料包,序號值加 1。
      TS:時間戳,32 位。同序號一樣,時間戳的起始值也為隨機值,此處設為0。根據RFC3984, 與時間戳相應的時鐘頻率必須為90000HZ。
      SSRC:同步源標示,32 位。SSRC應該被隨機生成,以使在同一個RTP會話期中沒有任何兩個同步源具有相同的SSRC 識別符。此處僅有一個同步源,因此將其設為0x12345678。
      對於每一個NALU,根據其包含的資料量的不同,其大小也有差異。在IP網路中,當要傳輸的IP 報文大小超過最大傳輸單元MTU(Maximum Transmission Unit )時就會產生IP分片情況。在乙太網環境中可傳輸的最大 IP 報文(MTU)的大小為 1500 位元組。如果傳送的IP資料包大於MTU,資料包就會被拆開來傳送,這樣就會產生很多資料包碎片,增加丟包率,降低網路速度。對於視訊傳輸而言,若RTP 包大於MTU 而由底層協議任意拆包,可能會導致接收端播放器的延時播放甚至無法正常播放。因此對於大於MTU 的NALU 單元,必須進行拆包處理。

相關推薦

實現RTP協議H.264視訊傳輸系統

前面分別討論了RTP 協議及H.264基本流的結構,那麼如何使用RTP協議來傳輸H.264視訊了?一個有效的辦法就是從H.264視訊中剝離出每個NALU,在每個NALU前新增相應的RTP包頭,然後將包含RTP 包頭和NALU 的資料包傳送出去。下面就從RTP包頭和NALU兩方面分別闡述。       完整的

使用jrtplib(RTP傳輸H.264視訊檔案(1)

繼續上一篇部落格,在使用x264對視訊進行編碼之後,我們需要將編碼好的視訊進行網路傳輸,傳送給其他的客戶端,之後再進行解碼。那麼,這篇部落格我將介紹下如何使用jrtplib這個庫對編碼後的檔案傳輸。 RTP協議基礎知識: 首先,我們依然要先了解一些關於協議的基礎知

基於RTPh.264視頻傳輸系統設計(一)

-i 感謝 項目 頻率 算術 處理 rop sel 決定 一、H.264 的層次介紹 H.264 定義三個層次,每一個層次支持一組特定的編碼功能。而且按照各個層次指定所指定的功能。基礎層次(baselineprofile)支持 I 幀和 P 幀【1】的幀內和幀間

RTP RTSP H.264 實時視訊

相關博文 :http://blog.csdn.net/evsqiezi/article/details/22881151                      http://blog.csdn.net/chen495810242/article/details/3920

基於RTP和Android的視訊傳輸的研究實現方法

1.安徽大學電腦科學與技術學院,安徽合肥230039;2.安徽大學計算智慧與訊號處理教育部重點實驗室,安徽合肥230039;3.安徽大學軟體學院,安徽合肥230039) 中國論文網 http://www.xzbu.com/8/view-2388338.htm   摘要:該

ffmpeg實現H.264視訊解碼-1

▶ ffmpeg是一個優秀的開源多媒體編解碼集合 ▶ ffmpeg的libavcodec完成音視訊的編碼或解碼 ▶ H.264視訊解碼主要由H264.c實現 ▶ H264.c能夠流暢解碼x264編碼工程的碼流 ▶ ffmpeg的H.264解碼過程包括初始

使用jrtplib傳輸H.264視訊檔案(3)

介紹如何傳送h264,下面我們介紹下如何接收h264檔案。 其中主要關注的就是被拆分的資料包的重組,下面的程式碼中有詳盡的註釋。 class CRTPReceiver : public RTPSession   {   protected:       vo

H.264視訊編碼推薦的解析度和位元速率配置表

在各種視訊編碼標準中,行業一直在求追“高壓縮比(資料量越小越好)”,同時又保證“高視訊質量”的演算法。魚和熊掌不可兼得,視訊編碼是一種折中的遊戲。引數“視訊位元速率”的設定,就代表了這種折中的選擇。位元速率越高,資料量越大,視訊質量越好,位元速率越小,資料量越小

Android音視訊-視訊編解碼(H.264視訊硬編硬解)

在前面接觸了音訊的編解碼,學習了通過MediaCodec來進行硬編碼。把AudioRecord 採集的到的PCM音訊資料編碼壓縮為AAC格式的音訊資料,然後解碼為PCM通過AudioTrack來播放。參考Demo連結 前面我們可以很形象的瞭解音訊資料,然後如何

h.264視訊檔案封裝

+++++一個完整的多媒體檔案是由音訊和視訊2部分組成的。H264、Xvid等就是視訊編碼格式,MP3、AAC等就是音訊編碼格式。字幕檔案只是其中附帶部分。    把視訊編碼和音訊編碼打包成一個完整的多媒體檔案,可以有不同的方式,這種方式便是所謂的封裝方式,不同的封裝方式有不同的字尾。由於有些封裝方式具有很

H.264視訊碼流解析

原理 H.264原始碼流(又稱為“裸流”)是由一個一個的NALU組成的。他們的結構如下圖所示。 其中每個NALU之間通過startcode(起始碼)進行分隔,起始碼分成兩種:0x00000

【譯】解決HTML5 MP4(H.264)視訊模糊的問題

MP4視訊檔案是所有主要的現代瀏覽器都認可和接受的檔案格式。如果你想知道具體的支援情況,請檢視 Can I Use 但是!當 HTML5視訊標籤Video 嵌入網頁中,如果沒有正確配置好你的MP4視訊會得到一個模糊影象的視訊。發生這種情況的原因是,這種型別的視

如何推送h.264視訊直播流到rtmp server

如果要單純的以h.264的碼流推送攝像頭的視訊到rtmp server(ip:127.0.0.1),可以這樣: ffmpeg -f video4linux2 -vcodec libx264 -vpre default  -s 320x240 -i /dev/video0

基於srs-librtmp釋出H.264視訊檔案到伺服器

開發平臺:Linux說明:srs提供了釋出H.264的例子,在例子程式碼檔案為srs_h264_raw_publish.c,例子呼叫srs-librtmp函式庫即可實現H.264檔案釋出到伺服器。srs-librtmp為VS2010工程,在Linux下可以直接使用原始碼,在s

H.264/ACC音視訊編碼流的RTP/RTSP傳輸實現(1)

目標:   實現一個用於H.264/ACC音視訊編碼流的RTP/RTSP傳輸的簡單伺服器,主要通過此過程學習基於RTP的NAL、ADTS碼流封裝技術和基於RTSP的視訊互動控制技術。完整系統應該包括伺服器和客戶端兩個部分,其中伺服器負責接收客戶端請求、封包以及

C++實現RTMP協議傳送H.264編碼及AAC編碼的音視訊直播

  RTMP(Real Time Messaging Protocol)是專門用來傳輸音視訊資料的流媒體協議,最初由Macromedia 公司建立,後來歸Adobe公司所有,是一種私有協議,主要用來聯絡Flash Player和RtmpServer,如FMS, Red5, 

C++實現RTMP協議傳送H.264編碼及AAC編碼的音視訊

作者HBStream   RTMP(Real Time Messaging Protocol)是專門用來傳輸音視訊資料的流媒體協議,最初由Macromedia 公司建立,後來歸Adobe公司所有,是一種私有協議,主要用來聯絡Flash Player和RtmpServer

使用RTP傳輸H.264格式視訊

一、H.264碼流 H.264功能分為兩層:視屏編碼層(VCL)和網路提取層(NAL) VCL:被壓縮編碼的視訊資料序列 NAL:VCL需要封裝到NAL單元中進行傳輸儲存 NAL單元分析 Nal頭 RBSP Nal頭 RBSP

什麼是H.323協議_視訊會議系統知識

H.323是一種音視訊通訊協議,可以與各個不同的網路、終端進行互通,是不同廠商系統互聯的基礎,億聯視訊會議系統,標準H.323協議,具備廣泛的相容性與整合性。 視訊會議系統,是指兩個或兩個以上不同地方的個人或群體,通過傳輸線路及多媒體裝置,將聲音、影像及檔案資料

H.264/AVC視訊編解碼技術詳解】十五、H.264的變換編碼(二):H.264整數變換和量化的實現

《H.264/AVC視訊編解碼技術詳解》視訊教程已經在“CSDN學院”上線,視訊中詳述了H.264的背景、標準協議和實現,並通過一個實戰工程的形式對H.264的標準進行解析和實現,歡迎觀看! “紙上得來終覺淺,絕知此事要躬行”,只有自己按照標準文件以程式碼