C# 获取mxf文件持续时间
我试图找到视频文件的持续时间。我能够使用下面提到的外壳概念获得C# 获取mxf文件持续时间,c#,C#,我试图找到视频文件的持续时间。我能够使用下面提到的外壳概念获得.mov、.mp4等的长度 我没有得到mxf文件的持续时间,是否可以在C#中计算它?如果我们在二进制编辑器中打开mxf文件,我们可以在xml头中看到持续时间。如下所示 Duration value="89" 在代码中,您可以通过打开文件来读取它 FileStream streamL = File.Open("C:\\temp\\test.mxf", FileMode.Open, FileAccess.Read, FileShar
.mov
、.mp4
等的长度
我没有得到
mxf
文件的持续时间,是否可以在C#中计算它?如果我们在二进制编辑器中打开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可以得到持续时间如果我们在binary editor中打开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可以获得持续时间我找到了另一种查找mxf文件持续时间的简单方法 从web下载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;
我找到了另一种查找mxf文件持续时间的简单方法 从web下载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;
Mxf不是xml,而且您指定的编码是错误的,它的bigendiaUnicode。Mxf不是xml,而且您指定的编码是错误的,它的bigendiaUnicode。容器文件中流的持续时间可能很复杂,这取决于容器是否以“索引”形式写入。信息可以在mxf文件中以多种方式表示,有时甚至是冗余的。时间轴轨迹或时间代码组件应指示编辑速率和容器持续时间,然后可以从中计算持续时间。如果您需要材料交换、基本媒体文件、高级系统格式/Windows媒体、资源交换和Matroska容器的文件和跟踪级别详细信息,您可以查看。容器文件中流的持续时间可能很复杂,这取决于容器是否以“索引”形式编写。信息可以在mxf文件中以多种方式表示,有时甚至是冗余的。时间轴轨迹或时间代码组件应指示编辑速率和容器持续时间,然后可以从中计算持续时间。如果您需要有关材料交换、基本媒体文件、高级系统格式/Windows媒体、资源交换和Matroska容器的文件和跟踪级别详细信息,您可以查看。