diff --git a/config.toml b/config.toml index 6b2a894..9238598 100644 --- a/config.toml +++ b/config.toml @@ -7,6 +7,6 @@ disk_ram = true [docker] mode=false [mp4] -record=false +record=true [ebml] -record=false \ No newline at end of file +record=false diff --git a/media/streamer/egress/record/mp4/handler.go b/media/streamer/egress/record/mp4/handler.go index 05c810e..f7e3d6c 100644 --- a/media/streamer/egress/record/mp4/handler.go +++ b/media/streamer/egress/record/mp4/handler.go @@ -94,7 +94,6 @@ func (m *MP4) Start(ctx context.Context, source hub.Source) error { if !m.splitPending && data.H264Video.RawDTS()-m.lastSplitTime >= m.splitIntervalMS { m.splitPending = true } - } if data.H264Video != nil { diff --git a/media/streamer/egress/whep/whep.go b/media/streamer/egress/whep/whep.go index e5ccb00..06f6d08 100644 --- a/media/streamer/egress/whep/whep.go +++ b/media/streamer/egress/whep/whep.go @@ -169,13 +169,21 @@ func (w *WHEP) syncAndSendPackets() error { // Remove lagging packet from buffer if videoPacket.timestamp <= audioPacket.timestamp { // If audio is ahead, remove video from buffer - w.videoBuffer = w.videoBuffer[1:] + if len(w.videoBuffer) > 100 { + w.videoBuffer = append([]*packetWithTimestamp{}, w.videoBuffer[1:]...) + } else { + w.videoBuffer = w.videoBuffer[1:] + } if err := w.videoTrack.WriteRTP(videoPacket.packet); err != nil { return err } } else { // If video is ahead, remove audio from buffer - w.audioBuffer = w.audioBuffer[1:] + if len(w.audioBuffer) > 100 { + w.audioBuffer = append([]*packetWithTimestamp{}, w.audioBuffer[1:]...) + } else { + w.audioBuffer = w.audioBuffer[1:] + } if err := w.audioTrack.WriteRTP(audioPacket.packet); err != nil { return err }