我試圖找到視頻文件的持續時間。我能夠使用下面提到的shellconcept獲得.mov
,.mp4
等的長度。獲取mxf文件的持續時間
C# Get video file duration from metadata
,我沒有得到的mxf
文件的時間,是可以計算它在C#中?
我試圖找到視頻文件的持續時間。我能夠使用下面提到的shellconcept獲得.mov
,.mp4
等的長度。獲取mxf文件的持續時間
C# Get video file duration from metadata
,我沒有得到的mxf
文件的時間,是可以計算它在C#中?
如果我們打開二進制編輯器MXF文件,我們可以看到在XML header..like的持續時間存在以下
Duration value="89"
在代碼中,你可以通過打開文件
FileStream streamL =
File.Open("C:\\temp\\test.mxf", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
閱讀
然後讀取的字節中的循環,直到你從上面的字符串XML就可以得到次找到時間
int nBytesReadL = streamP.Read(HeaderBufferL, 0, BufferLengthL);
string zTextRepresentationL =
System.Text.ASCIIEncoding.Default.GetString(HeaderBufferL, 0, nBytesReadL);
Ë時間
Mxf不是xml,而且您指定的編碼錯誤,它的BigEndianUnicode。 – Jay
我發現了另一種簡單的方法來找到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;
在一個容器文件流的持續時間可能會很複雜,以達到持續時間,這取決於如果容器是以「索引」形式寫或不寫。 這些信息可以在mxf文件中以多種方式表示,有時也可以冗餘。 時間線軌道或時間碼組件應指示編輯速率和容器持續時間,然後可以計算持續時間。 如果您需要材料交換,基礎媒體文件,高級系統格式/ Windows媒體,資源交換和Matroska容器的文件和跟蹤級別詳細信息,可以查看https://net7mma.codeplex.com。 – Jay