获取mxf文件持续时间

时间:2012-09-10 10:00:15

标签: c#

我试图找到视频文件的持续时间。我能够使用下面提到的shellconcept获得.mov.mp4等的长度。

C# Get video file duration from metadata

我没有获得mxf个文件的持续时间,是否可以用C#计算它?

2 个答案:

答案 0 :(得分:0)

如果我们在二进制编辑器中打开mxf文件,我们可以看到持久性存在于xml头文件中。如下所示

Duration value="89"

在代码中,您可以通过打开文件

来阅读它
FileStream streamL =
 File.Open("C:\\temp\\test.mxf", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) 

然后读取循环中的字节,直到找到持续时间

int nBytesReadL = streamP.Read(HeaderBufferL, 0, BufferLengthL);
string zTextRepresentationL = 
   System.Text.ASCIIEncoding.Default.GetString(HeaderBufferL, 0, nBytesReadL);

从上面的字符串xml中你可以得到持续时间

答案 1 :(得分:0)

我找到了另一种简单的方法来查找mxf文件的持续时间..

从网上下载MediaInfo.dll并将其放在“C:\ Windows”文件夹中,并在项目中包含mediainfoDll.cs。

通过使用以下代码,您将能够获得.mxf文件的持续时间

MediaInfo aMediaInfoL = new MediaInfo();
aMediaInfoL.Open("C:\Users\\Desktop\\drop\mxf\xdcam-pal-dv25.mxf");
aMediaInfoL.Option("Inform", "General;%Duration%");
string durationL = aMediaInfoL.Inform();
aMediaInfoL.Close();
string  durationminutesL
  = TimeSpan.FromMilliseconds(Convert.ToDouble(durationL)).TotalMinutes;
相关问题