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