2011-06-27 62 views
0

我有一個推送「h264」流的源過濾器。我想將此流寫入MPEG4(或可能是AVI)容器。使用directshow將h264流寫入Mpeg容器

SourceFilter[output = H264] ---> X--->Y ....--->FileWriter[record.mpeg4] 

我該怎麼用DirectShow做到這一點? (也開不使用DirectShow的替代解決方案)

祝福

P.S:順便問一下,什麼是H264流的最佳 容器格式?

更新MPEG-4複用器

好吧,我只是嘗試MPEG-4複用器(www.gdcl.co.uk/mpeg4)。我的rtsp源過濾器和MUX無法連接。智能連接嘗試將FFdshow解碼器放在源濾波器和複用器之間。

它不會在graphEdt發生錯誤,但錄製的流是「O」BYTE.No記錄。 我很想去做點什麼......但它是什麼?

enter image description here enter image description here

+0

此媒體類型是mpeg-4視頻,當然不是您所期望的H264。如果您已將輸出的媒體類型設置爲此mpeg-4類型,並且實際上正在提供H264,那麼它當然不起作用。 –

+0

你是絕對正確的戴維斯。但我從屬性頁面更改rtsp源過濾器設置的設置(到h264),它似乎不刷新。請爲我的錯誤。但是當我再次添加我的rtsp源過濾器(它刷新到h264)時,它無法重新連接到MPEG 4複用器。智能連接放置一個默認的ffdshow(解碼器)。現在記錄「0」字節,儘管圖編輯不會給出錯誤。 – Novalis

+0

@Geraint戴維斯。我用Muxer更新了我的實驗。 Mux的子類型和格式似乎Guid_null ...我正在做一些嚴重錯誤的事情,但無法弄清楚它。感謝您警告我的錯誤。 – Novalis

回答

1

有在www.gdcl.co.uk/mpeg4在源形式提供的MPEG-4多路濾波器。這通常用於H264。

您需要檢查您提供的格式。有兩種選擇:字節流格式(在每個NALU之前的00 00 01開始代碼)和長度前置(在每個NALU之前的長度字段,存儲在MP4文件中)。多路複用器應該同時接受,但您可能需要檢查您使用的fourcc /子類型的guid是否與多路複用器相同。

G

+0

它不是一個產品;它是源代碼形式的免費示例。如果它不是你想要的,隨時要求退款。如果您需要幫助調試問題,則需要更明確地說明您採取了哪些步驟以及發生了什麼。既然你有多路複用器的來源,你可以調試它。 –

相關問題