我试图找到视频文件的持续时间。我能够使用下面提到的shellconcept获得.mov
,.mp4
等的长度。
C# Get video file duration from metadata
我没有获得mxf
个文件的持续时间,是否可以用C#计算它?
答案 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;