Я создаю простой фильтр источника прямого показа, используя FFmpeg. Я читаю rtp-пакеты из источника RTSP и передаю их декодеру. Работает для потока h264.
MyRtspSourceFilter[H264 Stream] ---> h264 Decoder --> Video Renderer
Плохая новость заключается в том, что он не работает для MPEG-4. Я могу подключить исходный фильтр rtsp к MPEG-декодеру. Я не получил исключения, но видео рендерер ничего не показывает. На самом деле просто покажите один кадр, затем ничего [просто остановите] ... Декодеры и средства визуализации являются сторонними, поэтому я не могу их отладить.
MyRtspSourceFilter[MP4 Stream] ---> MPEG-4 Decoder --> Video Renderer
Я могу успешно получать пакеты rtp из источника RTSP MPEG-4, используя FFmpeg. С этим проблем нет.
Кажется, я не установил что-то (?) В моем источнике Rtsps
Фильтр, который не нужен для потока H264, но может быть важен для
Поток MPEG-4
Что может вызвать разницу потоков h264 и MPEG-4 в исходном фильтре rtsp прямого показа? Есть идеи.
Подробнее:
- Сначала я попробую некоторые другие фильтры источника rtsp для потока MPEG-4 ... Хотя мой источник rtsp такой же, я вижу разные подтипы в их контактных соединениях.
- Во-вторых, я действительно подозреваю, что источником действительно является MPEG-4, поэтому я проверяю с помощью FFmpeg ... FFmpeg выдает идентификатор исходного кодека как "CODEC_ID_MPEG4".
Обновление:
[Взломать]
Я просто установил m_bmpInfo.biCompression = DWORD ('xvid'), он просто работал нормально ... Но он статический. Как динамически получить / определить это значение, используя ffmpeg или другими способами ...