hi Ross,

I followed your suggestion to use “H264VideoStreamDiscreteFramer” instead of 
“H264VideoStreamFramer”. Now that the data seems to be consumed right away 
after "afterGetting" callback, but VLC player can't set up session. 

For the start code, I have eleminated them all. My camera's working pattern is 
like this, when encoding key frame, it outputs SC+SPS+SC+PPS+SC+Frame, when 
encoding non-key frame, it outputs SC+Frame. So, after I eleminated the SC, 
what I sent to the sink object is SPS+PPS+FRAME for key frame, and FRAME alone 
for non-key frame.

Did I missed something here?



Xin
Mobile: +86 186-1245-1524
Email: x...@vscenevideo.com
QQ: 156678745
 
From: Ross Finlayson
Date: 2017-01-13 01:30
To: LIVE555 Streaming Media - development & use
Subject: Re: [Live-devel] how to make latency as low as possible
Your data source class (“FramedSource” subclass) looks mostly OK; however, I 
suspect that your problem is that you are not using the correct ‘framer’ class 
for your H.264 video ‘frames’ (in reality, H.264 NAL units).
 
Look at your implementation of the “createNewStreamSource()” virtual function 
(in your “OnDemandServerMediaSubsession” subclass).  Because your data source - 
from your encoder - is discrete H.264 NAL units (i.e., one at a time), rather 
than a byte stream, you must use feed your input source to a 
“H264VideoStreamDiscreteFramer”, *not* a “H264VideoStreamFramer”.
 
Note also that each ‘frame’ that come from your input source must be a single 
H.264 NAL unit, and MUST NOT be prepended by a 0x00 0x00 0x00 0x01 ‘start code’.
 
 
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
_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to