binary - How to parse out information of WMV file in C# -
i want information of asf file bitrate, metadata, language...i have read asf specification , know asf file has parts : header object, data object, index object. @ frist, think asf file's binary file , try solve class , function in c# : 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, try convert string :
textbox1.text = encoding.ascii.getstring ( file );
but doesn't display expect. displays nonsensical string: 0&?u?f? ??. please show me how convert information in asf file string.
you can check out asfmojo on codeplex. offers simple api extract of information interested in:
sample code
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)); } }
sample output
this creates following output sample file:
bitrate: 455932 language: en-us isvbr: false (stream #1) deviceconformancetemplate: l2 (stream #1) isvbr: false (stream #2) deviceconformancetemplate: mp@ml (stream #2)
Comments
Post a Comment