> I am trying to use Live555 to implement an RTSP server in our IP camera. > > Our H.264 encoder produces NAL units preceded by a 00 00 00 01 start code. > > The encoding main thread then writes the NAL units to a linux pipe where they > can be read by the RTSP Server thread for streaming out. > > My questions are:- > 1. Is the linux pipe method a good enough mechanism for getting the > data to the server?
Yes. In fact, it's an excellent mechanism, because it allows the server to treat the input stream as if it were a file. This means that the existing "testOnDemandRTSPServer" code will work; you need make only minor changes (set "reuseFirstSource" to True, and change the input file name). See http://www.live555.com/liveMedia/faq.html#liveInput-unicast > > 2. Which H264 framer class do I need? The new > H264VideoStreamDiscreteFramer class doesn’t seem right because I have these > start codes on each NAL unit. If I base a new class on H264VideoStreamFramer, > do I need to remove the start codes? Because you're reading H.264 from an unstructured byte stream, you'd use a "H264VideoStreamFramer", and the input data is assumed to include start codes at the front of each NAL unit. > 3. What else does the framer class need to do? In this case you *don't* need to write any new 'framer' code (or subclass) of your own. Just use "H264VideoStreamFramer" as is. > Is there an example of this anywhere? Yes, see "testProgs/testOnDemandRTSPServer.cpp", and "liveMedia/H264VideoFileServerMediaSubsession.cpp". (Because you're reading from a pipe (i.e., as if it were a file), then you should be able to use the "H264VideoFileServerMediaSubsession" class, without modification.) 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