diff --git a/src/JT1078.Flv/FlvEncoder.cs b/src/JT1078.Flv/FlvEncoder.cs
index cad5ee1..98e9a0a 100644
--- a/src/JT1078.Flv/FlvEncoder.cs
+++ b/src/JT1078.Flv/FlvEncoder.cs
@@ -193,13 +193,14 @@ namespace JT1078.Flv
///
/// 编码视频
///
+ /// 必须是组包后的数据
/// 1078包
/// 是否需要首帧视频
///
public byte[] EncoderVideoTag(JT1078Package package, bool needVideoHeader = false)
{
if (package.Label3.DataType == JT1078DataType.音频帧) return default;
- byte[] buffer = FlvArrayPool.Rent(65535);
+ byte[] buffer = FlvArrayPool.Rent(package.Bodies.Length);
FlvMessagePackWriter flvMessagePackWriter = new FlvMessagePackWriter(buffer);
var nalus = h264Decoder.ParseNALU(package);
if (nalus != null && nalus.Count > 0)
@@ -221,7 +222,7 @@ namespace JT1078.Flv
if (sps == null)
{
return null;
- }
+ }
var rawData = h264Decoder.DiscardEmulationPreventionBytes(sps.RawData);
ExpGolombReader h264GolombReader = new ExpGolombReader(rawData);
SPSInfo spsInfo = h264GolombReader.ReadSPS();
@@ -289,7 +290,7 @@ namespace JT1078.Flv
///
public byte[] EncoderOtherVideoTag(H264NALU nALU)
{
- byte[] buffer = FlvArrayPool.Rent(65535);
+ byte[] buffer = FlvArrayPool.Rent(nALU.RawData.Length);
try
{
FlvMessagePackWriter flvMessagePackWriter = new FlvMessagePackWriter(buffer);
@@ -340,7 +341,7 @@ namespace JT1078.Flv
byte[] EncoderAacAudioTag(uint timestamp, byte[] aacFrameData)
{
- byte[] buffer = FlvArrayPool.Rent(65535);
+ byte[] buffer = FlvArrayPool.Rent(aacFrameData.Length);
try
{
FlvMessagePackWriter flvMessagePackWriter = new FlvMessagePackWriter(buffer);
diff --git a/src/JT1078.Flv/JT1078.Flv.xml b/src/JT1078.Flv/JT1078.Flv.xml
index 7e937e1..f261003 100644
--- a/src/JT1078.Flv/JT1078.Flv.xml
+++ b/src/JT1078.Flv/JT1078.Flv.xml
@@ -266,6 +266,7 @@
编码视频
+ 必须是组包后的数据
1078包
是否需要首帧视频