Получить тип потока из пакетов Rtp или другими методами - PullRequest
1 голос
/ 25 октября 2011

У меня есть простой Rtsp Source Filter, который соединяет Rtsp Server и получает Rtp-пакеты.Проблема в том, что мне нужно установить медиа подтип в моем выводе фильтра источника Rtsp ... [Теперь я даю субтип жестко закодированным]

pMediaType->SetSubtype(&MyHardCodedSubTypeGUID);

Я хочу динамически создавать свой пин с подтипом в соответствии споток.Я получаю потоки h264 и mpeg-4 с сервера. Их формат полезной нагрузки пакетов rtp является динамическим: 96 ... Не помогает мне определить, является ли поток mpeg4 или h264 ...

FFmpeg может получить потоквведите [h264, mpeg4] из информации о кодеке ... Но как я могу это сделать сам?

С наилучшими пожеланиями

1 Ответ

2 голосов
/ 25 октября 2011

Полезная нагрузка 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
...