Пример #1
0
 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();
     }
 }
Пример #2
0
        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);
        }
Пример #4
0
 public FlvFile(string filename)
 {
     FlvFileStream = new FileStream(filename, FileMode.Open);
     Header        = FlvHeader.ReadHeader(FlvFileStream);
 }