Hi, I'm trying to implement a unicast ondemand streaming from a live source. The live source comes from the Nvidia encoder NVEnc: http://docs.nvidia.com/cuda/samples/3_Imaging/cudaEncode/doc/nvcuvenc.pdf This encoder produces NAL units ready to send over the network.
I have a lot of problems with artifacts. I have tried two ways of sending the packages. è A Stream Ring buffer: With this approach I'm sending as much bytes as possible. Means. Min(availableBytesInBuffer,fMaxSize) bytes è A queue where I hold the NAL packets and its size: With this approach I tried to send the entire NAL. Means Min(nal.size,fMaxSize) bytes With the first approach I can see in the log that I'm getting many errors regarding the SPS PPS incorrect. also when I display the stream in the video player I see artifacts and blinkings With the second approach I also see artifacts and blinkings and the main problem is that there are many NAL units that are bigger than fMaxSize. Thus, those frames are truncated. I do not know How to ensure that fMaxSize is always bigger that fFrameSize. I tried to set up in the Streamer code enough size in the OutputPacketBuffer but this does not seem to work.... { OutPacketBuffer::maxSize=10000000; char const* streamName = "testStream"; ServerMediaSession* sms = ServerMediaSession::createNew(*env, streamName, streamName, descriptionString); sms->addSubsession(H264LiveServerMediaSubsession ::createNew(*env,h264LiveBuffer, reuseFirstSource)); rtspServer->addServerMediaSession(sms); announceStream(rtspServer, sms, streamName, inputFileName); } At, this point I wonder... first Is it possible to stream the NAL units coming from the NVidia with the live555? If so,, any suggestion how can I try to solve this? I'm literally stuck at this point. Thank you Best Pablo
_______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel