我需要獲取mp4文件的持續時間,最好是以秒爲單位的秒數。我正在使用DirectShow(見下面的代碼),但它一直在拋出一個特別無用的錯誤。我想知道如果有人有一個簡單的解決方案。 (說真的,誰知道得到的信息會如此困難)使用DirectShow獲取MP4文件持續時間
public static void getDuration(string moviePath)
{
FilgraphManager m_objFilterGraph = null;
m_objFilterGraph = new FilgraphManager();
m_objFilterGraph.RenderFile(moviePath);
IMediaPosition m_objMediaPosition = null;
m_objMediaPosition = m_objFilterGraph as IMediaPosition;
Console.WriteLine(m_objMediaPosition.Duration);
}
每當我運行此代碼,我得到的錯誤:「從HRESULT異常:0x80040265」
我用這個也試過:Getting length of video 但它不工作,因爲我不認爲它可以在MP4文件上工作。
說真的,我覺得必須有一個更簡單的方法來做到這一點。
注:我寧願避免使用exe的像ffmpeg,然後解析輸出以獲取信息。
經過一番探索,看起來我實際上無法使用DirectShow獲取該信息,因爲它不支持MP4,這是令人難以置信的。無論如何,任何幫助將不勝感激。 – RedHack 2012-07-05 14:14:46