Daily Grind

システム開発関連の忘備録です

WiresharkでH.264のRTPパケットからキーフレームを見つける方法

H.264としてデコード

 
H.264のRTPパケットを、H.264としてデコードさせるには、WireSharkのメニューから、「Edit > Preference」を開き、ProtocolのH264に対して、Dynamic payload typesに、98とか番号を入れる。


f:id:claywheels:20171025153509p:plain

キーフレームのフィルタ

 INFOに「start:IDR-slice」のところが、キーフレーム。

 nal unit typeが5なら、IDRフレームみたい。(フィルタだと「h264.nal_unit_type == 5」)
 
H.264 RTPペイロードフォーマット
http://www.ttc.or.jp/jp/document_list/free/TR/TR-IETF-RFC3984v1.pdf


 (画像では「h264.slice_type eq 7」フィルタしてますが、これがキーフレームのフィルタというわけではないので、注意)

f:id:claywheels:20171025153927p:plain

※IDRフレームについて

 IDRフレームは、H.264/AVC になって従来のMPEGのIフレームの機能を拡張したもので、Iフレームの1種。
 従来のMPEGでは、IフレームがGOPの境界となっていましたが、H.264/AVCではIDRフレームがGOPの境界となるため、これをキーフレームと呼んでいる。