Searching how to stream the CSI camera board acquisition, I found first some solution involving raspivid piped to VLC, and next solutions involving a V4L2 driver for raspi-cam (http://www.linux-projects.org/uv4l/) and use VLC to read from V4L2 driver and make RTSP streaming.
The main drawback is that this V4L2 driver seems closed-source, but it open the camera stream to be accessed by many more applications.
VLC is a very powerfull application, but it is difficult to deal with different caching buffers in order to reduce the latency, so I developped a simple application that capture H264 using the V4L2 API and feed an RTSP streamer.
I post the code on github https://github.com/mpromonet/h264_v4l2_rtspserver
To register the Video4Linux driver :
To start the RTSP Server :[email protected] ~ $sudo uv4l --driver raspicam --auto-video_nr --sched-rr --encoding=h264
<notice> [core] Registering device node /dev/video0
To receive video stream :[email protected]rrypi ~ $./h264_v4l2_rtspserver /dev/video0
Create V4L2 Source.../dev/video0
/dev/video0 support read i/o
/dev/video0 support streaming i/o
fps :1/25 nbBuffer:5
Play this stream using the URL "rtsp://192.168.0.18:8554/unicast"
Tests show about 700~800ms of latency for 640x480, about 1000~1100 ms for 800x600.server ~ $vlc rtsp://192.168.0.18:8554/unicast
server ~ $ffplay rtsp://192.168.0.18:8554/unicast
Not so good but better than the 3~4 seconds of some solutions.
Since this post an official V4L2 drive for raspi-cam is available, then a video device can be creating using bcm2835-v4l2 module instead of uv4l.