mirror of
https://github.com/lkmio/lkm.git
synced 2025-10-05 15:16:49 +08:00
支持保存推流数据包到文件. 打印拉流url
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user