public static FlvHeader ReadHeader(Stream stream) { byte[] headerBytes = new byte[HeaderLengthWithPts]; if (stream.Read(headerBytes, 0, headerBytes.Length) == headerBytes.Length) { FlvHeader flvHeader = new FlvHeader(headerBytes); return(flvHeader); } else { throw new Exception(); } }
protected virtual void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { FlvFileStream.Close(); FlvFileStream.Dispose(); FlvFileStream = null; } Header = null; disposedValue = true; } }
public void TestFlvHeader() { var should = new byte[] { 0x46, 0x4c, 0x56, 0x01, 0x05, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00 }; var header = new FlvHeader(); using (var memory = MemoryPool <byte> .Shared.Rent(header.Size)) { Assert.IsTrue(header.ToMemory(memory.Memory).Span.SequenceEqual(should)); } header.Signature = string.Empty; header.Version = 0x00; header.Flags = HeaderFlags.Audio; header.HeaderSize = 114514; header.Read(should); Assert.AreEqual(header.Signature, @"FLV"); Assert.AreEqual(header.Version, 0x01); Assert.AreEqual(header.Flags, HeaderFlags.VideoAndAudio); Assert.AreEqual(header.HeaderSize, 9u); Assert.AreEqual(header.Reserved, 0u); }
public FlvFile(string filename) { FlvFileStream = new FileStream(filename, FileMode.Open); Header = FlvHeader.ReadHeader(FlvFileStream); }