#directshow #h.264 #rtp #mpeg-4
#directshow #ч.264 #rtp #mpeg-4
Вопрос:
У меня есть простой фильтр источника Rtsp, который подключает Rtsp-сервер и получает пакеты Rtp. Проблема в том, что мне нужно установить подтип носителя в моем выводе фильтра источника Rtsp…[Теперь я жестко задаю подтип]
pMediaType->SetSubtype(amp;MyHardCodedSubTypeGUID);
Я хочу динамически создавать свой pin-код с подтипом в соответствии с поступающим потоком. Я получаю потоки h264 и mpeg-4 с сервера.Их формат полезной нагрузки пакетов rtp является динамическим: 96…Не помогает мне определить, является ли stream mpeg4 или h264…
FFmpeg может получить тип потока [h264, mpeg4] из информации о кодеке … но как я могу сделать сам?
С наилучшими пожеланиями
Ответ №1:
Полезная нагрузка 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