From 272f6e1bc8bd6acd4fb10cd3ab16963a5c49cf24 Mon Sep 17 00:00:00 2001 From: langhuihui <178529795@qq.com> Date: Wed, 28 Feb 2024 09:09:52 +0800 Subject: [PATCH] feat: use new engine 4.15.1 --- go.mod | 8 +++++--- go.sum | 15 ++++++++++----- publisher.go | 18 +++++++++--------- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/go.mod b/go.mod index 216cdf1..ad6188a 100644 --- a/go.mod +++ b/go.mod @@ -7,11 +7,12 @@ require ( github.com/pion/rtcp v1.2.12 github.com/pion/webrtc/v4 v4.0.0-beta.7 go.uber.org/zap v1.26.0 - m7s.live/engine/v4 v4.13.12 + m7s.live/engine/v4 v4.15.1 ) require ( - github.com/bluenviron/mediacommon v1.0.0 // indirect + github.com/bluenviron/gortsplib/v4 v4.6.2 // indirect + github.com/bluenviron/mediacommon v1.5.1 // indirect github.com/cnotch/ipchub v1.1.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/denisbrodbeck/machineid v1.0.1 // indirect @@ -19,7 +20,7 @@ require ( github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect github.com/golang/mock v1.6.0 // indirect github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 // indirect - github.com/google/uuid v1.3.1 // indirect + github.com/google/uuid v1.4.0 // indirect github.com/logrusorgru/aurora/v4 v4.0.0 // indirect github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a // indirect github.com/mcuadros/go-defaults v1.2.0 // indirect @@ -39,6 +40,7 @@ require ( github.com/pion/transport/v3 v3.0.1 // indirect github.com/pion/turn/v3 v3.0.1 // indirect github.com/pion/webrtc/v3 v3.2.20 // indirect + github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b // indirect github.com/q191201771/naza v0.30.48 // indirect diff --git a/go.sum b/go.sum index 6733d3f..b6e72a5 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/bluenviron/mediacommon v1.0.0 h1:hKelTQKfetasCmXaXMiL1ihID0GRmItyWZt1/pqiKKk= -github.com/bluenviron/mediacommon v1.0.0/go.mod h1:nt5oKCO0WcZ+AH1oc12gs2ldp67xW2vl88c2StNmPlI= +github.com/bluenviron/gortsplib/v4 v4.6.2 h1:CGIsxpnUFvSlIxnSFS0oFSSfwsHMmBCmYcrGAtIcwXc= +github.com/bluenviron/gortsplib/v4 v4.6.2/go.mod h1:dN1YjyPNMfy/NwC17Ga6MiIMiUoQfg5GL7LGsVHa0Jo= +github.com/bluenviron/mediacommon v1.5.1 h1:yYVF+ebqZOJh8yH+EeuPcAtTmWR66BqbJGmStxkScoI= +github.com/bluenviron/mediacommon v1.5.1/go.mod h1:Ij/kE1LEucSjryNBVTyPL/gBI0d6/Css3f5PyrM957w= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -47,8 +49,9 @@ github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 h1:yAJXTCF9TqKcTiHJAE8dj7HMvPfh66eeA2JYW7eFpSE= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= +github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -136,6 +139,8 @@ github.com/pion/webrtc/v3 v3.2.20/go.mod h1:vVURQTBOG5BpWKOJz3nlr23NfTDeyKVmubRN github.com/pion/webrtc/v4 v4.0.0-beta.7 h1:OGCl69njLUKzT0ozJEon18W1LqH0GtuxG9Qx+qtxBdg= github.com/pion/webrtc/v4 v4.0.0-beta.7/go.mod h1:/zWz+1e1qrjaIKYZG/mOfPrntiHOhnd3vGz2Fdo85Ys= github.com/pixelbender/go-sdp v1.1.0/go.mod h1:6IBlz9+BrUHoFTea7gcp4S54khtOhjCW/nVDLhmZBAs= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= @@ -323,5 +328,5 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -m7s.live/engine/v4 v4.13.12 h1:GYdIPlvwkS57DbZGvQxgMJIKL+hyYZpOv/8qNjGbY6E= -m7s.live/engine/v4 v4.13.12/go.mod h1:cRR/WOZbPSAQfYxIHuCkj1YMg+C54CYlFpOJ88q+OG4= +m7s.live/engine/v4 v4.15.1 h1:oRIz4f+7sjFqBAHWKsePUvUj+vPItt9GVjYygl6GqaU= +m7s.live/engine/v4 v4.15.1/go.mod h1:FRtMPBGzNE6kCLgY0wuS3H7d1btKocRiVe9fAkDtP1g= diff --git a/publisher.go b/publisher.go index 1f62556..235d56f 100644 --- a/publisher.go +++ b/publisher.go @@ -8,7 +8,7 @@ import ( . "github.com/pion/webrtc/v4" "go.uber.org/zap" . "m7s.live/engine/v4" - . "m7s.live/engine/v4/track" + "m7s.live/engine/v4/codec" ) type WebRTCPublisher struct { @@ -28,16 +28,16 @@ func (puber *WebRTCPublisher) OnEvent(event any) { func (puber *WebRTCPublisher) onTrack(track *TrackRemote, receiver *RTPReceiver) { puber.Info("onTrack", zap.String("kind", track.Kind().String()), zap.Uint8("payloadType", uint8(track.Codec().PayloadType))) - if codec := track.Codec(); track.Kind() == RTPCodecTypeAudio { + if codecP := track.Codec(); track.Kind() == RTPCodecTypeAudio { puber.audioTrack.Store(track) if puber.AudioTrack == nil { - switch codec.PayloadType { + switch codecP.PayloadType { case 111: - puber.AudioTrack = NewOpus(puber.Stream) + puber.CreateAudioTrack(codec.CodecID_OPUS) case 8: - puber.AudioTrack = NewG711(puber.Stream, true) + puber.CreateAudioTrack(codec.CodecID_PCMA) case 0: - puber.AudioTrack = NewG711(puber.Stream, false) + puber.CreateAudioTrack(codec.CodecID_PCMU) default: puber.AudioTrack = nil puber.Config.PubAudio = false @@ -61,11 +61,11 @@ func (puber *WebRTCPublisher) onTrack(track *TrackRemote, receiver *RTPReceiver) } else { puber.videoTrack.Store(track) if puber.VideoTrack == nil { - switch codec.PayloadType { + switch codecP.PayloadType { case 45: - puber.VideoTrack = NewAV1(puber.Stream, byte(codec.PayloadType)) + puber.CreateVideoTrack(codec.CodecID_AV1, byte(codecP.PayloadType)) default: - puber.VideoTrack = NewH264(puber.Stream, byte(codec.PayloadType)) + puber.CreateVideoTrack(codec.CodecID_H264, byte(codecP.PayloadType)) } } go puber.writeRTCP(track)