[fix]rtp丢包简单测试程序

pull/223/head
joe_zhang2006@163.com 2 years ago
parent f63d2069de
commit e1b7310d5b

@ -116,7 +116,7 @@ func (p *PsUnpacker) FeedRtpPacket(b []byte) error {
opkt := p.list.PopFirst()
p.list.SetUnpackedSeq(opkt.Header.Seq)
Log.Infof("rtp sep:%d;timestamp:%d",opkt.Header.Seq,opkt.Header.Timestamp)
p.FeedRtpBody(opkt.Body(), opkt.Header.Timestamp)
} else {
// 不是顺序的,如果还没达到容器阈值,就先缓存在容器中,直接退出了

@ -12,7 +12,6 @@ import (
"encoding/hex"
"github.com/q191201771/lal/pkg/base"
"github.com/q191201771/lal/pkg/hevc"
"github.com/q191201771/naza/pkg/nazabits"
"github.com/q191201771/naza/pkg/nazamd5"
"io/ioutil"
"os"
@ -114,7 +113,7 @@ var hevcNalu = []byte{
func TestPsUnpacker2(t *testing.T) {
// 解析别人提供的一些测试数据,开发阶段用
//test1()
test2()
//test2()
}
func test1() {
@ -159,42 +158,32 @@ func test1() {
nazalog.Assert(nil, err)
nazalog.Assert("fd8dbe365152e212bf8cbabb7a99c1aa", nazamd5.Md5(out))
}
func test2() {
// 读取raw文件(包连在一起包含rtp header及一个uint16长度)存取h265文件
b, err := ioutil.ReadFile("/Volumes/T7/new/avfile/0901150011.rtp")
nazalog.Assert(nil, err)
fp, err := os.Create("/tmp/0240130078.h265")
nazalog.Assert(nil, err)
waitingSps := true
unpacker := NewPsUnpacker().WithOnAvPacket(func(packet *base.AvPacket) {
if !packet.IsVideo() {
return
}
func TestRtpLossPacket(t *testing.T) {
rtpPacks:=[][]byte{
{128,96,0,1,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
{128,96,0,2,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
{128,96,0,3,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
{128,96,0,6,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
{128,96,0,7,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
{128,96,0,8,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
{128,96,0,9,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
{128,96,0,10,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
{128,96,0,11,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
{128,96,0,12,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
{128,96,0,13,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
{128,96,0,14,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
{128,96,0,15,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
{128,96,0,16,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
{128,96,0,17,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
{128,96,0,18,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
{128,96,0,19,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
{128,96,0,20,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
{128,96,0,21,6,203,152,224,53,182,117,59,0,0,1,186,68,108,188,88,116,1,2,143,99,254,255,255,0,0,120,124},
nazalog.Debugf("[test1] onVideo. length=%d", len(packet.Payload))
if waitingSps {
if hevc.ParseNaluType(packet.Payload[4]) == hevc.NaluTypeSps {
waitingSps = false
} else {
return
}
}
_, _ = fp.Write(packet.Payload)
})
br := nazabits.NewBitReader(b)
for {
len, err := br.ReadBits16(16)
if err != nil {
break
}
buf, err := br.ReadBytes(uint(len))
if err != nil {
break
}
unpacker.FeedRtpPacket(buf)
}
fp.Close()
maxUnpackRtpListSize = 10
unpacker := NewPsUnpacker()
for _,rtp:=range rtpPacks{
unpacker.FeedRtpPacket(rtp)
}
}
Loading…
Cancel
Save