从Rtp数据包或其他方法获取流类型

时间:2011-10-25 11:54:57

标签: directshow h.264 rtp mpeg-4

我有简单的Rtsp源过滤器,它连接Rtsp Server并获取Rtp数据包。问题是我必须在我的Rtsp源滤波器引脚中设置媒体子类型... [现在我给出了硬编码的子类型]

pMediaType->SetSubtype(&MyHardCodedSubTypeGUID);

我想要的是根据即将到来的流动态地使用子类型创建我的引脚。我从服务器获得了h264和mpeg-4流。他们的rtp数据包有效载荷格式是动态的:96 ...不能帮我识别流是mpeg4还是h264 ......

FFmpeg能够从编解码器信息中获取流类型[h264,mpeg4] ......但我怎么能自己做?

祝福

1 个答案:

答案 0 :(得分:2)

RTP有效负载不仅是动态的(96,97等),还提供了有效负载类型属性,您需要从中获取格式并转换为DirectShow媒体类型(请参阅下面的“ H264 * ” ):

m=video 0 RTP/AVP 96 
a=rtpmap:96 H264/90000 
a=control:trackID=1
a=fmtp:96 packetization-mode=1