public async Task InitFile()
{
writeStream = Stream.Synchronized(File.Open(outputfile, FileMode.Create, FileAccess.Write));
await writeStream.WriteAsync(FlvHeader, 0, FlvHeader.Length);
if (media.Metadata != null)
{
byte[] metadata = Convert.FromBase64String(media.Metadata);
byte[] header = new byte[11];
header[0] = SCRIPT_DATA_PACKET;
header[1] = (byte)(metadata.Length >> 16);
header[2] = (byte) ((metadata.Length >> 8) & 0xFF);
header[3] = (byte) (metadata.Length & 0xff);
metadata[metadata.Length - 1] = 0x9;
await writeStream.WriteAsync(header, 0, 11);
await writeStream.WriteAsync(metadata, 0, metadata.Length);
byte[] finalsize=BitConverter.GetBytes((int) (metadata.Length + 11));
Array.Reverse(finalsize);
await writeStream.WriteAsync(finalsize, 0, 4);
}
}