H.323のビデオ会議におけるトラブルシューティングで、しばしばパケットキャプチャの解析を行うことがあります。
ここでは、WiresharkでH.264のRTPパケットの中でも、Iフレームの見つけ方を紹介します。
この例では、MCUとEndPointの間のDuo Video(Content Channel、資料共有)のストリームを例にしています。
パケットキャプチャはDuo Videoを見ている端末で取得したもので、VCSとMCUとのやり取りが含まれています。
この記事では、Wireshark Version 1.8.2で確認しています。
- パケットキャプチャのファイルをWireSharkで開きます。
- メニューから、Telephony>VoIP Callsに進むと下記パネルが開きます。

確認対象のストリームを選択して、Flowボタンをクリックすると、下記のようなシグナリングのシーケンスを表示してくれます。
- 端末に向かうOLC(Open Logical Channel)で、extendedVideoCapabilityのもの(Duo Videoのためのもの、図中赤枠)を見つけてクリックすると、WireSharkのパケットリスト上で該当のパケットに飛びます。

- extendedVideoCapabilityのパケットで、Channel Numberが64、H.264を使おうとしていて、MCUのIPアドレス:ポート(192.168.97.6:55269)がメディアコントロールチャネル、ダイナミックペイロード96を指定していることがわかります。

- 4のOLCとそれに対するOLC ACKの下に、「RTP(RTPType-96)」が見えます。これがMCUから端末へのDuo Videoのビデオパケットです。
- 「RTP(RTPType-96)」をクリックすると、該当のパケットに飛びます。

- NAL unit に 「Sequence parameter set (7)」と示されるものが、H.264のIフレームになります。

H.264のRTPパケットを、H.264としてデコードさせるには、WireSharkのメニューから、Edit > Preferenceを開き、ProtocolのH.264に対して、Dynamic payload typesに、この例の場合96を入れます。

Iフレームを探すためのフィルタは、以下のように作成します。
- 該当のRTPパケットを選択
- Internet ProtocolレイヤーのSource (IPアドレス)を右クリックして、メニューからPrepare a Filter > Selectedを選択
- User Datagram protocolレイヤーのSource portを右クリックして、メニューからPrepare a Filter > ... and Selectedを選択
- H.264レイヤーのNAL unitを選択して、メニューからPrepare a Filter > ... and Selectedを選択

- 最終的に、((ip.src == 192.168.97.6) && (udp.srcport == 55268)) && (h264.nal_unit_hdr == 7)というフィルタができます。
このフィルタで、MCUから端末へのDuo VideoのH.264パケットのうち、Iフレームを絞り込むことができます。