I thought I'd share my experience with using VLC, from a different perspective. I am part of a little start-up company that offers mobile streaming versions of public IPTV streams. We looked into various transcoding softwares, and the only RTSP transcoding solution we found came with a $8000+ price tag; this forced us to try finding a free solution. What we came up with was VLC and Darwin Streaming Server. The initial tests were very promising. Our dedicated servers (quad core machines running Windows Server 2008) would end up being our only cost; that was too tempting not to try it out.
It became my job to find a workable implementation of this. 1.1.4 simply wouldn't work, since it crashes nonstop when switching / ending / dealing with RTSP streams (which some of our source feeds are). The public internet consensus seems to be that 0.8.6 is the best streamlined, no-frills, lightweight stable version of VLC before the GUI 'fluff' and bloat; 1.0.5 is the next best thing, offering stability with the newer features and increased compatibility; 1.1.2 or 1.1.3 is the best usable latest version. I ended up testing them all in our transcoding setup.
0.8.6 unfortunately doesn't appear modern enough to create the type of x264/mp4a rtsp/sdp mobile streaming format we need, nor can it accept php stream links (which is what some of our sources use). I therefore set things up using 1.1.3. This worked fairly well after working out the various command line settings, but had a tendency to stop transcoding for no discernible reason. The application still responded, but the process just stopped. I got the same results for 1.1.2. Switching to 1.0.5 seemed to solve this, after tweaking the command line once again to be compatible. Using this setup, one server was able to handle about seven channels before hitting 90% cpu load. The $8000+ transcoding software makers claimed we would be able to run 12-24 streams per quad core machine, so seven was a slightly disappointing. But the price difference was worth it!
After a while, the constant manual restarting of VLC instances got tiresome, so I looked into how to automate it. This led to another restructuring of the command line we were using. On a side note, let me join in the voices here saying that while I completely understand the security reasons behind the VLC team removing the acceptance of command line instructions within playlists, someone should really compile a version that does it. In trying to find an older version that still allowed this but is compatible with our streaming, I tried 0.9.4. While it didn't allow playlist commands, I was shocked to notice that each instance used only half the resources of 1.0.5. With a couple more tweaks, our command line worked fine with this older version, produced the same results- but now we're currently running ten channels at about 60% cpu load per server.
It did come with a price. 0.9.4 doesn't appear to be quite as stable as 1.0.5. It's not bad, but there have been a few instances where the wrong source feed triggers a complete crash, or is simply incompatible. For that reason, we still use 1.0.5 on the occasional problematic stream. Hoping for a happy medium, I did also try 9.9.9; it instantly crashed with our command line, so I didn't pursue it further. Now I have each instance of VLC set to close if the stream disconnects, Windows Task Scheduler set to restart them as needed (the source stream url's are dynamic and expiring, so unfortunately can't be entered into a playlist or put on loop- a separate headache in and of itself), and a full nightly kill of all VLC processes (in case of lockups, freezing, multiple instances, etc). Hardly a robust or professional solution, but for our current limited budget and short time frame, it does function. When we get the time, I may try a Linux/FFMPEG solution instead and see if that works better.
I'd like to thank the makers of VLC for a versatile, free, useful (if confusing) product. In my experience with software revisions, there isn't usually this Russian Roulette of versions, each having a shining point not found in others. If someone were to take the the stability of 1.0.5 (few if any random crashes, switches RTSP streams and opens php url's fine), the streamlined small no-nonsense executable style of 0.8.6 (opens instantly, no repetitious font caching or interface 'fluff'), the low cpu use of 0.9.4 (newer build = double the cpu use for the same results? ), and the updated codec/source (FFMEG) compatibility of the 1.1.x line, they would have the ultimate application. I know I'd pay money for it. Hrm, maybe that's all the $8,000+ transcoding software vendor did...
If anyone has questions or input/advice on our setup, I'd be happy to collaborate and share.