我有简单的Rtsp源过滤器,它连接Rtsp Server并获取Rtp数据包。问题是我必须在我的Rtsp源滤波器引脚中设置媒体子类型... [现在我给出了硬编码的子类型]
pMediaType->SetSubtype(&MyHardCodedSubTypeGUID);
我想要的是根据即将到来的流动态地使用子类型创建我的引脚。我从服务器获得了h264和mpeg-4流。他们的rtp数据包有效载荷格式是动态的:96 ...不能帮我识别流是mpeg4还是h264 ......
FFmpeg能够从编解码器信息中获取流类型[h264,mpeg4] ......但我怎么能自己做?
祝福
答案 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