fix: rtmp时间戳超过0xFFFFFF封装流错误

This commit is contained in:
ydajiang
2025-04-11 16:37:37 +08:00
parent bb1f5eba35
commit 4c11d29bcb

View File

@@ -72,7 +72,7 @@ func (t *transStream) Input(packet *avformat.AVPacket) ([][]byte, int64, bool, e
// 整个chunk大小 // 整个chunk大小
totalSize := chunkHeaderSize + payloadSize + numChunks totalSize := chunkHeaderSize + payloadSize + numChunks
// 如果时间戳超过3字节, 每个chunk都需要多4字节的扩展时间戳 // 如果时间戳超过3字节, 每个chunk都需要多4字节的扩展时间戳
if dts >= 0xFFFFFF && dts >= 0xFFFFFFFF { if dts >= 0xFFFFFF {
totalSize += (1 + numChunks) * 4 totalSize += (1 + numChunks) * 4
} }
@@ -89,7 +89,7 @@ func (t *transStream) Input(packet *avformat.AVPacket) ([][]byte, int64, bool, e
utils.Assert(ok) utils.Assert(ok)
} }
// 写第一个type为0的chunk sequenceHeader // 写第一个type为0的chunk
chunk.Length = payloadSize chunk.Length = payloadSize
chunk.Timestamp = uint32(dts) chunk.Timestamp = uint32(dts)
n := chunk.MarshalHeader(bytes) n := chunk.MarshalHeader(bytes)