1. 程式人生 > >wireshark+rtmp協議分析

wireshark+rtmp協議分析

  • 使用wireshark抓包工具

  1. 如何使用wireshark中常見的過濾選項包括協議型別、埠號、stream eq、ip地址
  2. 通過wireshark,要學會如何重網路包中獲取視訊幀的資料,這裡主要針對rtmp協議。
     
  •  抓取網路包

  1. 開啟wireshark抓包工具,設定tcp監聽
  2. 開啟vlc選擇網路串流播放,輸入rtmp播放地址,開始播放
  3. 將wireshark監聽的網路包儲存為本地檔案
  •  分析網路包

  1. 抓取的網路包中包括又rtmp協議型別,通過設定rtmpt 過濾,可以得到video以及audio的包資料
  2.  RTMP協議封包由一個包頭和一個包體組成,包頭可以是4種長度的任意一種:12, 8, 4,  1 byte(s).完整的RTMP包頭應該是12bytes,包含了時間戳,AMFSize,AMFType,StreamID資訊, 8位元組的包頭只紀錄了時間戳,AMFSize,AMFType,其他位元組的包頭紀錄資訊依次類推 。包體最大長度預設為128位元組,通過chunkSize可改變包體最大長度,通常當一段AFM資料超過128位元組後,超過128的部分就放到了其他的RTMP封包中,包頭為一個位元組.
    完整的12位元組RTMP包頭每個位元組的含義: 如下不同的包頭資料 05 00 34 df 00 00 55 08 01 00 00 00為12個位元組,45  00 00 16 00 00 54 08 ,第一個位元組(最高兩位可知包頭長度)與0xC0分別得到為0x00和0x40;查表可知分別對應的是12個位元組和8個位元組。後6位為保留位,用來確定channelid (02~07範圍),通常45表示位伺服器保留FMS2傳送音視訊資料;

    02    Ping 和ByteRead通道 
    
    03   Invoke通道 我們的connect() publish()和自字寫的NetConnection.Call() 資料都是在這個通道的 
    04   Audio和Vidio通道 
    05   06 07 伺服器保留,經觀察FMS2用這些Channel也用來發送音訊或視訊資料 
  3. 分析後11或者7個位元組對應的引數資訊,時間戳為接下來的後三個位元組如例子中00 34 df  表示為13535單位為毫秒,時間戳主要分為兩種:絕對和相對之分。 後三個位元組為rtmp包的大小,如果超過了rtmp的最大長度128位元組,那麼下一個同類型的rtmp包頭只佔一個位元組,一般為0xC?開頭。streamid為4個位元組如上為streamid=0x01;也可通過streamid=(channelid-4)/5+1表示。

  4. 包體:VideoTagHeader的頭1個位元組,也就是接跟著StreamID的1個位元組包含著視訊幀型別及視訊CodecID最基本資訊.一般為17或者27,那麼streamid後的位元組表達含義可以查表得出

    Field
    Type
    Comment
    Frame Type
    UB [4]
    Type of video frame. The following values are defined:
    1 = key frame (for AVC, a seekable frame)
    2 = inter frame (for AVC, a non-seekable frame)
    3 = disposable inter frame (H.263 only)
    4 = generated key frame (reserved for server use only)
    5 = video info/command frame
    CodecID
    UB [4]
    Codec Identifier. The following values are defined:
    2 = Sorenson H.263
    3 = Screen video
    4 = On2 VP6
    5 = On2 VP6 with alpha channel
    6 = Screen video version 2
    7 = AVC
    AVCPacketType
    IF CodecID == 7
    UI8
    The following values are defined:
    0 = AVC sequence header
    1 = AVC NALU
    2 = AVC end of sequence (lower level NALU sequence ender is not required or supported)
    CompositionTime
    IF CodecID == 7
    SI24
    IF AVCPacketType == 1
    Composition time offset
    ELSE
    0
    See ISO 14496-12, 8.15.3 for an explanation of composition
    times. The offset in an FLV file is always in milliseconds.
  5. 搜尋wireshark中17 00 00 00 00可以獲取視訊對應的AVC sequence header相關資訊,17表示avc格式且為key-frame,那麼後面4個零分別表達的意思為:00表示UI8 無符號整形,表示此為avc sequence header部分,00 00 00 表示cts (pts-dts差值)SI24(三個位元組)為0,這也就是為什麼可以通過17 00 00 00 00 來搜尋avc sequence header部分的原因。下圖表示的avc sequence header部分的表示,分別為sps和pps。

                                                                                       

