# VLC streaming testbench

Has anyone tried streaming media with VLC as server? I want to deploy VLC as streaming server, but my department didn't had a nice experience with VLC streaming.

My question is has anyone tried VLC streaming over LAN with as many as 200 clients? What were the precautions to be taken before going for the actual showdown? What kind of transport stream is better for a smoother live streaming?

Are any test bench I can use to convince my superiors?

-

## 1 Answer

While I was developing a DVR for a specific purpose I did many h264 streaming tests mainly using ffmpeg as the server and VLC as a player. The goal was a bit different, as I just needed a way to preview four cameras (v4l2 devices) in realtime, so I ended up streaming h264 video directly over UDP, but in the research process I also used VLC as the server, so maybe it can serve as a starting point for your testbench.

Assuming you are using Linux as your server platform, the command line below uses VLC command line client (cvlc) to get raw video from a v4l2 device (a webcam or a video card input), encoding it in h264 and then advertise the stream for a RTSP client to get:

cvlc v4l2:///dev/video0 --sout '#transcode{vcodec=mp4v,vb=2048}:rtp{sdp=rtsp://@:8554/video.sdp}'


If you also use VLC as the client, you can view the stream with this (server would be the server name or IP address):

vlc rtsp://server:8554/video.sdp


Since you need to stream the video to many clients, it would be better to use multicast, so your server doesn't have to send out a new stream for each connected client. Supposing your multicast address is 239.255.1.1, you just need to specify it on the RTP section:

cvlc v4l2:///dev/video0 --sout '#transcode{vcodec=mp4v,vb=2048}:rtp{sdp=rtsp://@:8554/video.sdp, dst=239.255.1.1}'


Since the video.sdp file is generated by VLC itself, you just connect the same way as before, but your client will get the stream from the multicast address instead:

vlc rtsp://server:8554/video.sdp

-
I have tested vlc streaming server with http transport. I was unable to reach 100 clients. It seems to stop steam after i reach 80 clients...I have also issued a bug ticket in trac.videolan.org –  Vineet Menon Jun 26 '12 at 4:59
Did you try using multicast? –  Claudio Jun 26 '12 at 12:00
If you directed all the 100 users to your server, each one creating a duplicate stream, you probably just ran out of bandwidth. For this kind of application multicasting should be the way to go. –  Claudio Jun 26 '12 at 18:01
i was using gigabit ethernet..i have tried all combinations... bandwidth, CPU, memory...everything..but that's not it!! –  Vineet Menon Jun 27 '12 at 4:38
Ok.. it's not about the machine. Depending on the video bitrate even a gigabit ethernet can't cope with a dozen duplicate streams. Did you specifically try using multicast? In this mode you only send one video stream out of your server and the router manages to replicate that only stream to all the clients who request it, so you'll never have a bottleneck on your server output. Your 100 or so clients were all on the same subnet? –  Claudio Jun 27 '12 at 14:04