diff --git a/examples/client-read-h264-save-to-disk/mpegtsencoder.go b/examples/client-read-h264-save-to-disk/mpegtsencoder.go index 015176d1..7e893fbc 100644 --- a/examples/client-read-h264-save-to-disk/mpegtsencoder.go +++ b/examples/client-read-h264-save-to-disk/mpegtsencoder.go @@ -61,6 +61,7 @@ func (e *mpegtsEncoder) encode(nalus [][]byte, pts time.Duration) error { {byte(h264.NALUTypeAccessUnitDelimiter), 240}, } + nonIDRPresent := false idrPresent := false for _, nalu := range nalus { @@ -84,11 +85,18 @@ func (e *mpegtsEncoder) encode(nalus [][]byte, pts time.Duration) error { if e.sps != nil && e.pps != nil { filteredNALUs = append(filteredNALUs, e.sps, e.pps) } + + case h264.NALUTypeNonIDR: + nonIDRPresent = true } filteredNALUs = append(filteredNALUs, nalu) } + if !nonIDRPresent && !idrPresent { + return nil + } + var dts time.Duration if !e.firstIDRReceived {