相關推薦

wireshark+rtmp協議分析

使用wireshark抓包工具 如何使用wireshark中常見的過濾選項包括協議型別、埠號、stream eq、ip地址 通過wireshark,要學會如何重網路包中獲取視訊幀的資料,這裡主要針對rtmp協議。    抓取網路包 開啟wire

RTMP協議分析

 一、RTMP包頭  RTMP協議 封包 參考Red5 RTMP協議封包 由一個包頭和一個包體組成,包頭可以是4種長度的任意一種:12, 8, 4,  1 byte(s).完整的RTMP包頭應該是12bytes,包含了時間戳,Head_Type,AMFSize,AMFT

RTMP協議分析及推流過程

簡介: 1.RTMP(實時訊息傳輸協議)是Adobe 公司開發的一個基於TCP的應用層協議。 2.RTMP協議中基本的資料單元稱為訊息(Message)。 3.當RTMP協議在網際網路中傳輸資料的時候,訊息會被拆分成更小的單元,稱為訊息塊(Chunk)。 RTMP 握手(

Wireshark網路協議分析:單個數據包圖解

Wireshark協議層對應關係   資料包的結構 主要針對wireshark所捕獲的資訊視窗及資料包結構進行資訊圖文解讀。操作介面中的資訊視窗結構圖如下:對單個FTP資料包的各欄位資訊含義進行描述,並形像地與OSI模型進行對應。 物理層資料包幀頭資訊 &n

rtmp 協議分析及互動過程

本文描述了從開啟一個RTMP流媒體到視音訊資料開始播放的全過程。 注意:RTMP中的邏輯結構 RTMP協議規定,播放一個流媒體有兩個前提步驟:第一步,建立一個網路連線(NetConnection);第二步,建立一個網路流(NetStream)。其中,網路連線代表伺服器端應用程式和客戶端之間基礎的連通

RTMP協議分析及H.264打包原理

RTMP是Real Time Messaging Protocol(實時訊息傳輸協議)的首字母縮寫。該協議基於TCP,是一個協議族,包括RTMP基本協議及RTMPT/RTMPS/RTMPE等多種變種。RTMP是一種設計用來進行實時資料通訊的網路協議,主要用來在Flash/A

wireshark抓包分析rtmp協議,並提取出H264視頻流

tmp mage idt 進制 tro shark src 技術 wid 利用wireshark抓取rtmp流數據, 分析到rtmp流後,寫入過濾條件,如 tcp.stream eq 6導出tcp流保存16進制的數據為純文本格式一定要選擇 Hex轉儲,然後點擊 “Sava

調試libRTMP代碼來分析RTMP協議

bind 部分 字節 attribute err nco last esc command RTMP是Real Time Messaging Protocol(實時消息傳輸協議)的首字母縮寫。該協議基於TCP,是一個協議族,常用在視頻直播領域。RTMP協議的默認端口

android黑科技系列——Wireshark和Fiddler分析Android中的TLS協議包數據(附帶案例樣本)

以管理員身份運行 inter pca lar stop 解析失敗 dash 獲取 程序 一、前言 在之前一篇文章已經介紹了一款網絡訪問軟件的破解教程,當時采用的突破口是應用程序本身的一個漏洞,就是沒有關閉日誌信息,我們通過抓取日誌獲取到關鍵信息來找到突破口進行破解的。那篇

FTP協議的粗淺學習--利用wireshark抓包分析相關tcp連接

sha ftp命令 動向 c中 細胞 nsf ref 後退 圖片 一、為什麽寫這個 昨天遇到個ftp相關的問題,關於ftp匿名訪問的。花費了大量的腦細胞後,終於搞定了服務端的配置,現在客戶端可以像下圖一樣,直接在瀏覽器輸入url,即可直接訪問。 期間不會彈出輸入用戶名密

FTP協議的粗淺學習--利用wireshark抓包分析相關tcp連線

一、為什麼寫這個 昨天遇到個ftp相關的問題,關於ftp匿名訪問的。花費了大量的腦細胞後,終於搞定了服務端的配置,現在客戶端可以像下圖一樣,直接在瀏覽器輸入url,即可直接訪問。 期間不會彈出輸入使用者名稱密碼來登入的視窗。 今天我主要是有點好奇,在此過程中,究竟是否是用匿名賬戶“anonymo

Wireshark之FTP協議分析(一)

最近專案需求,需要抓取並還原網路中通過ftp傳輸的檔案。故對ftp協議進行了簡單學習,總結如下。 1. ftp協議概述 這部分內容我參考的百度文庫的一篇文件: 裡面講的很詳細。在此對重點的部分進行總結一下。 1)ftp服務端的用到兩個埠20和21。 2)FTP使

