mirror of
https://github.com/Monibuca/plugin-rtsp2.git
synced 2025-09-27 03:55:52 +08:00
fix: sps pps
This commit is contained in:
31
publisher.go
31
publisher.go
@@ -2,6 +2,8 @@ package rtsp2
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/AlexxIT/go2rtc/pkg/core"
|
"github.com/AlexxIT/go2rtc/pkg/core"
|
||||||
|
"github.com/AlexxIT/go2rtc/pkg/h264"
|
||||||
|
"github.com/AlexxIT/go2rtc/pkg/h265"
|
||||||
"github.com/AlexxIT/go2rtc/pkg/rtsp"
|
"github.com/AlexxIT/go2rtc/pkg/rtsp"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
"m7s.live/engine/v4"
|
"m7s.live/engine/v4"
|
||||||
@@ -27,19 +29,38 @@ func (p *RTSPPublisher) setTracks() {
|
|||||||
var handler core.HandlerFunc
|
var handler core.HandlerFunc
|
||||||
switch c.Name {
|
switch c.Name {
|
||||||
case core.CodecH264:
|
case core.CodecH264:
|
||||||
p.VideoTrack = track.NewH264(p.Stream, c.PayloadType)
|
if p.VideoTrack == nil {
|
||||||
|
p.VideoTrack = track.NewH264(p.Stream, c.PayloadType)
|
||||||
|
sps, pps := h264.GetParameterSet(c.FmtpLine)
|
||||||
|
p.VideoTrack.WriteSliceBytes(sps)
|
||||||
|
p.VideoTrack.WriteSliceBytes(pps)
|
||||||
|
}
|
||||||
handler = p.VideoTrack.WriteRTPPack
|
handler = p.VideoTrack.WriteRTPPack
|
||||||
case core.CodecH265:
|
case core.CodecH265:
|
||||||
p.VideoTrack = track.NewH265(p.Stream, c.PayloadType)
|
if p.VideoTrack == nil {
|
||||||
|
p.VideoTrack = track.NewH265(p.Stream, c.PayloadType)
|
||||||
|
vps, sps, pps := h265.GetParameterSet(c.FmtpLine)
|
||||||
|
if len(vps) > 0 {
|
||||||
|
p.VideoTrack.WriteSliceBytes(vps)
|
||||||
|
}
|
||||||
|
p.VideoTrack.WriteSliceBytes(sps)
|
||||||
|
p.VideoTrack.WriteSliceBytes(pps)
|
||||||
|
}
|
||||||
handler = p.VideoTrack.WriteRTPPack
|
handler = p.VideoTrack.WriteRTPPack
|
||||||
case core.CodecAAC:
|
case core.CodecAAC:
|
||||||
p.AudioTrack = track.NewAAC(p.Stream, c.PayloadType)
|
if p.AudioTrack == nil {
|
||||||
|
p.AudioTrack = track.NewAAC(p.Stream, c.PayloadType)
|
||||||
|
}
|
||||||
handler = p.AudioTrack.WriteRTPPack
|
handler = p.AudioTrack.WriteRTPPack
|
||||||
case core.CodecPCMA:
|
case core.CodecPCMA:
|
||||||
p.AudioTrack = track.NewG711(p.Stream, true, c.PayloadType)
|
if p.AudioTrack == nil {
|
||||||
|
p.AudioTrack = track.NewG711(p.Stream, true, c.PayloadType)
|
||||||
|
}
|
||||||
handler = p.AudioTrack.WriteRTPPack
|
handler = p.AudioTrack.WriteRTPPack
|
||||||
case core.CodecPCMU:
|
case core.CodecPCMU:
|
||||||
p.AudioTrack = track.NewG711(p.Stream, false, c.PayloadType)
|
if p.AudioTrack == nil {
|
||||||
|
p.AudioTrack = track.NewG711(p.Stream, false, c.PayloadType)
|
||||||
|
}
|
||||||
handler = p.AudioTrack.WriteRTPPack
|
handler = p.AudioTrack.WriteRTPPack
|
||||||
}
|
}
|
||||||
if handler != nil {
|
if handler != nil {
|
||||||
|
Reference in New Issue
Block a user