Hello, I have modified the testH264VideoToTransportStream.cpp program by simply replacing inputFileName to "stdin" and outputFileName to "/dev/my_device".
/dev/my_device is a Linux device driver that transports the TS data to the streaming hardware. Then I run the following command line: ./openRTSP -v rtsp://192.168.1.214/stream/profile1=u | ./testH264VideoToTransportStreamToMicrowave This works well except there is a lot of "thrashing". Even with constant bitrate set in the encoder, the bitrate varies a lot. At first I suspected that this may be happening because of the Linux pipe so I recompiled the kernel and increased to pipe size to 1 MB. This did not help. So to verify if this is a Linux pipe issue I modified testH264VideoToTransportStream.cpp to output to UDP: ./openRTSP -v rtsp://192.168.1.214/stream/profile1=u | ./testH264VideoToTransportStreamToUDP The above command line showed a very constant bitrate on the receiver side so I can deduce it's not a Linux pipe issue. Finally, I put some debug prints in the Linux device driver and it shows that each fwrite call by the FileSink object is 188 bytes. I have already changed the bufferSize of FileSink to 1000000 for testing but that doesn't seem to help; it's still writing only 188 bytes per fwrite call: MediaSink* outputSink = FileSink::createNew(*env, outputFileName, 1000000); So is there a way to have more buffering going on so at each fwrite call writes more than 188 bytes at a time to /dev/my_device ?? Thanks. _______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel