[英]How to parse out information of WMV file in C#
I want to get information of ASF file as bitrate, metadata, language...I have read ASF Specification and know a ASF file has parts: Header Object, Data Object, Index Object. I want to get information of ASF file as bitrate, metadata, language...I have read ASF Specification and know a ASF file has parts: Header Object, Data Object, Index Object. At frist, I think ASF file's binary file and i try to solve by CLASS and FUNCTION in C# as: FileStream, BinaryReader:首先,我认为 ASF 文件的二进制文件,我尝试通过 C# 中的 CLASS 和 FUNCTION 解决:FileStream,BinaryReader:
String path = @"E:\KhoaLuanTN\Streaming video server\video\encoder_ad.wmv";
FileStream filer = File.OpenRead(path);
BinaryReader br = new BinaryReader(filer);
byte [] file = br.ReadBytes(100);
Then, I try to convert into String:然后,我尝试转换为字符串:
textBox1.Text = Encoding.ASCII.GetString ( file );
But it doesn't display as I expect.但它没有像我预期的那样显示。 It displays a nonsensical string: 0&?u?f?它显示一个无意义的字符串:0&?u?f? ??. ???。 So please show me how to convert information in a ASF file into String.所以请告诉我如何将 ASF 文件中的信息转换为字符串。
You can check out AsfMojo on codeplex.您可以在 codeplex 上查看AsfMojo 。 It offers a simple API to extract all of the information you are interested in:它提供了一个简单的 API 来提取您感兴趣的所有信息:
using (AsfFile asfFile = new AsfFile(sampleFileName))
{
//Get bitrate
uint asfBitRate = asfFile.PacketConfiguration.AsfBitRate;
Console.WriteLine("Bitrate: " + asfBitRate);
//Get language
var languageObject = (AsfLanguageListObject)asfFile.GetAsfObjectByType(AsfGuid.ASF_Language_List_Object).FirstOrDefault();
if (languageObject != null)
{
foreach (string language in languageObject.Languages)
Console.WriteLine("Language: " + language);
}
//Get Metadata
var metadataObject = (AsfMetadataObject)asfFile.GetAsfObjectByType(AsfGuid.ASF_Metadata_Object).FirstOrDefault();
if (metadataObject != null)
{
foreach (var item in metadataObject.DescriptionRecords)
Console.WriteLine(string.Format("{0}: {1} (stream #{2})", item.Name, item.Value, item.StreamNumber));
}
}
This creates the following output for my sample file:这将为我的示例文件创建以下 output:
Bitrate: 455932
Language: en-us
IsVBR: False (stream #1)
DeviceConformanceTemplate: L2 (stream #1)
IsVBR: False (stream #2)
DeviceConformanceTemplate: MP@ML (stream #2)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.