利用WireShark進行DNS協議分析

 一.準備工作 系統是Windows 8.1Pro 分析工具是WireShark1.10.8 Stable Version 使用系統Ping命令傳送ICMP報文. 二.開始工作 開啟CMD.exe鍵入: ping www.oschina.net 將自動進行域名解析,預設傳送

TCP協議基礎知識及wireshark抓包分析實戰

TCP相關知識 應swoole長連線開發調研相關TCP知識並記錄。 資料封包流程 如圖,如果我需要傳送一條資料給使用者,實際的大小肯定是大於你傳送的大小,在各個資料層都進行了資料的封包,以便你的資料能完整的發給你想要的使用者。 乙太網的資料包的負載是1500位元組,IP包頭需要20個位元組,TCP

Wireshark抓包分析Yersinia 根據DHCP協議傳送的偽造資料包攻擊(sending RAW packet)

抓包結果如下: 抓包與分析 幀號時間源地址目的地址高層協議包內資訊概況No.  Time   Source        Destination      Protocol    Info 5  1

wireshark 抓包分析 TCPIP協議的握手

之前寫過一篇部落格:用 Fiddler 來除錯HTTP,HTTPS。 這篇文章介紹另一個好用的抓包工具wireshark, 用來獲取網路資料封包,包括http,TCP,UDP,等網路協議包。 記得大學的時候就學習過TCP的三次握手協議,那時候只是知道,雖然在書上看過很多TCP和UDP的資料,但是從來沒有真正

Wireshark之FTP協議分析(二)

以實際抓包來分析ftp協議,加深理解。 環境: win7電腦+linux裝置,linux裝置為ftp服務端,win7電腦通過WinSCP的ftp主動方式(我得版本winscp預設是被動方式,需要從高階選項修改)來連線ftp服務端。 過程: 電腦(192.168.3.2

wireshark抓包分析之ftp協議分析

今天剛剛申請了一個虛擬主機,上傳資料成為問題,Google一下,呵呵噠,看到了flashfxp這個軟體,這個叫什麼鬼東西,原諒小客的英語爛到了極點,下載安裝後,最近正好對協議分析很是感興趣呀,於是,就有了今天這篇處女座的文章,呵呵,個人總是愛說些廢話,好吧,如果你也這麼覺得

RTMP協議播放流程的實現及抓包分析

     實時流協議(Real-TimeMessaging Protocol,RTMP)是用於網際網路上傳輸視音訊資料的網路協議。本API提供了支援RTMP, RTMPT,RTMPE, RTMP RTMPS以及以上幾種協議的變種(RTMPTE, RTMPTS)協議所需的大

https(ssl)協議以及wireshark抓包分析與解密

根據之前一篇安全協議的分析中分析了ssl協議,先回顧下ssl協議的內容然後用wireshark來抓包看具體流量包內容。          SSL協議棧位置介於TCP和應用層之間,分為SSL記錄協議層和