常規來講,directshow filter包含三個部分,分別爲source filter、transform filter、renderfilter
因爲項目需要,要開發一個基於FFmpeg的filter(soucer filter+transform filter合併)。即source filter -> render filter
此filter需要能解碼和顯示rtsp的h264視頻流。大致方案是基於ffmpeg,利用ffmpeg接收rtsp視頻流,獲取每一個avframe並將其轉換爲RGB格式,配置好filter的媒體類型利用windows 自帶的filter將其直接顯示出來。
總的來說就是將Directshow的ball例子拿來改寫下,並加入ffmpeg實現。目前只做了簡單的功能,其他很多功能都沒實現,例如
STDMETHODIMP Run(REFERENCE_TIME tStart);
STDMETHODIMP Stop(void);
STDMETHODIMP Pause(void);
後續再繼續完善。
另外在開發過程中發先ffmpeg的一些變量和指針不能設置爲全局,否則在多路視頻流的時候會發生衝突。
效果大致如下:
filter下載地址http://download.csdn.net/detail/q317379184/7854509