public void TestMethod1()
        {
            FfmpegHeaderPacket packet1 = new FfmpegHeaderPacket(1, "streamName", "streamUrl", 80, 1000, 600);

            byte[] buffer = FfmpegHeaderPacket.Encode(packet1);
            Assert.IsNull(HikHeaderPacket.Decode(buffer));
            FfmpegHeaderPacket packet2 = FfmpegHeaderPacket.Decode(buffer);

            Assert.AreNotSame(packet1, packet2);
            Assert.AreEqual(packet1.CodecID, packet2.CodecID);
            Assert.AreEqual(packet1.StreamId, packet2.StreamId);
            Assert.AreEqual(packet1.StreamName, packet2.StreamName);
            Assert.AreEqual(packet1.Width, packet2.Width);
            Assert.AreEqual(packet1.Height, packet2.Height);
            Assert.AreEqual(packet1.StreamUrl, packet2.StreamUrl);
        }
        public void TestHikHeaderPacket()
        {
            HikHeaderPacket packet1 = new HikHeaderPacket(1, "test", "streamUrl", 1, new byte[10]);

            byte[] buffer  = HikHeaderPacket.Encode(packet1);
            var    packet2 = HikHeaderPacket.Decode(buffer);

            Assert.IsNull(FfmpegHeaderPacket.Decode(buffer));

            Assert.AreNotSame(packet1, packet2);
            Assert.AreEqual(packet1.Header.Length, packet2.Header.Length);
            Assert.AreEqual(packet1.StreamId, packet2.StreamId);
            Assert.AreEqual(packet1.StreamName, packet2.StreamName);
            Assert.AreEqual(packet1.StreamUrl, packet2.StreamUrl);
            Assert.AreEqual(packet1.Type, packet2.Type);
        }
        IStreamDecoder getDecoder(byte[] buffer)
        {
            FfmpegHeaderPacket fhp = FfmpegHeaderPacket.Decode(buffer);

            if (fhp != null)
            {
                Console.WriteLine($"{(Constants.AVCodecID)fhp.CodecID}, {fhp.Width}, {fhp.Height}");
                return(new FfmpegStreamDecoder((Constants.AVCodecID)fhp.CodecID, fhp.Width, fhp.Height));
            }
            HikHeaderPacket hhp = HikHeaderPacket.Decode(buffer);

            if (hhp != null)
            {
                return(new HikStreamDecoder(hhp.Header));
            }
            return(null);
        }