支持保存推流数据包到文件. 打印拉流url

This commit is contained in:
yangjiechina
2024-07-04 22:35:55 +08:00
parent 4b1200d9ad
commit dfda276583
17 changed files with 280 additions and 81 deletions

View File

@@ -8,16 +8,30 @@ import (
"net"
)
// UDPServer GB28181UDP收流
type UDPServer struct {
stream.StreamServer[*UDPSource]
udp *transport.UDPServer
filter Filter
}
func (U UDPServer) OnConnected(conn net.Conn) []byte {
func (U *UDPServer) OnNewSession(conn net.Conn) *UDPSource {
return nil
}
func (U UDPServer) OnPacket(conn net.Conn, data []byte) []byte {
func (U *UDPServer) OnCloseSession(session *UDPSource) {
U.filter.RemoveSource(session.SSRC())
session.Close()
if stream.AppConfig.GB28181.IsMultiPort() {
U.udp.Close()
U.Handler = nil
}
}
func (U *UDPServer) OnPacket(conn net.Conn, data []byte) []byte {
U.StreamServer.OnPacket(conn, data)
packet := rtp.Packet{}
err := packet.Unmarshal(data)
if err != nil {
@@ -32,6 +46,7 @@ func (U UDPServer) OnPacket(conn net.Conn, data []byte) []byte {
}
if stream.SessionStateHandshakeDone == source.State() {
conn.(*transport.Conn).Data = source
source.PreparePublish(conn, packet.SSRC, source)
}
@@ -39,10 +54,6 @@ func (U UDPServer) OnPacket(conn net.Conn, data []byte) []byte {
return nil
}
func (U UDPServer) OnDisConnected(conn net.Conn, err error) {
}
func NewUDPServer(addr net.Addr, filter Filter) (*UDPServer, error) {
server := &UDPServer{
filter: filter,
@@ -54,5 +65,9 @@ func NewUDPServer(addr net.Addr, filter Filter) (*UDPServer, error) {
}
server.udp = udp
server.StreamServer = stream.StreamServer[*UDPSource]{
SourceType: stream.SourceType28181,
Handler: server,
}
return server, nil
}