2011-04-01 111 views

回答

2

您可以使用下面的架構(代碼示例是在想,你需要在Windows上實現的任務,並使用MFC,但同樣的模式可用於其他條件):

1)獲取ASX文件(例如使用CHttpConnection,CHttpFile等)。對於您的示例ASX文件是:

[Reference] 
Ref1=http://149.136.20.28/d3-Exposition-51?MSWMExt=.asf 
Ref2=http://149.136.20.28:80/d3-Exposition-51?MSWMExt=.asf 

2)解析ASX文件。通常一個ASX文件是一個XML文件。但有時真正的ASX文件實際上並不是有效的XML文件(對於您的示例而言,這是真的)。所以你可能需要處理這種情況。解析ASX後,您將獲得一組URL。這些URL通常是同一傳輸的替代品。

3)使用Windows Media Format SDK(WMF SDK)讀取由URL表示的流。見Reading ASF Data Over a Network

+0

我沒有意識到ASX文件是一個涉及視頻流而不僅僅是視頻流的XML播放列表。 VitalyVal說,底層視頻是WMF。使用ffmpeg導入並不困難。 – JnBrymn 2011-04-03 04:11:11

+0

我不知道,ffmpeg如何處理各種音頻和視頻格式的ASF流。但似乎你可以面對一些音頻和視頻格式(如WMA語音編解碼器,WMA 9專業版,WMV 9等)的問題。如果你開發一個Windows應用程序,我認爲使用WMF SDK是一個更好的選擇。 – VitalyVal 2011-04-03 08:59:09