On Tue, May 18, 2021 at 12:54 AM Ross Finlayson <finlay...@live555.com> wrote:
>
> >>>>> Is it absolutely impossible to
> >>>>> discard all NALs for the given RTP stream on the server side until
> >>>>> SPS/PPS arrive?
> >>>>
> >>>> If your server is using our “H264VideoFileServerMediaSubsession” class, 
> >>>> then it’s already doing this.  However, the problem is that - for many 
> >>>> H.264 video sources - the PPS and SPS NAL units appear only at the very 
> >>>> start of the stream, and never thereafter.  That’s why - if you set 
> >>>> “reuseFirstSource” to True - the second and subsequent receivers will 
> >>>> not get the SPS/PPS NAL units in the media stream.  But, as I’ve already 
> >>>> noted, this is not something that receivers should be relying on anyway.
> >>>
> >>> No, it's based on H264LiveServerMediaSubsession
> >>
> >> I don’t know what “H264LiveServerMediaSubsession” is.  We have no class 
> >> with that name,.
> >
> > Sorry, copy/paste error. Actually H264LiveServerMediaSubsession is my
> > subclass of OnDemandServerMediaSubsession with createNewRTPSink()
> > creating H264VideoRTPSink instance.
>
> If you know - in advance - the H.264 PPS and SPS NAL units, then your 
> “createNewRTPSink()” implementation should pass them as parameters to the 
> call to “H264VideoRTPSink::createNew()”.  If you do this, then the proper 
> "a=fmtp:” line containing "sprop-parameter-sets” will automatically appear in 
> your SDP description.

Yes, that helped. I created an H.264 encoder beforehand, encoded one
frame, extracted & saved the resulting SPS/PPS NALs, and then used
them while creating H264VideoRTPSink. Now all my problems with ffmpeg
seem to be gone. Thanks a lot for all your efforts!

- Dmitry Bely

_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to