0

FFmpeg を使用して単純なダイレクト ショー ソース フィルターを作成します。RTSP ソースから rtp パケットを読み取り、デコーダーに渡します。h264 ストリームで動作します。

MyRtspSourceFilter[H264 Stream] ---> h264 Decoder --> Video Renderer

悪いニュースは、MPEG-4 では機能しないことです。 rtsp ソース フィルタを MPEG-Decoder に接続できます。例外はありませんが、ビデオ レンダラーには何も表示されません。実際には、1 つのフレームだけを表示し、何も表示しない[ただ停止する]... デコーダーとレンダラーはサードパーティであるため、デバッグできません。

MyRtspSourceFilter[MP4 Stream] ---> MPEG-4 Decoder --> Video Renderer

FFmpeg を使用して、MPEG-4 RTSP ソースから rtp パケットを正常に取得できます。問題はありません。

H264 ストリームには必要ありませんが、MPEG-4 ストリームには重要かもしれない Rtsps ソース フィルターに何か (?) を設定していないようです

この h264 ストリームと MPEG-4 ストリームの違いがダイレクト ショー rtsp ソース フィルタで発生する原因は何ですか? 何か案は。

より詳しい情報:

-- 最初に、MPEG-4 ストリーム用の他の rtsp ソース フィルタをいくつか試します...私の rtsp ソースは同じですが、ピン接続に異なるサブタイプが見られます。

-- 2 つ目は、ソースが本当に MPEG-4 であるか疑わしいので、FFmpeg で確認します...FFmpeg は、ソース コーデック ID を「CODEC_ID_MPEG4」として提供します。

更新: [ハック]

m_bmpInfo.biCompression = DWORD('xvid') を設定しただけで、正常に機能しました...しかし、静的です。 ffmpeg または他の方法を使用してこの値を動的に取得/決定する方法...

4

1 に答える 1