mirror of
https://github.com/Monibuca/plugin-rtsp.git
synced 2025-09-27 20:12:14 +08:00
Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
8901f4c117 | ||
![]() |
2f7c2de352 |
@@ -145,12 +145,14 @@ func (client *RTSPClient) pullStream() {
|
|||||||
}
|
}
|
||||||
client.Client = &gortsplib.Client{
|
client.Client = &gortsplib.Client{
|
||||||
OnPacketRTP: func(trackID int, payload []byte) {
|
OnPacketRTP: func(trackID int, payload []byte) {
|
||||||
|
// Println("OnPacketRTP", trackID, len(payload))
|
||||||
if f := client.processFunc[trackID]; f != nil {
|
if f := client.processFunc[trackID]; f != nil {
|
||||||
var clone []byte
|
var clone []byte
|
||||||
f(append(clone, payload...))
|
f(append(clone, payload...))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Transport: &client.Transport,
|
ReadBufferSize: 10000,
|
||||||
|
Transport: &client.Transport,
|
||||||
}
|
}
|
||||||
// parse URL
|
// parse URL
|
||||||
u, err := base.ParseURL(client.URL)
|
u, err := base.ParseURL(client.URL)
|
||||||
|
@@ -97,9 +97,11 @@ func (sh *RTSPServer) OnDescribe(ctx *gortsplib.ServerHandlerOnDescribeCtx) (*ba
|
|||||||
}
|
}
|
||||||
var st uint32
|
var st uint32
|
||||||
onVideo := func(ts uint32, pack *engine.VideoPack) {
|
onVideo := func(ts uint32, pack *engine.VideoPack) {
|
||||||
for _, nalu := range pack.NALUs {
|
for i, nalu := range pack.NALUs {
|
||||||
for _, pack := range vpacketer.Packetize(nalu, (ts-st)*90) {
|
packs := vpacketer.Packetize(nalu, (ts-st)*90)
|
||||||
rtp, _ := pack.Marshal()
|
for j, rtpack := range packs {
|
||||||
|
rtpack.Marker = i == len(pack.NALUs)-1 && j == len(packs)-1
|
||||||
|
rtp, _ := rtpack.Marshal()
|
||||||
stream.WritePacketRTP(trackId, rtp)
|
stream.WritePacketRTP(trackId, rtp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user