From b82fe5bdaca49db6526343be8baa0ab28255953f Mon Sep 17 00:00:00 2001 From: smallchi <564952747@qq.com> Date: Mon, 14 Oct 2019 18:37:38 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0flv=E7=BC=96=E7=A0=81?= =?UTF-8?q?=E5=99=A8=E6=94=AF=E6=8C=81=E5=A4=9A=E4=B8=AANALU(SEI=E5=8C=85)?= =?UTF-8?q?=202.=E5=9C=A8flv=E7=BC=96=E7=A0=81=E4=B8=AD=E5=B0=861078?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E7=9A=84=E5=8F=82=E6=95=B0=E7=BB=99=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/JT1078.Flv.Test/FlvEncoderTest.cs | 29 +++---- src/JT1078.Flv.Test/H264/index.html | 13 +++- src/JT1078.Flv.Test/JT1078.Flv.Test.csproj | 3 + src/JT1078.Flv/FlvEncoder.cs | 75 ++++++++++++------- src/JT1078.Flv/H264/H264Decoder.cs | 1 + src/JT1078.Flv/H264/H264NALU.cs | 6 ++ .../MessagePack/FlvMessagePackWriter_Flv.cs | 10 ++- src/JT1078.Flv/Metadata/AvcVideoPacke.cs | 3 +- 8 files changed, 85 insertions(+), 55 deletions(-) diff --git a/src/JT1078.Flv.Test/FlvEncoderTest.cs b/src/JT1078.Flv.Test/FlvEncoderTest.cs index f68fdfc..2d23b9e 100644 --- a/src/JT1078.Flv.Test/FlvEncoderTest.cs +++ b/src/JT1078.Flv.Test/FlvEncoderTest.cs @@ -10,6 +10,7 @@ using JT1078.Protocol.Enums; using JT1078.Flv.H264; using JT1078.Flv.MessagePack; using JT1078.Flv.Metadata; +using System.Diagnostics; namespace JT1078.Flv.Test { @@ -35,15 +36,12 @@ namespace JT1078.Flv.Test FlvEncoder encoder = new FlvEncoder(); var contents = encoder.CreateFlvFrame(nalus); - byte[] tmp = new byte[FlvEncoder.VideoFlvHeaderBuffer.Length+ contents.Length]; - Array.Copy(FlvEncoder.VideoFlvHeaderBuffer, tmp, FlvEncoder.VideoFlvHeaderBuffer.Length); - Array.Copy(contents,0,tmp, FlvEncoder.VideoFlvHeaderBuffer.Length, contents.Length); var filepath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "H264", "JT1078_1.flv"); if (File.Exists(filepath)) { File.Delete(filepath); } - File.WriteAllBytes(filepath, tmp); + File.WriteAllBytes(filepath, contents); } [Fact] @@ -79,7 +77,6 @@ namespace JT1078.Flv.Test File.Delete(filepath); } fileStream = new FileStream(filepath, FileMode.OpenOrCreate, FileAccess.Write); - fileStream.Write(FlvEncoder.VideoFlvHeaderBuffer); var totalPage = (h264NALULs.Count + 10 - 1) / 10; for(var i=0;i< totalPage; i++) { @@ -136,7 +133,6 @@ namespace JT1078.Flv.Test } fileStream = new FileStream(filepath, FileMode.OpenOrCreate, FileAccess.Write); - fileStream.Write(FlvEncoder.VideoFlvHeaderBuffer); var totalPage = (h264NALULs.Count + 10 - 1) / 10; for (var i = 0; i < totalPage; i++) { @@ -192,9 +188,7 @@ namespace JT1078.Flv.Test } } - fileStream = new FileStream(filepath, FileMode.OpenOrCreate, FileAccess.Write); - fileStream.Write(FlvEncoder.VideoFlvHeaderBuffer); - + fileStream = new FileStream(filepath, FileMode.OpenOrCreate, FileAccess.Write); var totalPage = (h264NALULs.Count + 10 - 1) / 10; for (var i = 0; i < totalPage; i++) { @@ -251,17 +245,16 @@ namespace JT1078.Flv.Test } //var tmp1 = h264NALULs.Where(w => w.NALUHeader.NalUnitType == 7).ToList(); List tmpSpss = new List(); - List times = new List(); + List times = new List(); List type = new List(); - //foreach (var item in h264NALULs) - //{ - // //ExpGolombReader expGolombReader = new ExpGolombReader(item.RawData); - // type.Add(item.NALUHeader.NalUnitType); - // times.Add(item.LastFrameInterval); - // //tmpSpss.Add(expGolombReader.ReadSPS()); - //} + foreach (var item in h264NALULs) + { + //ExpGolombReader expGolombReader = new ExpGolombReader(item.RawData); + //type.Add(item.NALUHeader.NalUnitType); + times.Add(item.Timestamp); + //tmpSpss.Add(expGolombReader.ReadSPS()); + } fileStream = new FileStream(filepath, FileMode.OpenOrCreate, FileAccess.Write); - fileStream.Write(FlvEncoder.VideoFlvHeaderBuffer); var totalPage = (h264NALULs.Count + 10 - 1) / 10; for (var i = 0; i < totalPage; i++) { diff --git a/src/JT1078.Flv.Test/H264/index.html b/src/JT1078.Flv.Test/H264/index.html index 46fb3eb..0a06bc3 100644 --- a/src/JT1078.Flv.Test/H264/index.html +++ b/src/JT1078.Flv.Test/H264/index.html @@ -9,13 +9,20 @@