Skip to content

Instantly share code, notes, and snippets.

@stpettersens
Created January 23, 2013 13:54
Show Gist options
  • Save stpettersens/4605840 to your computer and use it in GitHub Desktop.
Save stpettersens/4605840 to your computer and use it in GitHub Desktop.
Generate an XNB file for the video which is needed for the XNA content pipeline.
private void WriteXNBVideoData(string video)
{
string file = video + ".xnb";
// Only write the file when the file name is qualified correctly.
if(!file.Equals(".xnb"))
{
using(BinaryWriter bw = new BinaryWriter(File.Open("Content/" + file, FileMode.Create, FileAccess.Write)))
{
byte[] bytes = { 0x58, 0x4E, 0x42, 0x77, 0x05, 0x01, 0x55, 0x01,
0x00, 0x00, 0x04, 0x8D, 0x01, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73,
0x6F, 0x66, 0x74, 0x2E, 0x58, 0x6E, 0x61, 0x2E, 0x46, 0x72, 0x61,
0x6D, 0x65, 0x77, 0x6F, 0x72, 0x6B, 0x2E, 0x43, 0x6F, 0x6E, 0x74,
0x65, 0x6E, 0x74, 0x2E, 0x56, 0x69, 0x64, 0x65, 0x6F, 0x52, 0x65,
0x61, 0x64, 0x65, 0x72, 0x2C, 0x20, 0x4D, 0x69, 0x63, 0x72, 0x6F,
0x73, 0x6F, 0x66, 0x74, 0x2E, 0x58, 0x6E, 0x61, 0x2E, 0x46, 0x72,
0x61, 0x6D, 0x65, 0x77, 0x6F, 0x72, 0x6B, 0x2E, 0x56, 0x69, 0x64,
0x65, 0x6F, 0x2C, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E,
0x3D, 0x34, 0x2E, 0x30, 0x2E, 0x30, 0x2E, 0x30, 0x2C, 0x20, 0x43,
0x75, 0x6C, 0x74, 0x75, 0x72, 0x65, 0x3D, 0x6E, 0x65, 0x75, 0x74,
0x72, 0x61, 0x6C, 0x2C, 0x20, 0x50, 0x75, 0x62, 0x6C, 0x69, 0x63,
0x4B, 0x65, 0x79, 0x54, 0x6F, 0x6B, 0x65, 0x6E, 0x3D, 0x38, 0x34,
0x32, 0x63, 0x66, 0x38, 0x62, 0x65, 0x31, 0x64, 0x65, 0x35, 0x30,
0x35, 0x35, 0x33, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x4D, 0x69, 0x63,
0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x2E, 0x58, 0x6E, 0x61, 0x2E,
0x46, 0x72, 0x61, 0x6D, 0x65, 0x77, 0x6F, 0x72, 0x6B, 0x2E, 0x43,
0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2E, 0x53, 0x74, 0x72, 0x69,
0x6E, 0x67, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x00, 0x00, 0x00,
0x00, 0x2B, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74,
0x2E, 0x58, 0x6E, 0x61, 0x2E, 0x46, 0x72, 0x61, 0x6D, 0x65, 0x77,
0x6F, 0x72, 0x6B, 0x2E, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74,
0x2E, 0x49, 0x6E, 0x74, 0x33, 0x32, 0x52, 0x65, 0x61, 0x64, 0x65,
0x72, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x4D, 0x69, 0x63, 0x72, 0x6F,
0x73, 0x6F, 0x66, 0x74, 0x2E, 0x58, 0x6E, 0x61, 0x2E, 0x46, 0x72,
0x61, 0x6D, 0x65, 0x77, 0x6F, 0x72, 0x6B, 0x2E, 0x43, 0x6F, 0x6E,
0x74, 0x65, 0x6E, 0x74, 0x2E, 0x53, 0x69, 0x6E, 0x67, 0x6C, 0x65,
0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x02, 0x08,
// 4 letter filename for video is embedded here:
Convert.ToByte((int)file[0]), Convert.ToByte((int)file[1]),
Convert.ToByte((int)file[2]), Convert.ToByte((int)file[3]),
0x2E, 0x77, 0x6D, 0x76, 0x03, 0x6C, 0xE2, 0x01, 0x00, 0x03, 0xC0,
0x03, 0x00, 0x00, 0x03, 0xD0, 0x02, 0x00, 0x00, 0x04, 0x8F, 0xC2,
0xEF, 0x41, 0x03, 0x00, 0x00, 0x00, 0x00 };
bw.Write(bytes, 0, bytes.Length);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment