I need to understand the value of fPresentationTime fDurationInMicroseconds. Those two are used in almost all videoframers. I have an IP camera, which sends out video frames in the oder of pps, sps, I, P, P, P...(29 times) in a second. So should the fPresentationTime/ fDurationInMicroseconds be set as 1000/32 (including both pps ,sps and vidoe frames) ms or 1000/30 (only the video frames) ms?
Note that "fPresentationTime" and "fDurationInMicroseconds" are separate variables, and both should be set (although, if you know that your framer will always be reading from a live source (rather than a file), you can probably omit setting "fDurationInMicroseconds").
(Note: Because you mention "PPS" and "SPS", I assume that you're referring specifically to H.264 video.)
"fDurationInMicroseconds" should be set to 1000000/framerate for the NAL unit that ends a video frame (Note: This will be the NAL unit for which your reimplemented "currentNALUnitEndsAccessUnit()" virtual function will return True), and should be set to 0 for all other NAL units.
Similarly, all NAL units that make up a single video frame (including any PPS and SPS NAL units) should be given the same "fPresentationTime" value (i.e., the presentation time of the video frame).
It looks the framer put several video frames in a single RTP packet.
No, it's the "H264VideoRTPSink" class (i.e., our implementation of the RTP payload format for H.264) that takes care of packing NAL units into RTP packets. You don't need to know or care about this. Just feed the "H264VideoRTPSink" one NAL unit at a time.
-- Ross Finlayson Live Networks, Inc. http://www.live555.com/ _______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel