我需要获取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